随着GIS技术的发展,未来竞争不再是商用平台之间的竞争,而是商用与开源之间的竞争,本文就个人接触的开源GIS的技术及相关平台做个总结。
1、桌面处理软件
-
QGIS
-
Udig
二者的区别在于,QGIS是基于C++开发的,Udig是基于Java开发界面风格有点类似Eclipse,另外,由于QGIS集成了很多空间分析和地统计方面的工具因此在空间分析功能上要比Udig更强,比如Grass、Saga等等,而Udig最大的优势是与Geoserver配合进行样式文件SLD的生成,这方面比较方便灵活。
2、服务发布工具
-
Geoserver
-
MapServer
-
tileserver GL
Geoserver是目前使用最广泛的开源GIS服务器,主要得益于底层的Java开发包Geotools,相比mapserver基于C++的服务器可扩展性更高,支持插件形式的矢量瓦片的发布以及遥感影像服务的发布,而且与一些遥感大数据工具Geotrellis、Geomesa结合更紧密。tileserver GL是基于矢量瓦片的服务器,主要用于对mapbox矢量瓦片的发布,当然它也支持栅格瓦片的发布。
3、空间数据库
-
Postgresql/Postgis
作为目前世界上最强大的开源数据库,Postgresql的空间数据扩展引擎PostGIS最强大的地方就在于其完备的空间分析函数,而且经常与geoserver联合使用,通过调用postgis空间分析存储过程发布到Geoserver的sqlview,前端地图API可以轻松完成复杂的空间分析功能。
4、前端地图API
-
openlayers
-
leaflet
-
mapbox
-
cesium
-
deck.gl
openlayers是最全面的地图api,与Geoserver结合最好,leaflet是移动设备上开发地图应用的首选,而且拥有庞大的插件生态可实现即拿即用,大大提高了开发效率,maobox是基于矢量瓦片的地图技术,地图精美,而且开源了很多先进的地图技术,cesium是三维地理信息的展示平台,支持很多的地理信息数据格式,与deckgl支持json数据不同的是cesium更有GIS的影子,而deckgl更像一个数据可视化的工具。
5、瓦片生成工具
-
GDAL
-
Geoserver(Geowebcache)
-
cesium ion
-
tippecanoe
-
maptiler
-
mapperitive
GDAL是TMS瓦片生成器的代表,最常用的gdal2tiles命令,QGIS中便是集成了这一工具改成了GUI操作,底层仍是该命令;Geoserver由于集成了Geowebcache所以也就有了栅格瓦片的生成能力;tippecanoe是mapbox开源的矢量瓦片生成工具,将geojson数据生成mbtiles的矢量瓦片数据,命令行参数非常多,而且需要经常调整参数以达到最好的显示效果,功能很强大就是参数太多调整不方便;maptiler和mapperitive都是基于桌面软件调用命令行进行切片操作,这里不再赘述。
6、路径导航引擎
-
OSRM
-
Graphhopper
这两个路径导航引擎都是功能非常强大的,基本上涵盖了目前主流地图厂商导航方式,步行、骑车、汽车、公交等等均具备,区别就是开发语言分别选用Java和C++。
7、OSM数据获取
-
OSM官网
-
Geofabrik
OpenStreetMap(OSM)是目前最大的开源众包位置数据,由于网络原因其官网下载数据往往很困难,因此,多采用第二种方式下载。
8、瓦片渲染工具
-
mapnik
-
maputinik
mapnik是非常强大的瓦片生成及渲染工具,而maputinik是基于mapbox style的样式编辑器,是mapbox studio的开源版,相比较而言操作上相对复杂一些。
9、机器学习框架
-
Mapbox Robsat
mapbox开源的一个基于机器学习框架的遥感影像处理工具,基于WMTS影像底图去提取建筑物轮廓。
10、在线矢量数据处理工具
-
mapshaper
-
geojson.io
mapshaper实现本地加载shp数据进行显示预览,最常用的功能就是矢量数据的化简;geojson.io是在线生成geojson数据的工具。
以上简单介绍了一些常见的和我个人工作当中接触的一些工具的使用感受,每一个工具都是值得深入研究的,这里罗列的只是我的一些粗浅的研究,以后有时间会针对每一个做一个专题研究的分享。
转自:https://mp.weixin.qq.com/s/bzr6vNmcEbepW6yh5Xzbig