很多对GIS开发有一定了解的朋友应该知道,WebGIS开发是GIS开发岗位招聘中需求最高的。
学习GIS开发,第一步都是先学习Web开发基础(HTML5/CSS/JS),那WebGIS开发和Web开发有什么差异?
WebGIS开发简介
Webgis开发其实本身也是Web开发的一个过程,同样包括了三个端口:前端、后端和服务器。如下图所示:
WebGIS开发过程
前端涉及到的一些地图数据库(openlayer/leaflet/mapbox等)做一些可视化效果;
中间层就是服务器,这一部分包含了一个GIS服务器的概念;
后端主要就是数据库层;
WebGIS开发涉及到很多前后端交互的过程,主要有2个方面。
第一个是地图显示时发生的一些前后端交互过程。比如前端进行一些交互操作,打开一个地图网页,对网页进行双击或者拖动,改变当前地图的显示范围,然后会引起发送请求,后端会响应请求,返回可见范围的图片数据。
总结如下:
前端——交互操作——发起请求
后端——响应请求——返回数据
另外一个是通过前端去绘制并存储数据的过程。在前端绘制一个地图以后,可以主动发起请求,把绘制完的数据发送到后端,同样的后端也会响应请求,存储数据。
总结如下:
前端——绘制数据——发起请求
后端——响应请求——存储数据
和传统的web开发不同的是,WebGIS开发对应的是空间数据,需要使用到空间数据库,存储的数据也是矢量数据。
所以WebGIS开发和Web开发有一个很重要的区别在于,
WebGIS开发数据的存储和数据格式和传统前端不太一样;数据量可能会比较庞大,涉及到一些后端查询和展示的问题。
说到这里,不得不提一个很多朋友会遇到的一个问题。
在接触WebGIS开发的过程中,大家都会有一个最基础的需求,就是把数据展示出来。然后同样也会遇到一个问题:我按照一个示例的格式去写了代码,数据为什么不显示?或者出现了偏移?
这里就要引入一个很重要的概念,就是投影参考系。
刚才提到的问题就是由于我们的数据投影参考系,与我们地图框架涉及的参考系没有保持一致造成。
投影参考系
-
地图投影是利用一定数据法则把地球表面的经、纬线转换到平面上的理论和方法。
-
由于地球是一个赤道略宽的不规则的梨形球体,其表面是一个不可展平的曲面,运用任何数学方法进行这种转换都会产生误差和变形,为按照不同的需求缩小误差,就产生了各种投影方式。
下面是WebGIS中最常用的两种参考系:
WGS84参考系是长宽比2:1的一个长方形,以度为单位。
Web墨卡托参考系是一个正方形,它是前端部分会大量使用的参考系,以米制为单位。
如果要在前端快速分辨这两种坐标,可以看下地图显示范围,Web墨卡托参考系为了方便显示,切掉了一部分位置;或者看坐标,如果是坐标比较小的,比如在正负180以内,很可能是WGS84坐标系;坐标随便就是几百万几十万的,一般都是Web墨卡托参考系。
其他文章: