当前位置: 首页 > news >正文

【ArcGIS Pro二次开发】(7):地图(Map)的基本操作

地图是ArcGIS Pro中的基础起点,也是大多数工程的基础。主要用于显示表示空间数据的图层。


一、地图(Map)的基本操作示例

1、获取当前地图

var map = MapView.Active.Map;

2、获取一级图层

var lys = map.Layers;

用于获取地图中的单一图层,以及图层组。但不包括图层组下面的图层。

3、获取所有图层

var lys = map.GetLayersAsFlattenedList();

【GetLayersAsFlattenedList()】方法用于获取地图中的所有图层。

4、获取单一类型的图层

var lys = map.GetLayersAsFlattenedList().OfType<FeatureLayer>();

在【GetLayersAsFlattenedList()】方法加上【OfType】则会对获取的图层按类型进行筛选。如【FeatureLayer】代表要素图层,【GroupLayer】代表图层组等。

5、获取独立表

var lys = map.GetStandaloneTablesAsFlattenedList();

【GetLayersAsFlattenedList()】方法用于获取地图中的所有独立表。

6、查找图层

var lys = map.FindLayers(LayerName);

【FindLayers(LayerName)】方法用于按图层名查找相应图层,注意这里的LayerName不支持模糊查找。

7、获取坐标系

var sr = map.SpatialReference;

Map的【SpatialReference】属性返回地图的坐标系。

8、移动图层

            // 获取当前地图var map = MapView.Active.Map;// 获取第一个图层var ly = map.GetLayersAsFlattenedList();// 移动到最后的位置QueuedTask.Run(async () =>{map.MoveLayer(ly[0], -1);});

【MoveLayer(Layer, index)】方法用于按标签位置移动图层的位置。

这里演示的是将地图中的第1个图层移动到最后的位置。

9、移除所有图层

            // 获取当前地图var map = MapView.Active.Map;// 获取所有图层var lys = map.GetLayersAsFlattenedList();// 移除所有图层QueuedTask.Run(async () =>{map.RemoveLayers(lys);});

【RemoveLayers(lys)】方法用于移除图层列表。

【RemoveLayer(ly)】方法用于移除单一图层。

这里演示的是用【RemoveLayers(lys)】方法移除地图中的所有图层。

10、将要素添加到当前地图

            // 获取当前地图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。

11、保存地图

            // 获取当前地图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

http://www.lryc.cn/news/18775.html

相关文章:

  • python 自动化测试 pytest 的使用
  • 闭包(回顾)
  • 利用好这两个方法,服务型企业缺成本票不再难解决!
  • 前端面试编程题(异步调度,Promise实现、占用空间大小、渲染虚拟节点、实现for of)
  • 复旦团队发布国内首个模型MOSS 类ChatGPT
  • 5.35 综合案例2.0 -称重数据上传云端
  • 如何让人机对话更自然?
  • Python每日一练(20230224)
  • 【Linux】-- Shell的运行原理、Linux当中的权限
  • MOS管选型参数:VGS(th)
  • 二.线性表之顺序表
  • ElasticSearch - SpringBoot整合ElasticSearch实现文档的增删改
  • JavaScript 库
  • 云解析DNS为什么要配置默认线路?
  • Linux命令之awk
  • 实战-缓存数据一致+binlog初始+cannel监听+数据迁移,数据一致性架构设计
  • nginx配置中proxy_pass反向代理502的bug
  • JavaScript 两种方案打开文件对话框
  • Pycharm远程服务器常见问题
  • 内容团队如何快速出稿
  • es-08索引的批量操作
  • 诈金花的概率
  • ESP32设备驱动-MLX90393磁场传感器驱动
  • Java面试题-Spring框架
  • 【计算机物理模拟】-力矩、转动惯量和角速度之间的关系
  • async和await用法理解和快速上手 , 同步任务和异步任务顺序安排和轻松理解 , js代码执行顺序表面知道
  • Linux下java服务占用cpu过高如何处理
  • ros下用kinectv2运行orbslam2
  • MVP简单模型搭建【架构】
  • 若依ruoyi框架实现目录树与查询页面联动