作为GIS开发人员,您面临的最大挑战是什么?


23

开发GIS软件时最大的挑战是什么?

是编码吗?是否了解制图/地理/等概念(如投影)?还是其他困难?


我喜欢这个讨论。我知道它是旧线程,但是信息是GOLD。我在Esri工作,担任开发人员产品的产品经理。我负责ArcGIS Runtime SDK(Java,Android,Qt)和ArcObjects SDK for Java。首先,我可以体会这种痛苦。第二,我想听听Web API和ArcGIS Runtime API是否有助于减轻使用平台的痛苦,或者只是总体而言。我想处理大量数据仍然是一个挑战,但是现在情况会变得越来越好……五年之后?在线和门户网站的服务正在变得越来越强大。是t

您好Eric,欢迎来到GIS.SE。很高兴看到软件公司的员工参与社区活动。我们这里的讨论论坛更少,而更具体的问答。您可能想查看游览。我们确实有聊天用的对话,尽管它使用不多。您也可以看看我们的标记系统。使用它,您可以磨练特定主题最近的问题活动,例如您提到的API和SDK。
克里斯·W

同样欢迎您来到GIS SE Eric!当您四处浏览该站点时,我希望您能从讨论论坛中快速了解Stack Exchange的全部内容,以及其关注的问答格式有何不同。这正是我希望ArcGIS讨论论坛能够在最近的大修中成为的东西。但是,请不要在早期的问答中判断它的价值,尽管它很受欢迎,但这并不是用户可以如何来到这里寻找答案的一个很好的例子,几分钟之内就可以识别出相同的问题并阅读其答案而无需消化来回的讨论。
PolyGeo

Answers:


22

从我作为一名开发人员的经验来看,他在近五年前进入了ESRI / GIS开发领域:

  1. 没有单一的API可以完成您想做的事情。只有混乱的API可能无法满足您的目的:ArcObjects,Python,REST,SOAP,ADF,ST_Geometry运算符?
  2. 所有API都与某些笨拙,昂贵的软件绑定在一起,而您不希望将它们放在应用程序的核心。
  3. 真正创意设计的机会很小。面向对象的地理空间数据结构?算了吧。尽管所有关于“对象”和“功能类”的讨论,您仍在使用由易变的中间件介导的哑表。
  4. 该软件有错误,错误消息令人误解,文档不完整。故障排除几乎总是反复试验。习惯它。
  5. 使用关系数据库方法管理地理空间数据几乎是不可能的。我几乎不得不放弃任何SQL / DDL,因为它们只会使我对中间件产生麻烦(是的,我在谈论ArcSDE)。丢掉整个技能组实在可惜。只需打开ArcCatalog,指向,单击即可。

如您所知,我对ESRI的发展前景持负面看法。对于那些来自地理背景的人,我相信可能性是非常令人兴奋的。但是对于像我这样热爱关系数据库,面向对象的程序设计以及创造性解决方案的广泛开放机会的人来说,使用ESRI进行GIS开发是非常困难且无法实现的。真可惜,因为老派人群告诉我,在与Microsoft结盟之前,它曾经是一个优越的环境。我衷心希望开源社区继续创新。


4
我是统计学家,对ESRI产品的投诉也非常相似。我的过于乐观的理论是,由于计算机可能早于GIS才用于统计数据,所以GIS软件(在SAS / SPSS阶段)比统计软件晚约十年,并且一个真正出色的开源程序或堆栈即将出现爆发。也许已经有-自从我有机会参加非ESRI计划已经有好几年了。
马特·帕克

2
我只是想和其他人一起在雷德兰兹摇动拳头,并附上一个说明性的轶事:几乎任何对Spatial Analyst的栅格API的API调用(当时)都将因通用COM失败而出现“未指定的错误” “如果出了什么问题。急于解决问题,我最终将strace连接到ArcGIS.exe,并掩埋在系统调用中,发现(打鼓声)有用的和详细的1980年代错误消息正在被写入等效于/ dev / null的Windows。
Dan S.

13

大量数据。能够找到使用Web技术提取大量数据的正确方法一直是一个挑战。我们要么拥有大量数据,并且性能不佳,要么显示的数据更少,但是可能传达了错误的信息。


10

