GIS开发实战图谱

article/2025/10/25 9:24:41

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

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

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

 

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

 

一、理论

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

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

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

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

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

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

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

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

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

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

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

 

二、规范

熟悉理论知识后。

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

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

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

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

 

 

三、数据

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

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

Postgresql官网:https://www.postgresql.org/

       PostGIS是postgresql最常用的空间拓展插件:www.postgis.org/

 

 

四、算法

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

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

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

 

五、软件

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

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

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

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

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

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

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

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

 

六、后端+前端

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/

      

 

 

 

七、方向

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

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

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

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

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

 

八、总结

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

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

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

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

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

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

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

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

 

 


http://chatgpt.dhexx.cn/article/nH0ThW2j.shtml

相关文章

js中的设计模式之适配器模式

Js中的适配器模式 定义 将一个对象的接口适配成用户所期待的接口。 详细描述 适配器模式就是将不同对象的方法适配成可以对接或者统一调用的方式。它也是包装器的一种。 在生活中也有很多类似的例子,比如有的手机没有3.5耳机插口,所以就需要增加一个…

JavaScript设计模式之状态模式

什么是状态模式? 状态模式是一种非同寻常的优秀模式,它也许是解决某些需求场景的最好方法。虽然状态模式并不是一种简单到一目了然的模式(它往往还会带来代码量的增加),但你一旦明白了状态模式的精髓,以后…

【JavaScript设计模式】观察者模式

观察者模式 文章目录 观察者模式🌰:理解观察者模式手写观察者模式必须先订阅再发布吗Vue数据双向绑定(响应式系统)的实现原理实现一个Event Bus/ Event Emitter在Vue中使用Event Bus来实现组件间的通讯 观察者模式与发布-订阅模式…

js设计模式

js设计模式 1.构造器函数 function Ema(name, age) {this.name nameconsole.log(this);//谁调用了this就指向谁this.sayfunction(){console.log(1)}}let ema1new Ema(zhangsna1)let ema2new Ema(李四1)console.log(ema1);//Ema obj {name:zhangsan1, Fun say}console.log(ema…

八大最常用的JavaScript设计模式

八大最常用的JavaScript设计模式 设计模式(Design pattern) 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目…

JavaScript 设计模式之组合模式

引 我们知道地球和一些其他行星围绕着太阳旋转,也知道在一个原子中,有许多电子围绕着原子核旋转。我曾经想象,我们的太阳系也许是一个更大世界里的一个原子,地球只是围绕着太阳原子的一个电子。而我身上的每个原子又是一个星系&a…

JavaScript设计模式

JavaScript设计模式 设计模式:代码经验的总结,是可重用的用于解决软件设计中一般问题的方案。 设计模式都是面向对象的。 学习设计模式,有助于写出可复用和可维护性高的程序。 常用的12种设计模式: 工厂模式 单例模式 原型模…

JavaScript中常见的十五种设计模式

一、单例模式 二、策略模式 三、代理模式 四、迭代器模式 五、发布—订阅模式 六、命令模式 七、组合模式 八、模板方法模式 九、享元模式 十、职责链模式 十一、中介者模式 十二、装饰者模式 十三、状态模式 十四、适配器模式 十五、外观模式 一、单例模式 1. …

JS 常用的六种设计模式介绍

常用设计模式 前言 我们经常听到一句话,“写代码要有良好的封装,要高内聚,低耦合”。究竟怎样的代码才算得上是良好的代码。 什么是高内聚,低耦合? 即五大基本原则(SOLID)的简写 高层模块不…

git工具统计项目的代码行数

1、git 查看代码的项目总行数 (1)打开Git终端,进入项目的根目录 git log --prettytformat: --numstat | awk { add $1; subs $2; loc $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add,…

小技巧之统计代码行数

欢迎关注我的微信公众号“人小路远”哦,在这里我将会记录自己日常学习的点滴收获与大家分享,以后也可能会定期记录一下自己在外读博的所见所闻,希望大家喜欢,感谢支持! 搞了两个月,连搬带抄写出来的代码&a…

MAC代码下统计代码行数工具

作为一名程序员在很多的时候需要统计代码行数: 支持windows系统的代码行数统计方法以及软件很多,但是MAC系统的统计代码行数的真的不太多。 大家都知道用 wc -l 命令进行代码行数统计,但是它会将代码中的注释、空行所占用的文本行都统计在内…

cloc工具 命令行 统计代码行数

基本用法 :cloc后面跟目录名,文件名,或压缩文件名 例如: cloc ./application 1.安装(参考官网http://cloc.sourceforge.net/#apt-get) 根据操作系统不同,选择以下任意安装方法 sudo npm install -g cloc …

程序代码行数统计

程序写完了,提交著作权的时候不知道代码行数是多少怎么办? 介绍 软件名称兼容系统下载地址代码统计工具Windows软件下载 下面我们开始教程 打开主应用程序点击加号添加程序项目所在的目录点击按钮选择需要统计文件的文件后缀,看个人需求如…

计代码行数cloc,一个代码统计行数很好用的工具

分为window、mac系统区分,基本是一样的,一个代码统计行数很好用的工具。 CLOC简介 Cloc是一款使用Perl语言开发的开源代码统计工具,支持多平台使用、多语言识别,能够计算指定目标文件或文件夹中的文件数(files&#x…

统计代码量-代码统计工具 CLOC | gitlab统计代码量

文章目录 一、代码统计工具 CLOC什么是CLOC?下载安装clocs使用 二、gitlab统计代码量命令行统计图形化统计IDE Statistic统计代码插件 一、代码统计工具 CLOC 什么是CLOC? github: https://github.com/AlDanial/cloc CLOC是Count Lines of Code的意思,可以计算…

Python实现一个代码行数统计工具(以C/C++为例)

前几天在网上看到一个有意思的题,题目是设计一个代码行数统计工具。这类工具我经常会用到,但是具体是如何实现的呢?这个问题我还从未思考过,于是便试着做出这种工具。 题目描述是这样的: 题目要求:   请…

统计项目代码行数工具cloc

Ubuntu用户 使用cloc在ubuntu内统计代码行数 安装cloc工具 sudo apt-get install cloc进入需要统计的目录内,然后执行 cloc .然后就会显示文件目录中的文件数(files)、空白行数(blank)、注释行数(comment)和代码行数(code)。 Windows 用户 也是使用cloc工具 …

Win10 代码行数统计工具CLOC的安装和使用

简介 CLOC(Count Lines of Code),是一个可以统计多种编程语言中空行、评论行和物理行的工具。这个工具还是蛮实用的,可以帮我们快速了解一个项目中代码的信息。 注:底下这个命令可以实现统计代码行数的功能,只是不排除空行和注释…

代码行数统计小工具

一、先下载好SourceCounter小工具。解压,然后直接打开文件夹中的SourceCounter.exe。如果没有找到此工具的下载链接,点这里下载 二、选择代码类型,勾选上所有类型 三、双击点开后,选择文件夹,就可以直接统计出字…