啥也不说,先看一张用PPT画的图。
这张图脱胎于《Python地理空间分析指南》一书中的插图,用PPT重新画了一下,把里面没有的,但我觉得比较重要项目的补充了进来。
从这张图中,能看出,GIS应用程序生态由四大程序库构成:GDAL、OGR、PROJ.4、GEOS;基于四大程序库派生或关联出更多的程序库:CGAL、GRASS、JTS、GEOTOOL等;依托各种程序库,构建出几大软件:QGIS、ARCGIS、GOOGLE EARTH、GEOSERVER等。
以下,根据这三方面,阐述这张图。
一、四大程序库
大家应该都知道,GIS是伴随计算机技术一同发展的,上世纪六十年代起步,到八十年代,经典的原理、模型、算法都已经提出,并在实践中得到了验证。
GDAL、OGR、PROJ.4、GEOS,这四个程序库,在上世纪九十年代就已经成型,当时,它们都是被行业内的顶尖专家用C语言来实现的。
1.GDAL
GDAL是应用范围最广的,全名Geospatial Data Abstraction Library,是一个开源的地理数据格式操作库,使用它可以读写各种地理信息数据格式,包括矢量数据和栅格数据,包括单独的文件和地理信息数据库,也可以使用内置的一些函数,对数据进行分析建模。
更多的内容,可以参见GDAL官网:https://gdal.org/
随着Python语言和Java语言的发展,GDAL现在也能支持Python和Java的调用。
GDAL PYTHON API:https://gdal.org/python/index.html
GDAL JAVA API:https://gdal.org/java/overview-summary.html
2.OGR
OGR曾经是一个独立的矢量读写库,但现在是GDAL的一个分支,支持绝大部分千奇百怪的GIS矢量数据格式