我不是GIS开发人员;但是,我是GIS建模者:

挑战:

  • 数据收集,汇总,分解,合并和拆分:我从不同项目的不同来源获取数据;最大的问题通常是获取同一地理宗地/区域的所有数据。我通常必须在每个数据集上使用上述几种技巧,以使项目具有连贯的样本。这增加了错误可能性,并降低了我们的精度。

  • 我不是开发人员;我再说一次,我不是开发人员:当您可爱的人们谈论SOAP,SHAMPOO,REST,GIS-T索引等时,这对您来说意义非凡。对我来说,大多数是行话。我通常会经历较大的学习曲线或陡峭的爬坡,以完成一些简单的事情。

  • FOSS和专有软件之间的鸿沟:我喜欢QGIS和死招;从字面上看,我在每台机器上都安装了它们;但是,当我要进行基于运输的分析时,我不得不求助于TransCAD或EMME2 / 3。每个带有所有铃铛的费用约为15,000美元。公平地说,如果有用于shp文件的networkx软件包,则可以解决所有这些问题。

  • 多个学科的问题:我精通运输建模技术;但是,据人口统计建模所吸引,据我所知,我必须使用复杂的R工具来完成数据。因此,GIS问题是GIS是一个多学科领域,很难靠自己生存。

  • 缺乏从影像土地用途到矢量土地用途的完善工具和软件:我预见到未来将有一种工具将分析GEOEYE卫星图像并将其土地用途与矢量(建成)数据库进行比较

  • 有时在Excel /“ Fav表程序”中执行操作会更快:有时我想进行运输分析,获取放入Excel中的数据,执行公式,然后将数据转储回去要快得多将其作为csv文件导入postgis并重新生成地图,这种分割,尤其是在OpenSource世界中,应该更好地解决。

无论如何,我可能没有正确回答您;我只是希望我精通GIS编程,这样我才能精通GIS建模


供shp使用的Networkx已经存在,仅供参考,例如networkx.github.io/documentation/latest/reference / ...有关矢量+栅格的信息,请参见PostGIS栅格扩展名trac.osgeo.org/postgis/wiki/WKTRaster
ThomasG77 2013年

+1最大的问题是可靠的数据源。许多州会雇用大学实习生从事夏季工作,以收集道路和东西的坐标,并且通常根本不进行任何错误检查或审核(甚至没有采样),结果是,您在新泽西州的DOT上说道路比Google和OSM所说的短500英尺。天哪
没必要

8

根据我的经验,最重要的事情(通常是最难的事情)是:

  1. 获得正确的工作数据
  2. 让它以适当的投影显示(并使所有图层都一致)。尤其是当它们来自不同来源时
  3. 设计一个可用的应用程序。摆弄许多只会让用户感到困惑的风吹草动既容易又诱人

我认为第1点在发达国家会更容易一些,但这不是我的经验。


6

对我来说,最大的挑战是确定给定项目使用哪些工具。开源还是专有的?Python或.NET?基于Web还是台式机?对于不同的项目,我会以不同的方式回答这些问题,并且我相信人们会在此站点上询问所有这些问题。其中很多归结于个人喜好,并试图弄清ESRI和Microsoft将来将支持什么。


对我来说,这将是最大的事情。
内森·W

2
这对我来说不太重要。尽管投资于自己的未来并避免“浪费的工作”符合开发人员的最大利益,但我认为,目的证明了手段是正当的,无论采用哪种技术,都是最佳选择。对要交付的内容有一个清晰的想法比如何实现目标更为重要。
mwalker

5

我的问题全都与马和水有关。在很多情况下,我们会为客户开发或提供非常好的解决方案,但是无论解决方案多么精致,如果没有人花时间使用它绝对是没有用的。在某些情况下,我们可以通过使工作基于用户来缓解这种情况(调查问题,在开发之前谈论解决方案),但在某些情况下,这还不够。


3

我认为最困难的挑战是让管理人员了解GIS,而有些用户也不了解。人们认为GIS就是在制作地图。地图是任何GIS努力的唯一成果。我无法告诉您我对此感到多么沮丧-那里的无知程度是巨大的,而这是关键决策者所为。

