知方号

知方号

WebGIS的认识及学习路线推荐!

WebGIS的认识及学习路线推荐!

目录

1. 什么是WebGIS

2. Web开发

3.  GIS理论知识学习

3.1 GIS理论

3.2 OGC标准

3.3 地图可视化

3.4 地图切片原理

3.5 WebGIS体系结构

3.6 地理数据处理

3.7 GIS相关数据格式

4. WebGIS开发

4.1 开源GIS类库

4.2 商业GIS类库

5. GIS数据存储

6. GIS服务器

7. 推荐WebGIS学习路线

1. 什么是WebGIS

WebGIS(网络地理信息系统)是指工作在Web网上的GIS,是传统的GIS在网络上的延伸和发展,具有传统GIS的特点,可以实现空间数据的检索、查询、制图输出、编辑等GIS基本功能,同时也是Internet 上地理信息发布、共享和交流协作的基础。简单说就是Web技术加GIS技术,通过Web进行构建应用,通过GIS手段实现各类空间信息相关的功能,因此,对于WebGIS的学习路径,首先应从Web开发及GIS理论知识学起。

2. Web开发

互联网时代,只要公司有开发互联网产品的需要,包括网站、网页、H5、小程序、APP等,就一定少不了前端开发工程师岗位。如今的“大前端时代”,前端也已不限于传统PC端和移动手机端,随着VR、可穿戴设备、车载系统、智能投影等设备的出现, Web前端直接进入了各个垂直领域,前端开发将有更⼴阔的发展空间。

在WebGIS的学习中,Web开发技术尤为重要,是整个项目的基础。对于Web端学习,只要把 HTML + CSS + JavaScript 这三门知识学习,就基本差不多入门前端了,并且可以利用这三门知识,进一步学习前端框架,达到更高的开发效率,如目前在企业中较为流行的两大框架:Vue和React。Web开发学习途径也有许多,如专业机构系统课程、B站、CSDN、慕课、网易云课堂、腾讯课堂等平台。

3.  GIS理论知识学习

GIS相关专业学生或工作人员,对于GIS理论知识一定不陌生。在WebGIS开发中,除了GIS相关原理,还要重点掌握与WebGIS开发相关的一些理论知识。

3.1 GIS理论

WebGIS开发人员应具有一定的GIS理论基础,在开发中常见的地图坐标系,如大地坐标系统WGS-84、火星坐标系统GCJ-02、百度坐标系统BD-09等,常见的地图投影方法如墨卡托投影、高斯-克吕格投影等,以及常用的空间分析功能及其作用,如缓冲区分析、可达性分析、最短路径分析等。

3.2 OGC标准

OGC 全称是开放地理空间信息联盟(Open Geospatial Consortium),是一个非盈利的国际标准组织,它制定了数据和服务的一系列标准,GIS厂商按照这个标准进行开发可保证空间数据的互操作。常见的服务有地图服务(WMS)、矢量服务(WFS)、栅格服务(WCS)等。

3.3 地图可视化

在GIS开发及应用中,地图可视化是地理数据展示的一种途径,应用地图来分析和展示与位置相关的数据,可以比数据表、数字等形式更为明确直观,让人一目了然。因此,应具有一定的地图可视化能力,如数据展示的方式、地图颜色搭配等。

3.4 地图切片原理

目前越来越多的地图服务用到瓦片技术,例如我国实行发布的天地图服务就运用了地图瓦片技术。瓦片地图金字塔模型是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。在WebGIS开发中,该方式可节省地图的绘制时间,减轻服务器压力,但切片之后的地图瓦片是栅格图像,并不具备定位信息,不过切片运用了相关切片算法之后,可以计算出具体定位的位置。例如采用WGS84大地坐标系为空间参考,对地图进行切片,采用一定的切片算法,例如用经纬度步长等比例分割形成地图瓦片,当需要对一个具体地方进行定位时,可以根据经纬度步长来计算具体位置,以此来达到定位的功能。

3.5 WebGIS体系结构

WebGIS体系结构主要可分为集中式架构、C/S模式、B/S模式和混合模式。

1. 集中式架构:

由一台或多台服务器组成中央服务器,多个节点服务器与中央服务器连接,由中央服务器统一进行资源和任务调度。节点服务器之间无需通信和写作,只需与中央服务器通信协作即可。

2. C/S模式:

即客户机/服务器模式,包括两层C/S模式和三层C/S模式。

两层C/S模式中,客户机包括用户界面GUI和部分乃至全部GIS功能单元,服务端则用于存储数据库或者部分GIS功能单元。这种模式存在着系统的管理、维护和应用拓展的一系列问题,程序升级需每个客户端都安装新的客户端应用程序,代码重用率较低,通常只适用于小型局域网,且数据安全性较差。

