想要进行Web GIS开发的人应该学习/掌握哪些技术和技能?
请每个答案一种技能/技术。
想要进行Web GIS开发的人应该学习/掌握哪些技术和技能?
请每个答案一种技能/技术。
Answers:
我可以向您介绍一下我的经验,该经历始于一个简单的地理学家,尝试使用GIS产品进行空间分析。
正如我所说,我是地理学家,从大学一开始,我就以用户身份开始使用GIS。之后,我开始研究如何自动化我经常要做的繁琐任务。那是充满激情的,三年三之后,我受雇于一家跨国软件公司,该公司与许多GIS系统一起工作并开发定制解决方案。
我的步骤是:
很好地学习GIS。没有基本权利就不要开始学习编程。投影和转换,空间分析,栅格和矢量模型之间的差异等。
学习SQL。这实际上是第一部分的第二部分。如果您开始以“ sqlish”的方式思考,它将对您有很大帮助。SQL在供应商之间变化。我可以建议您使用PostgreSQL,它是最遵循该标准的供应商。如果您需要学习特定的方言,请在实际需要时再做。
面向对象编程。这似乎是一个挑战,但是一旦掌握了基础知识,这将非常容易。选择一种简单的语言即可。到目前为止,Python是最简单的一种。学习Python是一个很好的起点。有开源/免费的Python书籍,例如Dive into Python。在Python之后,有趣的选择是:.NET,Java和C / C ++。
学习编程。读代码,写代码。阅读地理空间代码。编写地理空间代码。研究经典的API:GEOS,JTS,GDAL,ArcObjects(如果您是ESRI迷,这在市场上是一个很大的优势)等等。
-处理地理空间问题并编写代码来解决。我不能强调这是多么有用。这会让您发疯,但这是确认您学习编程方面并确保您的地理空间技能是最新的一种很好的方法。就我而言,我编写了一个小型PostgreSQL应用程序对交通事故进行地理编码。
继续学习。OGC标准是一个不错的选择。
了解数据库的处理方式。任何GIS开发人员都将广泛使用它们。
最为显着地:
假设您已经了解了GIS方面的内容(制图原理等),那么我将首先浏览一下http://www.w3schools.com/- 通过HTML,Javascript,XML等教程学习
然后,您有许多不同的平台可供选择。我对ESRI有点偏见,因此我建议从开始学习API入手
http://resources.arcgis.com/content/web/web-apis-
通过概念/样本运行可以使您真正了解什么你可以实现的。
我发现下载代码示例并对它们进行反向工程以与您自己的服务一起工作(假设您有一个ArcGIS Server实例,否则可以使用ESRI示例服务器)是学习的好方法。
也有很多视频,请观看这些年的开发会议视频 。Id推荐:JavaScript的ArcGIS API概述,设计有效的地图服务的最佳实践,为Web重新设计桌面应用程序以及使用ArcGIS Server REST API。
您会选择哪个网络平台? 我将忽略WebADF(Java / NET),因为这将逐步淘汰。
你的客户是谁?他们将使用哪些浏览器?他们可以安装Silverlight或Flash插件吗?您要开发任何IDE吗?例如,Flex在FlashBuilder($$)中是最好的,但是您也可以使用FlashDevelop,它是一种开源替代方案。
您对既有技术还是新兴技术更满意?权衡风险。
-.NET / Java已经存在了很长时间-Silverlight和Flex相当新,关于HTML 5是否会淘汰这些平台尚有争议
Silverlight和Flex都具有更多的开箱即用的交互性,因为Java依赖于Dojo.Framework来弥补这一差距。
Web ADF和Web API在功能上的最大区别在于,ArcGIS Web API完全是客户端。
我将让其他人给出一个不太ESRI的具体答案,但显而易见的选择是开始使用Google Maps API- 有很多资源/教程可用于学习。
假设您设法整理了空间数据库和地图服务器(在此处的其他答案中进行了描述),并且掌握了HTML,CSS和JavaScript的知识,那么您可能会开始修改客户端库,这些客户端库将在用户的Web浏览器中使用和显示地图组件。
OpenLayers似乎是迄今为止引用和使用最多的库。它具有很好的文档和示例,您可以在此处找到一些教程。在这里, BostonGIS页面不仅对OpenLayers有用,对您也将很有用。
取决于您的知识/学习Python MapFish的意愿也是非常合适的解决方案。或者,您可以深入了解GeoDjango,但是我自己对此解决方案无法发表过多评论。
或者,您可以查看其他OSGeo Web映射解决方案,使用Flash或使用ESRI Web API之类的商业产品。