最终,尽管我们(作为GIS的先驱专家和程序员)最终将成为管理人员,然后才能最终完成一些体面的GIS项目!

作为GIS程序员的另一件事-您必须了解许多不同的技术,Java,.Net,数据库,ESRI软件或其他供应商,例如MapInfo,网络,安全性,Web技术等。有时这几乎是不可能完成的工作!


2

与具有调查背景的人员打交道,他们不了解专业的软件开发技术和方法,但是由于他们自学了如何编码avenue / VB,因此,仅此而已。


2

Vinko的答案中的#3 :

设计一个可用的应用程序。摆弄许多只会让用户感到困惑的风吹草动既容易又诱人。

我会为整个答案投赞成票,但对于可用性仅是他列表中的第三项这一事实,我不认为前两项具有挑战性。

可用性是我大多数问题的所在,也是我花费大部分设计/开发时间的地方,它弄清楚了如何设计一个智能且有效的用户界面,但要使其直观,以免用户对其感到困惑,例如:

  • 如何调整交互式地图的样式(和选择图层)以显示相关信息,并避免显示过多数据时经常出现的混乱情况(例如,使用点要素的自动聚合);我知道这是制图学多年来一直试图解决的问题,但是问题只会随着数字/交互式地图而变得更加严重

  • 如何根据用户的查询/功能选择自动定位地图视图

  • 突出显示“选定的”功能-您是否仅突出显示突出显示的内容,在整个功能被选中时突出显示的内容,当选择表(或列表)失去焦点时是否取消突出显示...如何突出显示所有查询表和该表中所选行的结果(没有太多的切换按钮)

  • 在图层或要素列表中显示其他信息,例如图层的可见性/应用的样式/几何类型,要素的状态/类...如果在同一列表中显示了不同的要素类型,这将变得更加复杂。 Google和Bing Maps对搜索结果进行了大量过滤)

  • 高效的编辑:捕捉,关闭多边形,添加/移动/删除点,而无需使用许多工具栏按钮。

  • 如何设计(和实现)用于几何查询的用户友好的查询界面,以及更具挑战性的包括属性和几何的查询界面;而无需让用户输入类似SQL的内容。

  • 如何设计要素/几何形状的剪贴板之类的东西,以避免连续不断地从地图上“拾取”要素以用于查询,编辑...

我的感觉是,GIS在可用性方面是一个特别具有挑战性的领域,因为:

  • 位置是任何信息的通用且通常是最自然的上下文,因此总是有太多信息可显示

  • 在地图上显示信息后,很容易就低估了用户界面中非GIS部分的重要性

  • 业界从传统上就忽略了GIS软件的可用性方面,他们之所以放弃了这一点,因为数字地图被视为学习曲线缓慢的技术交易,与如何使用界面相比,要学习的概念要困难得多。这意味着任何试图为非专家设计GIS接口的人都必须发明自己的原理,这注定会造成混淆(一个很好的例子是Google的“我的地图”或Bing Maps的“我的位置”)


2

基于Web的GIS开发面临的最大挑战之一是如何交付数据以及以某种方式获得数据的效率。最大的障碍是很难为需要人工调整的内容编写代码。您很少看到大规模使用矢量数据的一般化技术。大多数时候,您必须调整比例范围才能打开和关闭图层。


1

这个问题出现在我的google搜索中以解决GIS方面的挑战时,我想在此做出自己的贡献。

我认为与此相关的另一个链接是这篇论文。

总结一下这里所说的话和我的观点,我认为最大的挑战(不分先后)是:

  • 用户界面:拥有大量的用户界面选项,对于开发人员来说,优化产品以适应所有设备是一项挑战。触控式,台式机与可穿戴式。戈尔(Gore)提出的DE的构想是未来的发展,它具有带显示屏的可穿戴式耳机,带有方向控制的手套和语音识别功能。
  • 标准化:有了数据存储和检索的标准,我们可以将地理数据库保存在云中,并允许在运行中提取信息,从而可以使GIS浏览和使用变得更加顺畅。
  • 数据使用:决策者总是需要时间。如果要使用一种工具来帮助他们,则应该以一种平稳,便捷和快速的方式来完成。GIS在这方面似乎还没有交付,这就是为什么它仍不是流行语的原因之一。
  • 数据:数据多变,分散且嘈杂。即使对于在实时GIS上有明确动机的组织,数据的聚集对于设想输入仍然是一个很大的障碍。
  • 协同努力: GIS是多学科的。每个孩子都知道。在第一张幻灯片中,管理层已意识到这一点。尽管这样的多学科,多部门的项目很少见。

