在需求收集阶段审核新的GIS产品开发要求及其要求。此应用程序需要在桌面和移动设备上的应用程序的某些部分上运行,然后可以同步到桌面或服务器。该产品将处理图像,定义边界,使用图层分析,多边形,导入形状文件,使用GPS记录定义边界和应用程序输入记录。 什么是理想的开发环境?因为其中一个主要要求是该产品的上市时间。听说过ESRI作为理想的映射工具和Oracle Spatial或SQL Server作为数据库播放器。如何分析适用于此开发的正确工具,包括WEB,桌面应用程序,移动平台和服务器端应用程序?来自经验丰富的产品开发人员的任何想法!
答案 0 :(得分:14)
ESRI确实提供了很多好的工具。特别是如果你有移动设备要求,我会调查ESRI,因为我不知道在移动世界中真正强大的替代品。
(编辑:当我在上面说“移动”时,我认为你的意思是移动GIS设备,比如Trimble个单位。如果你真的想要在像iPhone这样的东西上做移动GIS,你可能最好使用特定于平台的工具。我知道Apple有一些非常好的工具包(根据NDA IIRC)你可以用来在iPhone上做地理空间应用程序。我不知道支持在其他地方看起来像什么移动设备。)
在数据库端,Oracle Spatial,SQL Server 2008和PostGIS都是玩家。但是,如果您正在使用ESRI解决方案,请注意ESRI基本上将自己定位为端到端解决方案。因此,对数据库的任何访问都可能通过ESRI的ArcSDE层,这意味着不同数据库平台可能带来的独特优势将会丢失。
就实际地图渲染而言,我还没有找到理想的ESRI解决方案。特别是,许多ArcObjects代码在大量多线程环境中存在问题(例如,一次渲染许多映射),而其他渲染解决方案并不存在。一种替代方案是将ESRI解决方案用于系统的各个部分(例如移动支持,分析),并将其他解决方案用于其他部分。
我自己倾向于倾向于使用开源工具来尽可能多地使用开源工具。要研究的一些工具包括:
当然,如果上市时间是一个关键的限制因素,那么要考虑的主要事项之一就是您的团队已经知道的事情。如果您的团队熟悉ESRI工具而不熟悉开源替代工具,那么您可能只是出于方便而走这条路。
而且,正如MusiGenesis指出的那样,除了所有这些工具之外,C#/ .NET可能是一个很好的平台。使用C#进行ArcObjects开发当然是可能的,我的经验是,与C ++中的直接COM相比,它是ArcObjects开发的一个更好的环境。
答案 1 :(得分:5)
如果此应用程序适用于Windows(桌面)和Windows Mobile,则C#/。Net是一种出色的语言/平台选择。使用Mono,您也可以(可能)覆盖Mac,Linux和iPhone。 SQL Server或Oracle都可以用于数据库,尽管我会使用SQL Server(Oracle,尽管它有很多麻烦,但处理起来却更麻烦)。
由于Web组件可以是ASP.Net,因此您将拥有所有代码(即使在SQL Server中)是C#的独特优势,因此您实际上只需要精通一种语言。
答案 2 :(得分:1)
我建议您在OSGeo Foundation - OSGeo.org的保护下开发一系列项目。有各种各样的开源项目可用于各种应用程序,开发平台等。