GIS庫基礎知識
談到GIS軟件,首先讓我們想到的便是GIS界的龍頭大哥ESRI公司旗下的ArcGIS產品,其發展可謂風生水起。MapInfo軟件也不錯,可是給人的感覺是漸漸被淘汰了似的,使用該軟件的人并不算多。一套GIS的完整開發框架,包括四個組成部分:標準層、數據庫層、平臺層和組間層。這四個部分從下到上,從底層到高層,共同構成一個完整的體系。
數據管理組件
1、GDAL(http://www.gdal.org/):GDAL是一個基于C++的柵格格式的空間數據格式解釋器。作為一個類庫,對于那些用它所支持的數據類型的應用程序來說它代表一種抽象的數據模型。GDAL持大多數的柵格數據類型(shp、tab)。
在開發上GDAL支持多種語言的接口如:Perl、Python、VB6、Java、C#。
2、OGR(http://www.gdal.org/ogr/):OGR是C++的簡單要素類庫提供對各種矢量數據文件格式的讀取(某些時候也支持寫)功能。OGR是根據OpenGIS的簡單要素數據模型和Simple features for COM(SFCOM)構建的。OGC也支持大多數的矢量數據類型支持數類型。
分析組件
1、JTS(http://sourceforge.net/projects/jts-topo-suite/):JTS Topology Suite是一套2維的空間謂詞和函數的應用程序接口。它由Java語言寫成,提供了全的、延續的和健壯的基本的2維空間算法的實現,并且效率非常高。Net Topology Suite(http;//nts.sourceforge.net/)則是一個.Net的開源項目,該項目的主要目的是將JTS Topology Suite應用程序提供給.Net應用程序使用。
2、GSLIB(http://www.gslib.com/):GSLIB是一個提供了空間統計的程序包,它是當前最強大和綜合的一個統計包,并且具有靈活性和開放的接口。其缺點是缺少用戶支持,用戶界面不友好且缺少面向對象建模能力。
3、PROJ.4(http://trac.osgeo.org/proj/):PROJ.4是一個開源的地圖投影庫,提供對地理信息數據投影以及動態轉換的功能,WMS,WFS或WCS Services也需要它的支持。
4、GeoTools(http://www.geotools.org/):GeoTools是也是遵循OGC規范的GIS工具箱。它擁有一個模塊化的體系架構,這保證每個功能部分可以非常容易的加入和刪除。 GeoTools目標是支持OGC所有的規范并且各類國際規范和標準。GeoTools.NET(http:// geotoolsnet.sourceforge.net/Index.html)則是與Java對應的.NET版本。
平臺層主要是構建在標準層、數據庫層、中間件層基礎上的可以擴展的系統框架。使用平臺層可以簡化我們搭建GIS框架的工作量。通過對平臺的二次開發擴展可以讓我們搭建基于GIS開放框架的GIS應用系統。平臺多基于開源的GIS標準,同時兼容開源的空間數據庫,與整個開放框架體有很好的兼容性。平臺層根據應用的不同這里可以分為兩大類:桌面平臺、平臺。桌面平臺主要是指用于桌面應用的平臺框架,web平臺主要是指應于web應用的平臺框架。
桌面平臺:Grass GIS、OSSIM、SharpMap、World Wind、MapWindow
Web平臺:GeoServer、MapServer、Mapnike、OpenLayers、TileCache
從軟件底層的開發語言角度講,開源空間信息軟件可以被獨立的分為以下三種技術體系門類,在每種分類體系內部,開發人員往往是基于不同的項目交叉工作的,所以這種分法僅僅是方便了熟悉某種開發語言的程序員,對于用戶和應用人員而言, 意義不大。
語言 | 開源軟件 |
---|---|
C/C++ | GRASS、GDAL、OGR、GSLIB、OSSIM、Proj4、QGIS、MapWindow4、MapServer、Mapnik等 |
Java | GeoTools、GeOxygene 、GML4J、MapTools、GeoServer、JTS等 |
.Net | NetTopologySuite、GeoTools.NET、SharpMap、World Wind、MapWindow6等 |
腳本 | OpenLayers、TileCache等 |
來自:http://blog.csdn.net/bbirdsky/article/details/9627071