ArcObjects入门?


26

如果不是开发人员并且不打算成为开发人员,那么从ArcObjects入门的最佳途径或地点是什么?

我已经使用了很长时间的专业gis,将近20年了,其中大部分时间是使用arcinfo / arcgis。我很好。我正在学习软件开发,甚至有一个在公共项目中成功使用的小型python应用程序;我不好!我不想成为一个成熟的软件开发人员,但是我一直遇到没有编程就无法做的事情(例如)。在arcgis世界中,这使我完全处于python阵营中,这对我来说很好,因为我喜欢python,但是python无法直接访问ArcObjects。(Python和ArcObjects中是可能的,但它是不支持的路线。这个问题是关于跟随因循守旧。)

我需要开始,但是在哪里?Arcgis帮助说要开始使用ESRI开发人员网络,但是每年$ 1500的预算绝对不在我的预算之内,而且听起来像是用八角锤拍打蚊子。以及哪种语言.NET,Visual Basic或Visual C ++?


更新:谢谢大家的精彩回答。鉴于它们,我意识到我以不必要的方式缩小了我的问题范围,前提是“ ArcObjects”是我需要走的方向。一个更开放的表述更像是:

我一直遇到只能用arcgis和python无法解决的问题。我还能学/用什么来解决诸如X的问题?我没有兴趣或无意成为软件开发人员。我只需要做一些Arcgis python模块没有暴露的事情。


这是来自Stack Overflow(ref)的回收问题,无论出于何种原因,他们都决定不迁移到这里。因此,我再次要求从处于更有利位置的人们那里获得更全面的答案。
马特·威尔基2011年

您可以使用什么软件?我必须承担的ArcGIS。Visual Studio 2008/2010 Pro / Express?
乍得·库珀

我拥有ArcGIS 9和10。我没有选择任何开发软件。
马特·威尔基2011年

Answers:


14

VB.Net外接程序肯定。ESRI步行槽将带您上路。

我已经使用VB6和VBA多年了,我个人觉得VB相当直观。当然,VB .Net是完全不同的动物,但是加载项结构相对易于学习和部署。我只是在ESRI会议上在ArcPy参加了一个技术研讨会,我不得不说我将坚持使用VB.Net加载项。当很明显VBA将被外接程序替代时,我一直在哭泣,但是在违反学习曲线后,我必须说,这是对ArcGIS 10的最好的改进。我到处都有自定义工具。人们在ArcGIS中抱怨的事情我只是根据自己的喜好进行自定义。编写工具并在办公环境中分发它很容易。

您只需要免费的Visual Studio Express和已安装的SDK。

这是步行区: http : //help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Building_add_ins_for_ArcGIS_Desktop/0001000000w2000000/

对于ArcObjects,您可以直接将它们直接添加到Visual Studio中,因此有太多的示例和代码片段,您也许可以从示例中学习基础知识。

ESRI在版本8中实际上发布了ArcObjects书籍;2本书非常有用,其中包括C和VB的许多示例。现在都可以在网上找到所有内容,但我希望ESRI再次发布这些内容。


3
在所有方面都同意,buuuuttt,如果您没有以前的VBA / VB6经验,会说去C#。
乍得·库珀

是的,我偏爱VB。如果我是一名开发人员并且使用了各种平台,那么我肯定会使用C#,但是我发现(流行观点也是这样),VB在视觉上更清晰,更容易理解,因此更适合初学者。
Jakub Sisak GeoGraphics

1
使用C#时+1。显然,它是行业领导者最喜欢的.NET语言。我曾经将VB和C#用作初学者,但实际上认为它更容易学习和理解。而且它更接近其他基于C的语言,例如JavaScript和Java。
wilbev 2011年

7

这是我去年为ArcUser写的关于.NET中ArcObjects入门的文章的一个无耻插件。


只要阅读它,这是一篇很棒的文章..为了像我这样的新手,请继续保持无耻!您是否有任何在.net..net中使用TOC的东西,我认为这意味着开始使用COM?谢谢。
贾斯汀

