目录

一 WebGIS:

二 GIS背景

三 如何入门webgis开发

1 gis数据处理

2 gis数据服务发布

3 gis数据服务调用

4 gis数据渲染

四 WebGIS核心价值

五 webgis发展方向

六 gis开发就业方向

1 数据处理及制图方向(软件操作):

2 二次开发(桌面端-C端-Client)

3 webgis开发(网页脚本开发)

4 sdk引擎开发

小白新手,可以从该框架入手学习

webgis基础开发教程可参阅:小白GIS-基于地图的Web开发教程

一 WebGIS:

Web就是网页,GIS全称是地理信息系统;所以webgis系统就是网页端的地理信息系统,即将地理空间信息以地图的方式在网页端展现出来,做可视化或者是空间分析功能;

二 GIS背景

        gis是一门专业课程,大学阶段叫地理信息系统(科学),研究生阶段是地图学与地理信息系统;该专业小众而又专业。

        大部分gis专业的学生,在本科阶段,包括c语言、c++、数据结构,c#,VisualStudio等基础技能都会有相关课程教学。

        如果上大学知道这专业可以做软件开发的话,那你就比别人早觉悟一步了,但相信大部分人有这觉悟可能已经大三左右了。

        往后就是实操技能,接触arcgis二次开发、supermap制图等等;然后是arcgis for js的网页gis二次开发;大学阶段接触开源gis相对比较少,因为还是以课程为主。

        目前随着地图渗透在各行各业,只要设计地图的领域都可以定义为GIS。

三 如何入门webgis开发

        想成为比较专业的giser,最起码从gis数据处理,gis数据服务发布,gis数据服务调用,gis数据渲染这四个方向入手;

1 gis数据处理

        gis中的数据一般有矢量栅格数据;

        首先对shp,geojson等矢量数据格式及其构成要有一定了解;其次可以利用arcgis、supermap、mapgis、qgis等软件操作查看、处理、以及转换数据,软件会用其中一二即可。

        栅格数据:就是图片数据,切片数据;常用来发布成底图服务。

        gis数据库:mysql,postgis等空间数据库;用来存储空间数据,说白了就是坐标嘛。

2 gis数据服务发布

        常用方式通过地图服务器类似于 ArcGIS Server、geoserver等,将矢量数据或者栅格数据发布成矢量或者栅格数据服务,如果只是发布简单的栅格服务,用nginx等web服务器也是可以的;

3 gis数据服务调用

        当得到一些发布成功的restful服务地址后,我们可以使用各种gis的sdk调用服务;常用的sdk特别多如下。只需要掌握html、css、javascript即可上手使用。

(1)arcgis api for javascript

(2)openlayers

(3)leaflet

(4)mapbox

(5)cesium

4 gis数据渲染

一种是利用sdk调用地图服务器发布的restful服务,通过指定APi渲染;

一种是直接将txt,geojson,wkt等格式的gis数据,通过sdk绘制几何图形的方法将其绘制在网页地图;

四 WebGIS核心价值

        gis的核心价值是空间分析能力;目前随着可视化方向的发展,已经开始有所分化;空间分析多在传统GIS行业;可视化的设计范围就相对更广了。

        空间分析:包括了路径导航分析,缓冲区分析,叠加分析等等,现在主流的地图引擎,百度,高德,滴滴等都是体现gis空间分析能力的代表,空间分析借助了更多gis传统算法

        空间可视化:即将点线面等要素能在地图直观表达出来,然后加上各种酷炫渲染效果;像墨迹天气等结合遥感数据做的天气可视化系统等

五 webgis发展方向

        个人感觉:目前gis在被各行各业逐渐稀释,即所有行业都能涉及gis内容;但是现在最火也比较专业的是CIM,BIM+GIS等方向;咱也知道行业特点是概念先行,实践在后;不过迟早能发展起来的。

        二维电子地图:政府项目偏多,因为重点是对gis数据的空间分析功能。

        CIM:城市信息模型,顾名思义,范围较大,侧重点在地图大空间下,结合城市级别的模型,进行可视化方向的应用,比如智慧城市;重点在数量级,可视化方向;目前超图,arcgis等都在做。

        BIM+GIS:建筑信息模型+gis;咱就简单点,就是将BIM模型以gis支持的格式,在webgis地图中将模型展现在真实地理位置的真实位置上;重点在模型本身,在模型上做概念,比如精度,操作度等;倾斜数据,obj,3dtiles等都可以在地图展示;

        气象+gis:将气象反演数据结合地图做展示,主要是区域性的降水,温度,地面填土等方向,仅仅可视化作用,核心部分在遥感数据反演。

        数字孪生方向:个人理解,数字孪生未来应更偏向与物联网对接;用高精度的模型,酷炫的场景模型,将真实环境的“实体”通过电脑数字化出来,做到极度逼真;围绕此方向可做的概念也是很多;通俗点说,希望用鼠标操作物理世界;

六 gis开发就业方向

1 数据处理及制图方向(软件操作):

        gis数据种类较多,可以做数据处理,数据转换,数据清洗,数据服务发布,专题制作出图等工作;技能我觉得对常用的gis软件操作熟悉,arcgis, supermap,mapgis,udig等等,熟悉其中常用转换工具,符号化,专题图制作流程即可;

        该工作适合对编程,程序不感冒同学;女生具多,比较合适;

2 二次开发(桌面端-C端-Client)

        二次开发,比较多的是arcgis eninee二次开发;这工作就是利用arcgis的开发包,实现arcgis中的功能,针对不同项目,不同业务定制实现对应的功能;

        大学一直从事二次开发的同学可以继续做;不过目前岗位较少

      掌握技能:c#

3 webgis开发(网页脚本开发)

        新手入门最快的方向;只要熟练引用sdk库开发地图功能,就可以做一些gis渲染相关的项目;

做一些基础的空间分析或者空间可视化系统;目前各大地图厂商也陆续推出自己的可视化sdk,但都是局部,部分定制功能,适合gis系统锦上添花;入门gis开发最好先从以下技能开始;

二维:openlayers,leaflet,arcgis api for js 3.x,mapbox     实现原理:canvas ,image

三维:cesium,arcgis api for js 4.x ,mapboxgl                   实现原理:webgl

2.5D:mapbox

掌握技能:html css javascript  ,一点canvas  webgl技能,geoserver,turfjs等,多多益善。

4 sdk引擎开发

        上面的工作都是对sdk的使用,通过sdk来做项目;很多公司,有一定规模后,会实现自己的sdk;

一种:大公司,从零实现地图引擎,需要技能较高,难度大;熟练canvas和webgl开发

一种:小公司,封装造轮子开源的sdk,做二次封装,对sdk源码有一定理解即可;

熟练掌握技能:canvas webgl 数学能力,偏向于矩阵等算法

小白新手,可以从该框架入手学习

Logo

华为云1024程序员节送福利,参与活动赢单人4000元礼包,更有热门技术干货免费学习

更多推荐