在需求收集阶段审查新的GIS产品开发要求及其要求.此应用程序需要在桌面和移动设备上的应用程序的某些部分上运行,然后可以同步到桌面或服务器.该产品将处理图像,定义边界,使用图层分析,多边形,导入形状文件,使用GPS记录定义边界和应用程序来输入记录.什么是理想的开发环境?因为其中一个主要要求是该产品的上市时间.听说过ESRI作为理想的映射工具和Oracle Spatial或SQL Server作为数据库播放器.如何分析适用于此开发的正确工具,包括WEB,桌面应用程序,移动平台和服务器端应用程序?经验丰富的产品开发人员的任何想法!
Dan*_*den 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开发的更好环境.
如果此应用程序适用于Windows(桌面)和Windows Mobile,则C#/ .Net是一种出色的语言/平台选择.使用Mono,您也可以(可能)覆盖Mac,Linux和iPhone.SQL Server或Oracle都可以用于数据库,尽管我会使用SQL Server(Oracle,尽管它有很多优点,但处理起来却更麻烦).
由于Web组件可以是ASP.Net,因此您将拥有使所有代码(即使在SQL Server中)都是C#的独特优势,因此您只需要精通一种语言.