三层C/S模式将GISystem一分为三,即客户机、应用服务器和数据服务器。客户机是带有简单业务处理能力的GIS GUI,负责与用户交互,空间信息的显示极简单的空间处理任务;应用服务器是WebGIS的核心,负责GIS业务处理及数据访问等任务;数据服务器主要负责空间数据的管理,是空间数据管理系统。

三层模式与两层模式相比,具备良好的灵活性和可拓展性,可共享性强,服务器可以为处于不同平台的客户端应用程序提供服务,可并行开发,节省开发的时间和投入,代码可重用性好,数据安全性较高。

3. B/S模式:

即浏览器/服务器结构,可以看作是三层C/S模式的网络实现,在这种结构下用户工作界面是通过浏览器实现的,少部分事务逻辑在前端实现,大部分事务逻辑在服务器端实现,可以分为客户端浏览器、网络服务器、WebGIS应用服务器及GIS数据服务器。浏览器是WebGIS的GUI,为标准web浏览器,负责与用户交互,向web服务器发送请求,从web服务端接收处理结果,然后可视化表达;web服务器用于接收用户请求,调用WebGIS应用服务器中的GIS组件完成相应的应用逻辑,并将返回的处理结果进行包装,生成动态web内容,返回到web浏览器;数据服务器主要为空间数据管理系统+属性数据管理系统,负责数据的存储和交互。

该方式具有可拓展性、灵活性、重用性等一系列三层C/S结构所具有的优点,还具有零维护、界面美观、跨平台等浏览器所具有的优点,系统的开发成本低、升级维护具有经济性。但其基于Web浏览器进行实现,很难实现高级的GIS功能,与服务器交互频繁,受网络影响较大,且由于大部分应用在服务器端实现,对服务器要求较高

4. 混合模式:

将C/S模式与B/S模式有机的结合起来,可以优势互补,使系统更加完善,一般用于企业级别,以满足多用户群、高性能、高级GIS业务功能等需求。

对于信息交互量不大,远程访问和信息查询的功能模块,采用B/S模式;

对于信息交互量大,数据处理复杂和安全性要求高的模块,采用C/S模式。

3.6 地理数据处理

GIS开发中,会涉及到大量的地理数据,地理数据的处理,是GIS开发工程师应必备的一项技能,如使用商用软件ArcGIS、SuperMap系列或开源的 QGIS等GIS软件进行数据的编辑和处理,为后续的开发提供所需的空间数据。

3.7 GIS相关数据格式

初学者往往会被格式五花八门的 GIS 数据文件,弄得一头雾水,每个软件(ArcGIS、SuperMap、MapGIS等等)也都喜欢自己整一套数据格式,更想让自己开发的数据结构成为标准,这些厂商为了达到商业目的各自为阵,给我们这些学习和使用者带来了很多麻烦,增加了学习成本,数据互操作困难,因此,应了解一定的数据格式,以便于对各种空间数据进行使用。

4. WebGIS开发

WebGIS开发主要可分为两种模式,一种是基于C/S架构下的WebGIS应用开发,另一种为基于B/S架构下WebGIS应用开发。但目前大多数WebGIS开发都为B/S架构,WebGis组成基本要素是:浏览器—服务层—数据层,如所有的Web项目一样,前端由HTML、CSS、JS等语言组成。因此,在WebGIS开发中,应具有一定的前端基础,并使用各类GIS相关类库,实现用户所需功能。开发路径的选择中可分为开源路线和商业路线两种。

4.1 开源GIS类库

开源GIS相关类库可以分为三类,二维、三维及AI库。

1. 二维

二维类库中常用的由Echarts、Leaflet、Openlayer、Mapbox、百度地图API、高德地图API、天地图API及Turf等,开发人员通过调用相关类库,可实现地理数据可视化、GIS空间分析和地图可视化等功能。

2. 三维

三维WebGIS中,应用较为广泛的由Cesium.js和Three.js。Cesium.js可以实现三维数据加载、三维空间分析等GIS应用所需的功能,能够承载较大的空间信息量,但视觉效果一般;Three.js为计算机图形库,可以实现更加优美的场景,但信息承载能力有限,因此在小场景的可视化如室内中,推荐Three.js,在进行大量地理数据可视化及空间分析等功能时,推荐Cesium。

在三维WebGIS中,不仅要具有前端和GIS基础,还要拥有一定的三维建模软件及三维格式的基础,如 3dMax/Maya/SketchUp/Blender/Pro-E(三维建模)等软件的使用,并了解各种软件生成的模型格式及Cesium.js和Three.js所支持的数据格式。