0

在编码方面,我觉得我在解决方法上浪费了太多时间。对于预测,我花了几个月的时间来理解过程和数学,因为我认为关于该主题的出版物很少。关于该主题的EPSG和OGC文档确实使我有所了解,即使它们有时有时互为抄写,但经过几读。作为独立开发人员,我最大的问题是,即使到现在,我还是不得不为需要专门工作进行医疗,工业甚至简单的Web应用程序开发的人们绊倒。对于GIS行业,似乎几乎不可能找到进入市场的方法。


0

我是GIS技术的完整入门者,可以随时进行查找。由于我的资金有限,因此我尽量避免使用任何ESRI产品,而完全使用开源工具来完成任务。

可以这么说,到目前为止,对我来说最困难的事情都与收集数据有关。关于操纵和显示数据的文章很多,并且有许多工具可以使您的生活更轻松。但是,在收集数据方面,我仍然处于黑暗中。

我不知道专业人员会如何查找和收集数据。有人告诉我,有一种比data.gov和google更简单的数据获取方法。


我们大多数人不得不从供应商那里购买它,他们会进行实际的地面调查并从其他来源进行转换。在第三世界,从政府公开获取数据是PITA
Devdatta Tengshe 2010年

-1

您可能不幸被迫与已经转换为软件开发人员的GIS分析师合作。

容易期望有能力的软件开发人员掌握GIS概念,并让他们通过API来解决问题,并且通常不需要太多帮助。聘请GIS分析师并期望他们从事软件开发并非如此。

结果充其量是令人尴尬的。如果您有与不良开发人员一起工作的经验,那么可以想象一下,与最糟糕的程序员所开发的东西相比,它的代码更糟糕。

您可能为之工作的一些公司没有做到这一点。


2
@emptyset:我是成为开发人员的地理学家。我认为我的结果充其量不会令人“尴尬”。我比其他具有IT背景的同事拥有更多的开发技能-包括更好地理解和使用OOP概念,数据库概念和规则等。当然,我不同意您的回答:P
George Silva,2010年

1
@George:我并不是说您不是这么说的,只是指出要成为一名出色的开发人员,您必须知道自己的经验。至少我尝试。
Vinko Vrsalovic

2
+1在很多情况下,我被要求“纠正漏洞”, 由一位或多位分析师撰写,en.wikipedia.org / wiki / Big_ball_of_mud。一些最糟糕的代码是由一些最聪明的分析师编写的。聪明的人常常没有意识到简单的美。常常是管理方面的错误-分析人员可能会意识到重构的价值,但无法证明花时间更改没有中断的代码是合理的。
Kirk Kuykendall,2010年

3
对于这个推论,您可能很不幸无法与被迫以GIS专业人员身份工作的软件开发人员一起工作。我非常警惕来自任何领域的任何人,只是想一想它们在GIS中的处理情况。我是一位研究开发的分析师,我完全希望并希望人们警惕我的代码。任何觉得自己在GIS方面做得很好的开发人员,可能都做不到。:-)
马特·威尔基

3
-1-非常笼统的陈述,被证明是虚假的并且令人反感。正如Matt W所暗示的那样,通常让GIS专家来进行编码比其他方法更好,因为与GIS相比,有很多资源可以帮助您学习编码和实施最佳实践
dmbrubac 2010年

-1

除非早期仅由工程师,建筑师或科学界来对待GIS,否则GIS世界正朝着普通用户扩展。在为普通用户完成GIS应用程序的情况下,挑战是适当地混合使用各种技术,其中GIS被更多地视为一项技术(在这种情况下,对GIS技术了解很少的开发人员就足够了)。但是,如果该应用程序是为特定社区开发的,则挑战更为复杂,因为除了必须使用连接技术来搜索现有算法来满足要求之外,否则我们将不得不开发这些算法。在这种情况下,由工程师和开发人员混合而成的工人才是合适的。

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.