6

如果您不想成为一名认真的开发人员,那么我会质疑您迈入编程世界的举动。这里的问题是编写代码时,您应该了解后台发生的事情。否则,由于缺乏理解,您可能会对数据,应用程序甚至计算机无意中做某事(是的,您也可以在Python中做某事,但是.NET进一步使错误更容易解决。 comimt)。

关于字段别名的问题(我不确定我是否理解正确),您是否要更改要素类中字段的别名?如果是这样,则可以将Featureclass_to_featureclass与字段映射一起使用。是的,它创建了另一个要素类,但是您可以在它执行操作的同时拥有一个输出区域来复制数据和更改别名。

正如史蒂夫建议的那样,ArcPy还可以通过对地图中图层属性的新访问来满足您在ArcGIS 10中的要求。


re:field别名-您应该添加它作为对Q的答案。我不知道这是可能的。
马特·威尔基2011年

5

在查看Esri的在线资源时,我不禁注意到ArcObjects如何不像其他ArcGIS技术那样拥有丰富而最新的资源。

这就是我开始在IGeometry Youtube频道上讨论ArcObjects的原因,该系列我称为ArcObjects的.NET编程,到目前为止已经发展到第14集,很多GIS人士都从中受益匪浅。

该系列基于我创建的一个虚构的项目“ Bestaurants”,您必须在ArcMap上创建一个应用程序以搜索,管理,添加,删除餐厅。在每一集中,我们都引入一个新的界面,并以一种有趣的方式了解ArcObjects中的细粒度对象!

只要有机会,我每周都会发布视频,因为这是我自己的时间。

随时检查它,并与您可能认识的任何GIS极客共享。始终欢迎您提出改进系列的建议。

谁知道,也许一旦我们完成了这个,我可能会开始另一个系列。

http://www.youtube.com/watch?v=XrZs1rwmOwg&list=PLQnljOFTspQXqqysWJG8o-eJpGlvzww9lE&index=1


我也想学习ArcObject。但是我一点都不熟悉。我是否需要任何额外的许可证才能开始使用ArcObject?还是需要将ArcGIS 10.4中的ArcObject组件作为附加许可证?
Shiuli Pervin '16

2
是的,您将需要ArcGIS Desktop许可证,但是您可以从esri网站获得具有许可证的最新ArcGIS Desktop,为期60天。有足够的帮助您入门。
hnasr '16

4

您不需要EDN订阅即可使用ArcObjects开发,也不需要访问SDK文档。

http://help.arcgis.com/en/sdk/10.0/arcobjects_net/ao_home.html


但是您确实需要EDN才能访问SDK本身,不是吗?而且,说实话,对于那些对这种开发的本质和毅力不感兴趣的人来说,将代码从背后拉出来并不是完全正确的选择。
纳撒努斯2011年

2
不,它在安装CD上。
blah238 2011年

它随产品的每个版本一起提供吗?
纳撒努斯2011年

我相信只有主要版本。这些示例也包含在联机帮助中,尽管.NET似乎没有它们的列表,而Java 却有清单help.arcgis.com/en/sdk/10.0/java_ao_adf/conceptualHelp/engine / ... 不过,随SDK一起安装的帮助文件更加方便。
blah238 2011年

4
如果您拥有ArcGIS Desktop的副本,则不需要EDN订阅即可开发外接程序。EDN订阅只是一种向开发人员提供ArcGIS堆栈中几乎所有内容的副本而又不消耗昂贵的生产许可证的方式。如果您完全没有生产许可证,那么EDN也非常适合开发。您不需要EDN即可使用ArcObjects API进行编码和开发。
JimBarry11年





0

正如您已经说过的,您不想成为一名开发人员,这不是一个真正的答案。
我在这里发布的是格式优于注释。
这个博客刚刚出现,并且在为开发社区提供有关arcgis服务器的指导方面相当广泛。
它概述了远离ADF的意图,并鼓励拥抱Web服务。
希望对您的决定有所帮助。

ESRI博客-ArcGISServer

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.