GIS庫基礎知識

jopen 11年前發布 | 84K 次閱讀 GIS 地理信息系統GIS

談到GIS軟件,首先讓我們想到的便是GIS界的龍頭大哥ESRI公司旗下的ArcGIS產品,其發展可謂風生水起。MapInfo軟件也不錯,可是給人的感覺是漸漸被淘汰了似的,使用該軟件的人并不算多。一套GIS的完整開發框架,包括四個組成部分:標準層、數據庫層、平臺層和組間層。這四個部分從下到上,從底層到高層,共同構成一個完整的體系。


    標準層主要是用于制定各類標準。開放的GIS標準主要有兩大體系:OGC(http://www.opengeospatial.org/)、ISO/TC211(www.isotc211.org/)。其中,WKT(Well-Known Text)與WKB(Well-Known Binary)是OGC制定的空間數據的組織規范,顧名思義,WKT是以文本形式描述空間數據,而WKB是以二進制形式描述空間數據。目前大部分支持空間數據存儲的數據庫構造空間數據都采用這兩種方式。
    
    數據庫層主要是采用開源地理信息標準采用開源方式開發的空間數據庫項目,包括POSTGIS、MySQL空間擴展等。數據庫組件層按照功能可分為兩類:數據管理組件和分析組件。

數據管理組件

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也支持大多數的矢量數據類型支持數類型。

3、GeOxygene(http://www.oxygene-project.sourceforge.net/):GeOxygene 基于Java和開源技術同時提供一個實現OGC規范和ISO標準可擴展的對象數據模型(地理要素、幾何對象、拓撲和元數據)。它支持Java開發接口。數據存儲在關系數據中(RDBMS)保證用戶快速和可靠的訪問數據,但用戶不用擔心SQL描述語句,他們通過為應用程序建立UML和Java代碼的模型。在對象和關系數據庫之間使用開源軟件進行映射。到現在可以使用OJB同時支持Oracle和PostGIS中的數據。
4、GML4J(http://gml4j.sourceforge.net/):GML4J是一個作用于Geography Markup Language(GML)的Java API工具。當前GM4J的作用是一個GML數據的掃描器。通過它可以讀取和解釋那代表地理要素、幾何對象、它們的幾何、要素的屬性、集合對象的屬性、復雜屬性、坐標系統和其他的GML結構的XML。現階段GML4J只支持GML讀取和訪問,在以后將支持GML數據的修改。

分析組件

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等
    
    這段時間做了個shp、tab數據校驗的小工具,最初準備使用geotools庫,由于沒有找到處理tab數據的相關類,只好使用GDAL,官方只提供 C++版本下載,想使用Java版接口須要自己編譯,編譯步驟比較麻煩,而且API文檔也是在線版的,我將編輯好的庫以及API文檔上傳至CSDN方便大家使用。
下載地址:http://download.csdn.net/detail/bbirdsky/5838397
API地址:http://download.csdn.net/detail/bbirdsky/5837301

來自:http://blog.csdn.net/bbirdsky/article/details/9627071
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!