开发方向
最近,地理信息系统(GIS)的开发与应用越来越多的倾向于Web端,Web端开发确实比以C# ArcGIS Engine为代表的C/S开发更具优势,而且可以通过H5轻松实现跨平台。做过进入这个行业有一段时间的人,想起自己在学校时,没有人指导开发,自己苦苦摸索,却事倍功半。写下这篇博文给那些在校的GIS学生介绍一下WebGIS开发的大致路线和入门知识吧。
首先,WebGIS的开发平台主要有以下四类
商业平台
ArcGIS、超图、MapGIS等商业平台,其中以ArcGIS JS开发应用最广,性能也稳定,学习资料和代码也比较多。
开源平台
开源WebGIS平台很多,如OpenLayers、Leaflet等,其中OpenLayers的应用最为广泛,功能也最强大,而且一直在更新,使用者众多。比较有意思的是,在之前打开MapGIS的Web开发代码,居然发现了OpenLayers的JS文件。
百度、高德等地图平台
这些平台虽然不是为GIS而生,但是其定期更新的地图,省去了开发时搭建地图服务器的麻烦。很多非GIS开发人员也能轻易开发。对于个人或者非商业的应用是免费的,实际开发过程中,也有很多不侧重与GIS开发的公司在进行百度等地图平台的开发。
基于WebGL或其他图形语言的底层开发
前面三个说的都是二次开发,有一次强调自己品牌和地位的公司会基于WebGL或其他技术进行更底层的图形发开,对开发人员的GIS知识和算法准备有很高要求。开发周期长,前期投入较多,进行此类开发的人员较少。
开发技能掌握
如果你是一个想进入WebGIS开发的人员,或者在书本前徘徊迷茫的GIS学生,下面就是你做WebGIS开发需要准备的技能
知识结构
进行WebGIS开发之前,你一定要有这样的清晰的模型,WebGIS是如何工作的,地图是如何展示出来的。你需要了解以下名词和它们之间的关系:
地图服务器地图服务(OGC、WMS、WFS、TMS、WMTS)GeoJson地图切片后台开发基础 Html5、CSS、JavaScript——Web开发共同基础ES6——JavaScript的新一代标准,新版本的WebGIS平台多依赖于ES6基于一定的后台开发的经验或知识,毕竟要从html页面去后台查询空间数据信息ArcGIS等商业平台开发入门
虽然商业平台比较多,这里就说应用最广的ArcGIS JS开发,写文章时,最新版本是ArcGIS API for JavaScript4.8。
ArcGIS Desktop基础操作——会数据简单处理,坐标系转换
ArcGIS Server——可以发布各类地图服务
ArcGIS API for JavaScript可以调用各类地图服务
可以使用ArcGIS Server发布空间处理服务(更高级要求)
OpenLayers等开源平台开发
GeoServer——类似于ArcGIS Server,开源地图服务器,一般与开源地图平台搭配
Udig——用来配置GeoServer中地图样式
PostgreSQL与PostGIS——开源空间数据库,存储数据,简单分析
高德等地图平台
如果你会了前面两类开发,百度、高德、腾讯地图等也不觉得有什么难度了。会JavaScript语言,对照着官方的开发文档和教程,很容易就写出来了。
总结
基于WebGL或其他图形语言的底层开发不适合GIS新人去做,需要你工作几年,自己总结出一些东西,再做的话,做出来的更实用,开发的过程中也就知道哪里应该优化。
GIS开发人员,不明白时,开发文档和官方Demo是最好的老师。经常遇到很多人,官方开发文档和Demo有的东西,还去问别人,这样做,没有人愿意给你讲太多的。
14420934