1.环境搭建
1.1软件
Visual studio 2017或2019
NET Framework 4.6.1+
ArcGIS Pro 2.5
1.2环境搭建
1)打开Visual studio
2)进入工具->扩展与更新
3)进入联网选项栏,搜索ArcGIS Pro SDK,在搜索结果中找到ArcGIS Pro SDK for .NET,点击下载。
4)下载完成后,关闭Visual Studio,会弹出安装窗口
5)等待安装结束后,既环境搭建完成。
2. 使用ArcGIS Pro SDK开发
2.1创建第一个Pro Addin程序
1)打开Visual Studio,新建项目选择ArcGIS Pro模块加载项,点击确定
2)创建完工程后结构如下,其中Config.daml用于编辑界面
3)右键项目,添加->新建项。可以添加控件。例如我们添加ArcGIS Pro按钮
4)点击添加后Config.daml内容中会自动添加一个button控件,项目中也会添加Button1.cs文件。
5)在Button.cs中实现点击Button的效果。
6)启动项目,进入ArcGIS Pro会看到我们添加的Addin和Button。点击Buton按钮就可以实现写入的功能。
2.2界面配置(Config.daml)
声明一个新模块,所有组成插件声明包含在insertModule元素是隐式插入。
模块内的控件可以被多个引用,而不需要别重复定义,和框架分离。
Tab是界面中的选项卡,一个模块中可以有多个Tab,同时Tab通过refID可关联多个Group。
group是控件的分组,一个group中通过refID关联多个控件。
在Controls中定义控件。控件中id都是唯一的。通过Control的id及group的refID,可以实现group与Control多对多的关系。
2.3 类库
集合 |
描述 |
ArcGIS.Core.dll |
提供CIM,空间数据库,空间图形和设施网络等API |
ArcGIS.CoreHost.dll |
提供独立初始化ArcGIS.Core.dll |
ArcGIS.Desktop.Framework.dll |
提供程序框架 |
集合 |
描述 |
ArcGIS.Desktop.Catalog.dl |
项目project content items 包括,map items, layout items, style items, folder items 等 |
ArcGIS.Desktop.Core.dll |
创建和管理Project项目,获取相关事件,执行GP工具。 |
ArcGIS.Desktop.DataReviewer.dll |
要用过做数据检查。 |
ArcGIS.Desktop.Editing.dll |
提供图形编辑的类库。 |
ArcGIS.Desktop.Extensions.dll |
提供对Pro 中定义的类扩展的方法。 |
ArcGIS.Desktop.Geoprocessing.dll |
主要的GP工具 |
ArcGIS.Desktop.Layouts.dll |
提供了地图的布局和导出图片的各种方式 |
ArcGIS.Desktop.Mapping.dll |
提供了创建地图,图层的方法,查询,可视化二三维地图。也可以创建栅格图层。 |
目前仅Esri内部使用,包含3D分析、图表、空间统计、网络分析(设置,网络图,传输)、发布服务…等功能
2.4 ArcGIS Pro中的地图
在ArcGIS Pro的工程中可以包含多个二维或三维地图即多个MapView。MapView在二维或者三维视图中提供图层显示,要素选择、查询、编辑。
1. 可以通过MapView.Active获取当前激活状态的MapView。通过Camera调整地图视角。
地图视角查看事例如下:
public void RotateView(double heading)
{
var mapView = MapView.Active;
if (mapView == null)
return;
var camera = mapView.Camera;
camera.Heading = heading;
mapView.ZoomToAsync(camera, TimeSpan.Zero);
}
2. MapView有二维或三维全球(SceneGlobal)、三维本地(SceneLocal)状态。
获取MapView状态事例如下:
public bool IsView3D()
{
var mapView = MapView.Active;
if (mapView == null)
return false;
return mapView.ViewingMode == ArcGIS.Core.CIM.MapViewingMode.SceneLocal || mapView.ViewingMode == ArcGIS.Core.CIM.MapViewingMode.SceneGlobal;
}
【附录】
欢迎大家关注我的收费课程《ArcGIS Pro 2.6和ArcGIS Enterprise学习》,共8小时,有理论有实操:https://edu.csdn.net/course/detail/31690
课程主要包含:
- ArcGIS Pro2.6学习
①GIS中的数据
②GIS中的坐标系
③企业级地理数据库(SDE)设置
④数据编辑及拓扑检查
⑤简单制图
⑥空间分析
2.ArcGIS Enterprise学习
①环境部署
②二三维服务发布(矢量切片、要素服务、地图切片、地形服务、三维服务等)
③使用及运维(详细介绍如何确定enterprise部署架构,简单介绍相应的运维工具)
3.开发体系梳理
参考:
https://pro.arcgis.com/zh-cn/pro-app/sdk/
来源:oschina
链接:https://my.oschina.net/u/4369588/blog/4941252