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

news2025/7/22 15:21:05

地图是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.coloradmin.cn/o/368537.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【正点原子FPGA连载】第十六章DP彩条显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十六章DP彩条显…

什么是路由?

什么是路由&#xff1f; 介绍 **路由是指路由器从一个接口上收到数据包&#xff0c;根据数据包的目的地址进行定向并转发到另一个接口的过程。**路由发生在OSI网络参考模型中的第三层即网络层。 路由引导分组转送&#xff0c;经过一些中间的节点后&#xff0c;到它们最后的目…

六【 SpringMVC框架】

一 SpringMVC框架 目录一 SpringMVC框架1.什么是MVC2.SpringMVC概述3.SpringMVC常见开发方式4.SpringMVC执行流程5.SpringMVC核心组件介绍6.快速构建Spring MVC程序✅作者简介&#xff1a;Java-小白后端开发者 &#x1f96d;公认外号&#xff1a;球场上的黑曼巴 &#x1f34e;个…

工业三防平板可应用于各种复杂苛刻的工作环境

伴随着工业互联网技术的快速发展&#xff0c;生产制造自然环境繁杂&#xff0c;机器设备规定比较严苛。普通平板在工业场景户外场景等都比较容易出现磕碰或者出现其它因素如进水、进灰尘而引发设备故障。三防平板之所以在建筑工程的应用较为广泛&#xff0c;这与其独特的性能是…

线性数据结构:数组 Array

一、前言数组是数据结构还是数据类型&#xff1f;数组只是个名称&#xff0c;它可以描述一组操作&#xff0c;也可以命名这组操作。数组的数据操作&#xff0c;是通过 idx->val 的方式来处理。它不是具体要求内存上要存储着连续的数据才叫数组&#xff0c;而是说&#xff0c…

scratch和平使者 电子学会图形化编程scratch等级考试一级真题和答案解析2022年12月

目录 scratch和平使者 一、题目要求 1、准备工作 2、功能实现 二、案例分析

视图、游标、慢查询日志

Java知识点总结&#xff1a;想看的可以从这里进入 目录2.7、视图、游标2.7.1、视图2.7.2、游标2.7、慢查询日志2.7、视图、游标 2.7.1、视图 视图是一种虚拟存在的表&#xff0c;同真实表一样&#xff0c;视图也由列和行构成&#xff0c;它不存在于数据库中&#xff0c;是我们…

【红黑树】红黑树插入操作相关的细节和疑难拆解分析

本文就红黑树的插入操作进行细致到每一个小步骤的解析。1&#xff0c;成员变量本红黑树使用了三叉链结构&#xff0c;使用的时候尤其要记得处理指向父亲的指针。为何在节点的构造函数中&#xff0c;默认节点的颜色为红色&#xff1f;因为考虑到红黑树的性质&#xff08;对于每个…

汇编语言 标志位总结

缩写原意: Overflow of = OV NV [No Overflow] Direction df = DN (decrement) UP (increment) Interrupt if = EI (enabled) DI (disabled) Sign sf = NG (negative) PL (positive) Zero zf = ZR [zero] NZ [ Not zero] Auxiliary Carry af = AC NA [ No AC ] Parity pf = PE…

计网个人作业05

R1 链路层可以提供如下服务 链路层服务IP能否提供&#xff1f;TCP能否提供&#xff1f;流量控制✔差错检测✔✔差错纠正全双工、半双工✔ R2 不冗余 IP层有丢包的情况⼀个⻓的 TCP 报⽂段会被分⽚成多个 IP 数据报形成不同的帧&#xff0c;不同的帧可能会被不同链路传输。同…

二.线性表之顺序表

文章目录前言一.顺序表的概念及结构二.顺序表的接口实现1.顺序表的动态存储2.顺序表的初始化3.顺序表尾插#封装&#xff1a;扩容函数4.顺序表尾删5.顺序表头插6.顺序表头删7.顺序表查找8.顺序表在pos位置插入x9.顺序表删除pos位置的值10.顺序表销毁11.顺序表打印三.源1.Seqlist…

3000字,聊一聊学习低代码和学习编程到底有什么区别?

作者介绍胡艳平&#xff0c;万应低代码联合创始人、CTO&#xff0c;中国信通院低代码/无代码推进中心技术专家&#xff0c;全国信标委《低代码开发平台能力要求》起草人之一。曾有科技公司CTO问我&#xff1a;低代码是不是一种不用敲代码的编程语言&#xff1f;在不确定低代码能…

机器人学习的坚持与收获-2023

所有的机会都需要自己努力去争取&#xff0c;毕竟天会下雨下雪&#xff0c;但是不会掉馅饼。之前写过关于毕业生的一些博文。机器人工程ROS方向应用型本科毕业设计重点课题学生验收成果&#xff08;暂缓通过&#xff09;机器人工程ROS方向应用型本科毕业设计重点课题学生验收成…

如何让人机对话更自然?

来源&#xff1a;投稿 作者&#xff1a;顾相欢 编辑&#xff1a;学姐 AAAI-2022|定制对话的人设和知识背景 原文标题&#xff1a; Call for Customized Conversation: Customized Conversation Grounding Persona and Knowledge 原文链接&#xff1a; https://arxiv.org/ab…

分类预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆网络数据分类预测

分类预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆网络数据分类预测 目录分类预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆网络数据分类预测分类效果基本描述程序设计参考资料分类效果 基本描述 1.Matlab实现WOA-CNN-BiLSTM鲸鱼算法优化卷…

Ubuntu下gcc多版本管理

Ubuntu下多gcc版本的管理 开发过程中&#xff0c;在编译一个开源项目时&#xff0c;由于代码使用的c版本过高&#xff0c;而系统内置的gcc版本过低时&#xff0c;这个时候我们就需要升级gcc版本&#xff0c;但是为了避免兼容性问题&#xff0c;安装多个版本的gcc&#xff0c;然…

uniapp中调用.net6 webapi

使用uniapp开发程序时&#xff0c;不管是小程序&#xff0c;还是H5界面&#xff0c;它们只是一个显示界面&#xff0c;也就是只充当前台界面&#xff0c;那么我们后台使用.net6 webapi写业务逻辑&#xff0c;然后前端访问后端&#xff0c;即可实现前后端分离开发软件的模式。 …

连不上虚拟机我谁都怀疑了!唯独没怀疑VirtualBox这个浓眉大眼的家伙!

这里写自定义目录标题一、问题和现象环境二、思考和尝试三、问题原因VirtualBox NAT模式的坑四、解决办法1、双网卡2、配置转发端口一、问题和现象 fileZilla连接不上虚拟机&#xff08;Linux/centOS&#xff09;。 ping不通虚拟机。 ssh连接不上虚拟机。 环境 Win10主机使用…

上岸16K,薪资翻倍,在华为外包做测试是一种什么样的体验····

现在回过头看当初的决定&#xff0c;还是正确的&#xff0c;自己转行成功&#xff0c;现在进入了华为外包测试岗&#xff0c;脱离了工厂生活&#xff0c;薪资也翻了一倍不止。 我17年毕业于一个普通二本学校&#xff0c;电子信息工程学院&#xff0c;是一个很不出名的小本科。…

吃透8图1模板,人人可以做架构

前言 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;很多小伙伴问尼恩&#xff1a; 大佬&#xff0c;我们写架构方案&#xff0c; 需要从哪些方面展开 大佬&#xff0c;我们写总体设计方案需要一些技术亮点&#xff0c;可否发一些给我参考下 诸如此类&#xff0c;问法很多…