3. AI

AI在大前端领域已经火爆了两三年了。随着设备算能的跃升和端侧模型的演化,越来越多的AI场景开始涌现。从最初的图片分类,到而今基于人体的百变特效、嵌入日常的语音识别、大众津津乐道的自动驾驶,AI已经开始进入我们生活的方方面面。前端AI类库主要有TensorFlow.js、Ml.js、 Brain.js及Paddle.js 等,TensorFlow.js目前应用较为广泛。前端AI应用领域主要包括人物识别、语义诊断、情绪分析、图像自动分类等方面,在WebGIS中,主要可应用于图像自动分类、图像处理等领域。

4.2 商业GIS类库

商业类库中,主要推荐ArcGIS API及Supermap iClient系列。

1. ArcGIS API for Javascript 

ArcGIS API for Javascript 是由美国 Esri 公司推出,跟随ArcGIS 9.3 同时发布的,是Esri 基于dojo 框架和 REST 风格实现的一套编程接口。通过 ArcGIS  API  for  Javascript可以对ArcGIS for Server 进行访问,并且将ArcGIS for Server 提供的地图资源和其它资源(ArcGIS Online) 嵌入到 Web 应用中。从ArcGIS API for JavaScript 的 4.x 版开始,逐渐引入三维相关功能,例如 3D 可视化、地图旋转以及更深入的 ArcGIS Enterprise 和 ArcGIS Online 集成。 

2. SuperMap iClient

SuperMap iClient JavaScript集成了Leaflet、OpenLayers、 MapboxGL、Classic这四种地图库,基于现代 Web 技术栈全新构建,是 SuperMap 云 GIS 和在线 GIS 平台系列产品的统一 JavaScript 客户端。集成了领先的开源地图库和可视化库,且核心代码以 Apache License 2.0 协议完全开源,连接了 SuperMap 与开源社区。提供了全新的大数据可视化和数据流可视化功能,通过本产品可快速实现浏览器和移动端上美观、流畅的地图呈现与空间分析。

Supermap iClient也包括基于WebGL的三维客户端开发平台SuperMap iClient for WebGL,可用于构建无插件、跨操作系统、 跨浏览器的三维 GIS 应用程序,可访问SuperMap iServer发布的多种服务、 实现了三维场景可视化浏览、交互操作和地理信息管理等功能。

5. GIS数据存储

GIS中用于存储空间数据的数据库主要是空间数据库。空间数据库是某区域内关于一定空间要素特征的数据集合,是GIS在物理介质上存储的与应用相关的空间数据总和。空间数据的管理主要包括初级式文件管理模式、文件/数据库混合管理模式、拓展式管理模式(空间数据引擎)和集成式管理模式(包括对象/关系型数据库和NoSQL数据库),目前较为常用的开源数据库有MySQL、PostgreSQL及mongoDB等,也包含一些商用数据库如Oracle、MicrosoftSQLServer等,还有商业GIS厂商自己的数据库如ArcGIS gdb和SuperMap udb等。

6. GIS服务器

在WebGIS开发中,无论是C/S架构还是B/S架构,服务器是必不可少的,与传统的Web应用相比,除必备的Web服务器外,还需要GIS应用服务器。Web服务器主要是接收用户请求,调用WebGIS应用服务器中的GIS组件完成相应的业务处理,并将处理结果进行封装,返回给客户端Web浏览器;GIS应用服务器是WebGIS的核心,负责GIS业务处理和数据访问等任务。常用的Web服务器有Tomcat、Nginx、IIS等,GIS应用服务器主要有开源的Geoserver、MapServer等,和商用的ArcGIS Server、SuperMap iServer等。

7. 推荐WebGIS学习路线

 WebGIS学习路线以Web基础和GIS基础并逐渐深化,按照类别主要可分为开源路线、商业路线,其中包括二维路线及三维路线。

1. 开源路线:

二维:

Web基础+GIS基础+QGIS+GeoServer/MapServer+Openlayers/Leaflet/Mapbox/Echarts+PostgreSQL/MongoDB

三维:

Web基础+GIS基础+计算机图形学+ 3dMax/Maya/SketchUp/Blender/Pro-E(三维建模) +三维格式转换+Cesium/Three/WebGL+UE4/UE5

2. 商业路线:

商业路线主要以Esri和超图公司的整套解决方案为例:

Esri:Web基础+GIS基础+ArcGIS/ArcGIS pro+ArcGIS Server+ArcGIS api

超图:Web基础+GIS基础+Supermap iDesktop+Supermap iServer+Supermap iClient JavaScript

(以上仅为个人观点,如有错误,望批评指正) 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。