本帖子分享基于.net 的ArcGIS插件开发的学习路径,无代码。
学习建议按照下述步骤逐步进行。
1.语言基础
1.1 C#
首先需要熟悉C# 语言,C#语言功能比较强大,不需要学完所有。对于插件开发,大体需要学习基本语法、面向对象编程(类、结构、实例化、继承等)、数组、集合、属性、泛型、Winform界面制作或者WPF界面制作(界面制作前期不需要学的太精通,能做基本的界面基本沟通),事件相关、异常处理、文件基本操作
数据库、LINQ、网络、线程、GDI+绘图等不需要学习。
.net 需要学习到比较熟悉,能够实现常规的功能。
面向对象相关需要好好理解一下,包括类、对象、继承、接口、方法、事件、属性等。该块内容是学习ArcGIS开发的基础。
相关学习可以到B站找一些视频。
如果上述基本条件具备了,有一条相对简单的道路,可以去学习ArcPro的二次开发,开发ArcPro的插件,可以看 规划GIS会写的教程 规划GIS会_ArcGIS,ArcGIS Pro SDK,ArcGIS小技巧-CSDN博客
与AO那一套东西比起来,真是太简洁了。
1.2 英语
最好能有一定的英语文档阅读能力,原版的开发帮助,出了问题的资料检索等,都需要一定的英文基础。当然,借助翻译工具也是可以的。
2.ArcObjects/ ArcEngine 学习
先说这个库,这个库真是过于抽象。
学习这个库,需要一个前提:熟悉ArcGIS相关操作,熟悉ArcGIS的操作只是表象,其实最主要的是建立对ArcGIS中相关独享的概念。大体是地图(Map)、图层(Layer)、表(Table)、图形(Geometry、Point、Polygon、Polyline等)、空间参考(SpatialReference)、要素(Feature)、元素(Element)、符号(Symbol)、渲染(Renderer)、地理处理等
剩下的就是找本书,把代码一顿抄,边抄边调试边理解。
核心是理解QI(这个术语过于暴露年纪了),接口背后的对象,需要推测
偷懒的话,以下接口 IMap、ILayer、IFeatureLayer、ISpatialReference、IQueryFilter、ISpatialFilter、IFeatureClass、 IFeature、IFeatureCursor、 ITable、IRow、ICursor、IGeoProcessor、IPolygon、IPolyline、IPoint、IGeometry、IActiveView、ISymbol、ITopologicalOperator接口需要熟悉。 如果只是想方便数据处理,基本是与上述接口打交道。
本节能坚持下去的,离成功已经非常接近了。
3.自带的Sample学习
完成上述之后,基本可以试着写插件了,网上找找资料。AO与插件开发,基本就是入口不同。
如果想更好的提高,可以学习安装目录下的 Sample代码
4.扩展
4.1 NPOI Excel操作
如果需要将要素生成统计表格,建议使用 NPOI组件,该库开源。比 AO库简单的多
4.2 Word操作
如果需要生成Word报告,可以使用Aspose.Words库。 比AO库简单的多
Excel与Word操作,切勿使用微软自带的库,真的太难用。 尤其是微软Word操作的库,格式容易乱。
4.3 PDF操作
参考本篇帖子