地图是ArcGIS Pro中的基础起点,也是大多数工程的基础。主要用于显示表示空间数据的图层。
var map = MapView.Active.Map;
var lys = map.Layers;
用于获取地图中的单一图层,以及图层组。但不包括图层组下面的图层。
var lys = map.GetLayersAsFlattenedList();
【GetLayersAsFlattenedList()】方法用于获取地图中的所有图层。
var lys = map.GetLayersAsFlattenedList().OfType();
在【GetLayersAsFlattenedList()】方法加上【OfType】则会对获取的图层按类型进行筛选。如【FeatureLayer】代表要素图层,【GroupLayer】代表图层组等。
var lys = map.GetStandaloneTablesAsFlattenedList();
【GetLayersAsFlattenedList()】方法用于获取地图中的所有独立表。
var lys = map.FindLayers(LayerName);
【FindLayers(LayerName)】方法用于按图层名查找相应图层,注意这里的LayerName不支持模糊查找。
var sr = map.SpatialReference;
Map的【SpatialReference】属性返回地图的坐标系。
// 获取当前地图var map = MapView.Active.Map;// 获取第一个图层var ly = map.GetLayersAsFlattenedList();// 移动到最后的位置QueuedTask.Run(async () =>{map.MoveLayer(ly[0], -1);});
【MoveLayer(Layer, index)】方法用于按标签位置移动图层的位置。
这里演示的是将地图中的第1个图层移动到最后的位置。
// 获取当前地图var map = MapView.Active.Map;// 获取所有图层var lys = map.GetLayersAsFlattenedList();// 移除所有图层QueuedTask.Run(async () =>{map.RemoveLayers(lys);});
【RemoveLayers(lys)】方法用于移除图层列表。
【RemoveLayer(ly)】方法用于移除单一图层。
这里演示的是用【RemoveLayers(lys)】方法移除地图中的所有图层。
// 获取当前地图var map = MapView.Active.Map;//打开对话框OpenItemDialog openDlg = new OpenItemDialog(){Title = "选择要素", //打开对话框标题Filter = ItemFilters.FeatureClasses_All, //类型筛选};//打开对话框bool? ok = openDlg.ShowDialog();//如果没有选择内容,则返回if (!ok.HasValue)return;// 获取返回的要素路径var fc = openDlg.Items.First().Path;// 按返回的要素路径将要素添加到当前地图中Uri uri = new Uri(fc);QueuedTask.Run(async () =>{LayerFactory.Instance.CreateLayer(uri,map);});
【LayerFactory.Instance.CreateLayer()】方法用于将要素添加到当前地图。
需要先将路径转换成Uri。
// 获取当前地图var map = MapView.Active.Map;//打开对话框SaveItemDialog saveDlg = new SaveItemDialog(){Title = "保存地图为", //打开对话框标题Filter = ItemFilters.Maps_All, //类型筛选};//打开对话框bool? ok = saveDlg.ShowDialog();//如果没有选择内容,则返回if (!ok.HasValue)return;// 按返回的工程路径保存地图QueuedTask.Run(async () =>{map.SaveAsFile(saveDlg.FilePath, true);});
【SaveAsFile()】方法用于将地图保存为地图文件。
最后,放上工程文件的链接:
MapManagerhttps://pan.baidu.com/s/1JqITwFtqSFjww5JTOM0RZQ?pwd=4myr
上一篇:【C语言】带你彻底理解指针(1)
下一篇:闭包(回顾)