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

我从事专业gis已有很长时间了,将近二十年了,大多数情况下,使用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)的回收问题,无论出于何种原因,他们都决定不迁移到这里。因此,我再次要求从处于更有利位置的人们那里获得更全面的答案。

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

我拥有ArcGIS 9和10。我尚未选择任何开发软件。

#1 楼

确保VB.Net加载项。 ESRI步行槽将带您上路。

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

您所需要的就是免费的Visual Studio Express和已安装的SDK。

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

关于ArcObjects,有如此多的示例和代码片段可以直接添加到Visual Studio中,因此您甚至可以从示例中学习基础知识。

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

评论


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

–乍得·库珀
2011年4月27日在18:11

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

–雅库布·西萨克地理图形学
11年4月28日在16:47



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

–wilbev
2011年4月29日下午4:51

#2 楼

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

#3 楼

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

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

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

#4 楼

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

这就是我启动IGeometry的原因到目前为止,Youtube频道讨论ArcObjects的系列,我称之为ArcObjects的.NET编程,到目前为止已经达到了第14集,许多GIS人士真的从中受益。

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

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

现在就可以免费签出,并与您可能认识的任何GIS极客共享。始终欢迎您提出改进系列的建议。

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

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

#5 楼

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

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

评论


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

– Nathanus
2011-4-27在16:31



不,它在安装CD上。

–blah238
2011-4-27 17:02

它随产品的每个版本一起提供吗?

– Nathanus
11年4月27日在17:04

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

–blah238
2011-4-27 17:14



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

– JimBarry
11年4月28日在2:56



#6 楼

我对最佳的ArcObjects资源发布了一个类似的问题: 。

#7 楼

如果您还不了解arcobjects,我建议您学习arc.py,因为esri正在从vba arcobjects转变为一种脚本语言。否则,您希望Visual Studio和C#开始编写弧对象。这是本好书。 http://www.amazon.com/探索-ArcObjects-Two-Michael-Zeiler / dp / 1589480007

#8 楼

关于ArcObjects的新书现已上市(也涵盖了10.1)。

使用.NET开始ArcGIS for Desktop Development

#9 楼

宾夕法尼亚州立大学最近免费发布了GIS应用程序开发课程。
在VB.NET中讲授ArcObjects的基础知识

#10 楼

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

ESRI博客-ArcGISServer