WebGIS 是什么?需要学多少知识?如何成为真正的 WebGIS 开发者?

201 阅读4分钟

WebGIS 是什么?需要学多少知识?如何成为真正的 WebGIS 开发者?

我以前是做国网开发的,负责的项目是电力系统的地图业务。内部使用专业性很强的地图:思极地图,这也是我的启蒙地图,从这里开始,开启了我的WebGIS之路。

WebGIS是什么?

在我看来,WebGIS其实就是 前端 + 二三维地图库 + 地理知识

大部分做WebGIS开发的,是不是都是从前端接触到地图业务,然后开始学习地图相关的知识,比如Openlayers、Leaflet、MapBox、Cesium?对于找1-2w的工作来说,这些技能掌握到足够自信就可以了。

如果想要精进一步,这里强烈建议大家看一个开源项目:gis-spicy-hot-pot,项目虽然三年没有维护了,但是内容仍不过时。囊括了所有GIS开发者的博客,包含一些现在需要收费的CSDN博客。

项目地址:github.com/lovebetterw…

学习WebGIS需要哪些知识储备?

前端知识

前端知识是必须要掌握的,这是Web的基础,吃饭的家伙,必须熟练掌握至精通。哪怕没有Web GIS岗位,也能够干前端开发。

地图库

对于任何一个前端开发者来说,使用哪种地图库无非就是调取API。

说到地图,耳熟能详的就是百度,高德地图,没错,它们都提供了API供开发者使用。但是这是商业地图,需要收费滴。目前最火的开源地图库还属于OpenLayersLeafLet,以及三维可视化地图Cesium,这三种地图库必须从0-1的完整学习一遍,熟练掌握之后才能理解核心地图开发的思想。

常见的还有以下库,学是肯定学不完的,就像前端开发者使用UI库一样,熟练掌握一种即可,思想是一样的,公司用那种,你就用那种:

L7github.com/antvis/l7

MapTalksmaptalks.com/

Mars3Dmars3d.cn/doc.html

SuperMapwww.supermap.com/

Mapbox-gldocs.mapbox.com/mapbox-gl-j…

Deck.gldeck.gl/

我说下我个人的理解吧:

二维地图:二维地图其实很简单,脱离不了map、layer、source三个核心。底图服务如何加载?图层如何控制?矢量数据如何渲染及交互?

三维地图:三维是一个很难的概念,我也只是了解皮毛。在二维地图的基础上,添加了一些三维的概念。比如相机、场景、模型等。

地理基础知识

地理基础知识也是必须要掌握的:

  1. 坐标系的概念,没有坐标系,地图的一切都没有意义,什么是地理坐标系?什么是投影坐标系?
  2. 地图服务的概念也需要了解,什么是矢量、栅格地图?什么是瓦片、切片?什么是WMS、WFS、WCS、TMS、WMTS等?
  3. 地理空间数据格式有哪些?必须一眼就能看懂GeoJSON的数据格式
  4. 还有一些常用插件的使用,如Turf.js、proj4.js等
  5. 想要精进的话,还需要学会如何发布地图服务,ArcGIS、QGIS、GeoServer、PostGIS等使用

如何成为真正的 WebGIS 开发者?

WebGIS是需要大量实践的,不是一蹴而就。需要经过两到三年的打磨,精通三维开发,聚焦1-2个垂直领域,如智慧城市、环境监测、智能汽车等。二维地图开发实在太过简单,更多精力应该聚焦到三维上。

后续计划

目前我也做了两个网站:

  1. OpenLayers、Leaflet 快速入门:o.ygyong.cn
  2. Cesium 快速入门: c.ygyong.cn

大家想要入门的话,真的建议读一读我的OpenLayers、Leaflet 快速入门这个网站,把案例都看一遍,代码即拿即用,毫无保留。相信你整体读一遍,肯定有收获,在这里也求个Star,反馈才是创作的动力。

Ceisum这个入门网站还需要花一定时间去优化,感兴趣也可以看一看,目前也是搁置了很久。

往后我会往3D方向走,学习ThreeJS、WebGL,还要有一些AI知识储备,不过当下任务是优先搞Java,这几门技术,随便一个单拎出来都让我感到鸭梨山大呀!!!不过既然选择开发这条路,那注定是要不断学习的。