ArcGIS Pro SDK开发从别的收集

来自https://blog.csdn.net/baidu_28157641/article/details/109499943

粘贴图层符号系统:

注意:并且这个操作不能被撤销和重做,事实上,使用Pro中自带的 应用图层的符号设置 工具执行这一操作也不能被撤销和重做。

protected override async void OnClick()
{
    await QueuedTask.Run(async () =>
    {
        try
        {
            var mapView = MapView.Active;

            if (mapView.GetSelectedLayers().Count() < 2)
                MessageBox.Show("运行时出现异常" + "
" + "请选择两个或两个以上几何类型相同且名称不同的图层再进行操作");
            else
            {
                var sourceLayer = mapView.GetSelectedLayers()[0] as FeatureLayer;
                for (int i = 1; i< mapView.GetSelectedLayers().Count(); i++)
                {
                    var applyLayer = mapView.GetSelectedLayers()[i] as FeatureLayer;
                    // Place parameters into an array
                    var parameters = Geoprocessing.MakeValueArray(applyLayer, sourceLayer);
                    var gpResult = await Geoprocessing.ExecuteToolAsync("management.ApplySymbologyFromLayer", parameters);
                    if (gpResult.IsFailed)
                        MessageBox.Show("运行时出现异常" + "
" + "请选择两个或两个以上几何类型相同且名称不同的图层再进行操作");
                }
            }
        }
        catch
        {
            // Catch any exception found and display in a message box
            MessageBox.Show("运行时出现异常" + "
" + "请选择两个或两个以上几何类型相同且名称不同的图层再进行操作");
        }
    });
}

一键移除所有图层

    internal class Button_RemoveAllLayers : Button
        public void RemoveAllLayers()
        {
            var mv = MapView.Active;
            var lyrs = mv.Map.Layers;
            //RemoveLayers方法必须在QueuedTask.Run中运行
            QueuedTask.Run(() =>
            {
                mv.Map.RemoveLayers(lyrs);
            });
        }

        protected override void OnClick()
        {
            RemoveAllLayers();
        }


————————————————
版权声明:本文为CSDN博主「圈圈的圈圈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baidu_28157641/article/details/109499943

原文地址:https://www.cnblogs.com/gisoracle/p/14491328.html