GIS开发其实严格来说分为前后端以及底层开发。不同的方向,代表了不同的开发语言。
所以大家首先要了解自己具体要做的岗位类型是什么,其次才是选择专业侧重点。
但是严格来说,选择某个专业,到就业方向这个过程,并不是不可逆的。意思是,假设你的专业并不适合某一个岗位,也能够通过后天的学习努力达到标准。
下面重点说一下GIS行业主要的开发岗位分类:
1、GIS底层开发
GIS底层是指软件的桌面端、Web应用程序和移动应用程序。
说白了就是做软件,国内外有各种GIS软件公司,例如美国的ESRI公司的arcgis,国产的超图的supermap和中地数码的mapgis等,都属于gis软件。
软件开发又分为应用层和底层,通常会用到c语言或c++,企业会招聘C++工程师来从事这部分工作。需要这类开发人员掌握基本的数据结构和算法以及相关开发经验。
所以这类岗位,计算机专业的同学更有优势。
2、Webgis开发
也就是常说的二次开发或前端GIS开发,webgis以网页端为载体,通常是通过前端技术,实现地图可视化展示。
WebGIS实际上属于前端可视化开发的一个方向,地图可视化开发。
而这其中又分为二维和三维,分别对应leaflet(二维)、openlayers(二维)和mapbox(三维)、cesium(三维)等开发引擎。
市面上大部分招聘WebGIS工程师、三维GIS开发工程师等说的也是这一类。
前面说到,WebGIS开发属于地图可视化开发,因此他们需要学习前端知识以及常用的二三维GIS开发框架。
很多地图框架例如openlayers、cesium等,都是已经封装好的地图API,webgis工程师需要在前端编程的基础上,将这些API调用,实现项目所需的展示及交互等功能。
webgis涉及到很多地图格式、坐标、地图处理、地图空间分析等相关知识,因此大部分企业更青睐GIS专业的科班背景,当然,会编程是必须的。
3、GIS后端开发
GIS公司通常也会招聘后端开发,一般后端是使用Java、PHP等作为开发语言,Java应用相对较广。
在实际工作中,一个GIS的项目开发过程,通常需要前后端结合开发配合,前端负责展示和交互,后端负责数据存储和处理。
二者缺一不可。
也有一些公司会要求程序员全栈,也就是前后端都会;但我个人认为分工明确可以提升工作效率,精度,在各自的专业领域发挥更大价值。
要求前后端都会的,多少有点扼杀程序员在各自领域的发展空间了。
如果给的钱多,还好说,否则不是很推荐这种做法。
全都学,但是都不精,更容易迷茫。
几种语言分别有什么区别?
以上几种开发的区别在于,底层开发通常是针对软件应用层面进行开发,而前后端开发通常是跟据项目的要求进行开发,三者侧重点不同。
1、底层开发
不同层次的开发往往采用不同的编程语言,底层开发往往采用执行效率更高的C、C++;通常了解GIS软件或GIS行业的人应该知道,GIS软件会有网页端、桌面端、移动端等。
下面以mapgis为例:
C++是很多开发人员最熟悉的语言之一,尤其是对桌面应用程序非常友好。无论是Windows还是Linux,C++都有一个很长的成功应用程序支持和支持。
这一块接触的不多,就不展开说了。
2、应用层开发
不同的编程语言往往有不同的应用场景,主要取决于编程语言自身的特点。
应用层开发往往采用前端HTML以及JS(用户层面)和后端(Java、PHP)等语言;
GIS应用层是指比如智慧城市(数字孪生、智慧公安、智慧交通等)、自然灾害(国土、自然资源、灾害预警)、地质等各种解决方案和应用。如下图所示:
GIS底层开发分别是硬件资源管理和容器开发,如果是应用层开发往往是实现业务逻辑,而前后端开发往往是完成内容的呈现和响应用户的输入,后端则将用户的数据存储起来,在用户查询的时候再从后端的数据库中调取并呈现到前端。
前面也提到,通常在项目中,前后端是分不开的。
择业方向
计算机毕业的学生通常较少去做WebGIS,他们往往会去互联网公司工作,选择和机会更多。少数部分人员也会进入GIS行业,但通常是做底层业务开发以及后端。
当然近几年的就业环境不好,计算机和GIS行业的人才也有一定融合的趋势。
目前陆续有部分互联网公司、电商等行业从事前端开发的人员想进入GIS行业做WebGIS开发。
一般来说,我们可以看到在一家GIS软件公司,底层开发和Java后端这些岗位通常是计算机专业毕业的学生担任。
通常,如果是GIS或者测绘专业毕业的学生,不会做后端和底层,因为他们计算机基础卷不过计算机专业的学生,本科四年的学习内容还是相差蛮大的。(也有一些直接转专业或考研到计算机专业的,这种属于弯道超车,不多讨论)
GIS或者测绘专业的学生,如果从零开始学习Java或C++以及获取项目经验的难度较高,即便在本科阶段,有大概接触过C、C#、C++等语言,但多为完成学业,学的内容比较粗浅。
相比之下,webgis对于他们来说就很有优势。
目前GIS领域比较火爆的岗位是WebGIS开发,由于webgis开发同时需要会编程和GIS知识储备,因此成为行业或缺人才。
本科阶段学习的GIS基础在webgis编程上都能用到,同时,在此基础上学习了编程技术,可以突破自己的就业瓶颈。
所以大部分GIS、测绘这些专业的学生转码会选择webgis开发。
你会看到一家公司webgis开发的工作人员大部分都是GIS以及测绘遥感等相关专业的毕业生。
他们的用人逻辑是:强开发+强地理>强开发+弱地理>若开发+强地理>弱开发+弱地理。
当然在一家GIS公司或者硬件设备公司例如测绘公司,大部分GIS、测绘等专业毕业的学生在从事外业或者制图等工作,也就是GIS专业自我调侃式的“GIS民工”。
综上,如果你要做前端GIS,也就是webgis开发,那么GIS专业是更有利的。
如果是其他方向,肯定是学计算机专业更好。
计算机专业的同学,如果要进入GIS行业工作,大部分也都是做后端或者软件业务开发。
WebGIS的要求
我们在招聘网站上随便找一个webgis开发的岗位,看下需求就会发现,基本上都是要求会html/css、JavaScript、openlayers、cesium、webgl、vue等等。
此外,根据我们之前整理的webgis开发岗位关键词显示,cesium在webgis开发岗位中出现次数最多,其次是JavaScript、webgl、vue、html/css等。
具体需求一目了然。
领取完整版二三维WebGIS开发课程