• GIS开发实战图谱


    本文转自 https://zhuanlan.zhihu.com/p/151445930

    总结了GIS开发的技术栈,罗列了应该了解的内容。

    算是比较大而全的了,分理论、规范、数据、算法、软件、后端、前端、方向8个专项。

    不求短期内全部都会,但还是一个比较好的学习框架和实践索引,如果基础好的话,两三年达到入门水平,应该是没有问题的吧,不过凡事,因人而异。

    pic_2bdc83d6.png

    内容比较多,一个一个说吧。

    一、理论

    学好理论知识非常重要,尤其是GIS还是相对来说比较偏冷门的内容。

    刚入门看不出来,但时间长了,基础才决定一个人的技术之路能走多远。

    学理论和基础,手头需要备几本专业书,谁知道网上找的是对是错。

    推荐《地理信息系统导论》、《测量学基础》、《地图学》等书。

    当然一般会做GIS开发的,也是相关专业的人,上课好好学就行了。

    (如果不是相关专业的,干点别的不好吗?)

    另外,相关的法律法规也要了解,别问为什么。

    https://www.zrzyst.cn/fgwj/index.jhtml

    https://www.zrzyst.cn/gjbtdtzs/index.jhtml

    要是觉得不够的话,可以看下《武汉大学测绘专业本科专业课程》,总有一门课,会派上用场。

    https://wenku.baidu.com/view/caf7acf6ec3a87c24128c46b.html

    pic_3f880396.png

    二、规范

    熟悉理论知识后。

    GIS开发主要看OCG规范,CIM是城市信息模型,BIM是建筑物信息模型,这两个都是城市建模相关的。

    其余的可以参考《webGIS开发背景知识索引--瓦片原理与数据规范等》https://zhuanlan.zhihu.com/p/144767787

    如果做数据挖掘和算法,要多了解数据结构、数据规格、数据精度等方面内容,https://www.ogc.org/docs/as

    了解规范,多看官网没坏处:https://www.ogc.org/docs/is

    pic_8758ebe0.png

    三、数据

    GIS开发数据是很重要的一项,如何获取开源GIS数据,可参见《GIS数据源汇总》https://zhuanlan.zhihu.com/p/144792968

    Postgresql、spatialite都是对GIS数据兼容比较好的数据库,工程化应用可以使用postgresql,spatialite适合轻量级测试。

    Postgresql官网:https://www.postgresql.org/ PostGIS是postgresql最常用的空间拓展插件:http://www.postgis.org/

    pic_242e7cd8.png

    四、算法

    说实话,GIS应用和实践的书,能看的不多,GIS算法这块,可以看科学出版社出版的Stephen Wise写的《GIS数据结构与算法基础》,中国工信出版社出版的Joel Lawhead写的《Python地理空间分析指南》。

    Java、Python、js的程序实现,可参见《GIS算法索引目录》https://zhuanlan.zhihu.com/p/147689100

    GIS相关的算法一般都用在数据处理和建模上。

    pic_1e450862.png

    五、软件

    软件的熟练程度,是考察一个GIS工程师的标准之一。

    我们比较熟悉的GIS软件是arcgis和supermap,但这两个都是收费的商业软件。

    但一个行业要发展,开源是大势所趋。

    QGIS是一个跟arcgis功能差不多的开源GIS软件,且有更好的拓展性。

    如何使用QGIS,可参见《QGIS入门与简单实用----索引目录》https://zhuanlan.zhihu.com/p/138593960

    GIS软件很多,但底层原理都是一样的,一通百通,arcgis、supermap、QGIS这种大而全的软件,会一个就行了。

    (不过,在GIS软件领域,还是没有能够超越arcgis的存在。)

    smart3D、blender、3DMAX等,都是三维建模的软件,可用于BIM、CIM和三维地图的数据加工。

    pic_760b770b.png

    六、后端+前端

    webGIS开发不太好区分前端后端,经常是顺手都做了。

    开发一定要实践,只看,是看不会的。

    新手入门,可以参考两个示例。

    一个是后端采用Java的springboot2框架,前端使用vue框架集成leaflet,数据库使用postgresql的《从零开始,构建电子地图网站----索引目录》https://zhuanlan.zhihu.com/p/145423630

    这个写得非常细,从软件安装到服务器部署,零基础的可以照着做一遍。

    另一个是后端采用Python django框架,地图使用geoserver发布,前端使用openlayer JavaScript库的《webGIS实践:geoserver+openlayer+django目录索引》https://zhuanlan.zhihu.com/p/141644867

    这个相对来说,工程性弱一些,更偏重GIS技术实现,因为有瓦片地图发布,还有坐标系转换、图层设置的内容。

    如果能独立完成这两个demo,说明webGIS开发入门了。

    Arcgis和supermap都有全套的GIS开发环境,但这两个都是商业软件,完全封闭,不具备扩展性和移植性。不过这两个软件在GIS市场上的占有率还是非常高的,尤其是企事业单位,有很多人用这两个软件做开发。

    二维webGIS开发熟练后,可以接着学一学空间大数据可视化和三维地图开发。

    Geomesa:https://www.geomesa.org/ cesium:https://cesium.com/cesiumjs/

    pic_480a364d.png

    pic_9bfc1da2.png

    七、方向

    GIS开发,职业上区分为两个方向,webGIS开发和数据分析师。但webGIS开发目的也是为了呈现数据,最好两者都有些了解。GIS开发相对于通用的前后端开发来说,就业面会窄一些,天花板也会低一些,所以可以持续的学习计算机知识和热门的程序框架,拓展一下职业广度,工作一段时间后,根据自己的选择,决定未来方向。

    GIS开发的就业方向可以统分为体制内外,体制内就是传统地信测绘单位,加上接政府项目的GIS企业,这些地方使用商业软件arcgis和supermap比较多。地图厂商高德、四维图新、腾讯、百度这样的,会招一些GIS背景的产品经理、数据工程师,研发还是会招计算机相关专业的。不过出行、物流、网约车、购物平台这些需要地图服务的行业,会有一定的GIS研发需求。

    随着5G、航天航空、物联网的发展,时空大数据可视化、三维地球建模,会是比较好的互联网工程化方向。

    遥感影像分析一直是学术领域的热门。高精地图、高精定位、自动驾驶前几年是比较火的,但还是有很长一段路要走。

    至于发展前景,时代是瞬息万变的,个人努力很重要,选择方向也很重要。保持对市场的敏锐,保持自己的竞争力,且行且珍惜吧。

    pic_4187f351.png

    八、总结

    人需要保持持续学习的状态,我们总有不会的东西,总有需要增进的地方。

    GIS基础薄弱,就买书看书补充基础。

    规范不了解,就去看OGC官网。

    程序框架薄弱,就去学springboot或vue。

    地图审美不行,就多去欣赏。

    只要下功夫,总会有进步。

    漫漫长生,我们一路竞跑,需要超越的,不是别人,而是自己。

    今天的我,所能超越的仅仅是过去的我,希望将来的我,亦能超越今天的我。

  • 相关阅读:
    手机自动化
    记录
    Linux 死机了怎么办
    前端源码
    LNMP环境
    PHP学习之路(一)
    py
    蜘蛛问题
    mongodb
    【HTML/XML 2】XML基础知识点总结
  • 原文地址:https://www.cnblogs.com/hustshu/p/14757294.html
Copyright © 2020-2023  润新知