GIS相關各組件介紹及比對

數據庫

PostGIS

PostGIS做爲PostgreSQL對象關係數據庫系統的擴展模塊,與Oracle中Spatial類似,使用SFS規範,遵循OGC 的Simple Feature for SQL。java

支持全部的空間數據類型,這些類型包括:點(POINT)、線(LINESTRING)、 多邊形(POLYGON)、多點(MULTIPOINT)、 多線(MULTILINESTRING)、 多多邊形(MULTIPOLYGON)和集合對象集(GEOMETRYCOLLECTION)等。PostGIS支持全部的對象表達方法,好比WKT和WKB。PostGIS支持全部的數據存取和構造方法,如GeomFromText()、AsBinary(),以及GeometryN()等。PostGIS提供簡單的空間分析函數(如Area和Length)同時也提供其餘一些具備複雜分析功能的函數,好比Distance。PostGIS提供了對於元數據的支持,如GEOMETRYCOLUMNS和SPATIAL REF SYS,同時,PostGIS也提供了相應的支持函數,如AddGeometryColumn和DropGeometryColumn。PostGIS提供了一系列的二元謂詞(如Contains、Within、Overlaps和Touches)用於檢測空間對象之間的空間關係,同時返回布爾值來表徵對象之間符合這個關係。PostGIS提供了空間操做符(如Union和Difference)用於空間數據操做。好比,Union操做符融合多邊形之間的邊界。兩個交迭的多邊形經過Union運算就會造成一個新的多邊形,這個新的多邊形的邊界爲兩個多邊形中最大邊界。web

PostGIS也具備大型數據庫的特性,如數據備份,數據庫恢復,災難恢復等。算法

MySql空間擴展

MySQL從4.1開始引入了空間功能,實現和使用方式基本和POSTGIS相似。但函數支持沒有postGIS多,對於高精度函數須要在5.6版本纔開始支持。mongodb

 

MongoDB

MongoDB(https://www.mongodb.com/)是一個開源面向文檔的NoSQL 數據庫,用C++編寫。它提供一種強大、靈活、可擴展的數據存儲形式。MongoDB功能豐富,內置MapReduce聚合的支持,支持地理空間索引。MongoDb具備弱一致性,保證用戶的訪問速度,文檔結構的訪問方式,可以更便捷地獲取數據,內置GirdFS 支持大容量的儲存,內置Sharding,第三方支持豐富,性能優越。MongoDB在存儲空間數據比傳統的關係數據庫如MySQL 和PostgreSQL 更具優點。MongoDB 對空間數據是原生支持,不須要安裝第三方空間數據庫引擎便可構建空間索引進行進行快速的空間查詢。MongoDB 支持平面( 2d) 和球面( 2dsphere indexes) 兩種空間索引。面向大衆型的GIS 應用會存儲大量的POI 數據或者用戶產生的位置數據,利用MongoDB 儲存能夠提升檢索效率。MongoDB 支持MapReduce計算模型,處理海量LBS數據有較高的效率。MongoDB有多種基於的Node.JS的第三方庫實現對MongoDB的操做,這樣使得對數據的操做更加的便捷。數據庫

 

 

 

 

ElasticSearch

能夠接受帶有空間位置座標的信息,包括geopoint和geoshape(線面),同時能夠實現空間聚合,geohash等功能。c#

 

數據管理組件

GDAL

GDAL(http://www.gdal.org/)是一個基於C++的柵格格式的空間數據格式解釋器。做爲一個類庫,對於那些用它所支持的數據類型的應用程序來講它表明一種抽象的數據模型。GDAL持大多數的柵格數據類型。瀏覽器

 

在開發上GDAL支持多種語言的接口如:Perl、Python、VB六、Java、C#。緩存

 

OGR

OGR(http://www.gdal.org/ogr/)是C++的簡單要素類庫提供對各類矢量數據文件格式的讀取(某些時候也支持寫)功能。OGR是根據OpenGIS的簡單要素數據模型和Simple features for COM(SFCOM)構建的。OGC也支持大多數的矢量數據類型支持數類型。服務器

 

GeOxygene

GeOxygene(http://www.oxygene-project.sourceforge.net/)基於Java和開源技術同時提供一個實現OGC規範和ISO標準可擴展的對象數據模型(地理要素、幾何對象、拓撲和元數據)。它支持Java開發接口。數據存儲在關係數據中(RDBMS)保證用戶快速和可靠的訪問數據,但用戶不用擔憂SQL描述語句,他們經過爲應用程序創建UML和Java代碼的模型。在對象和關係數據庫之間使用開源軟件進行映射。到如今可使用OJB同時支持Oracle和PostGIS中的數據。網絡

 

GML4J

GML4J(http://gml4j.sourceforge.net/)是一個做用於Geography Markup Language(GML)的Java API工具。當前GM4J的做用是一個GML數據的掃描器。經過它能夠讀取和解釋那表明地理要素、幾何對象、它們的幾何、要素的屬性、集合對象的屬性、複雜屬性、座標系統和其餘的GML結構的XML。現階段GML4J只支持GML讀取和訪問,在之後將支持GML數據的修改。

 

分析組件

JTS

JTS Topology Suite(http://sourceforge.net/projects/jts-topo-suite/)是一套2維的空間謂詞和函數的應用程序接口。它由Java語言寫成,提供了全的、延續的和健壯的基本的2維空間算法的實現,而且效率很是高。

 

Net Topology Suite(http;//nts.sourceforge.net/)則是一個.Net的開源項目,該項目的主要目的是將JTS Topology Suite應用程序提供給.Net應用程序使用。

 

GSLIB

GSLIB(http://www.gslib.com/)是一個提供了空間統計的程序包,它是當前最強大和綜合的一個統計包,而且具備靈活性和開放的接口。其缺點是缺乏用戶支持,用戶界面不友好且缺乏面向對象建模能力。

 

PROJ.4

PROJ.4(http://trac.osgeo.org/proj/)是一個開源的地圖投影庫,提供對地理信息數據投影以及動態轉換的功能,WMS,WFS或WCS Services也須要它的支持。

 

GeoTools

GeoTools(http://www.geotools.org/)是也是遵循OGC規範的GIS工具箱。它擁有一個模塊化的體系架構,這保證每一個功能部分能夠很是容易的加入和刪除。 GeoTools目標是支持OGC全部的規範而且各種國際規範和標準。

 

GeoTools已經在一個統一的框架下開發了一系列的JAVA對象集合,其徹底知足了OGC的服務端的各類服務而且提供了OGC兼容的單獨應用程序。GeoTools項目由一系列的API接口以及這些接口的實現組成。開發一整套產品或應用程序並非GeoTools的目的,可是其鼓勵其餘應用項目使用它以各種工做。

 

桌面平臺

Grass GIS

GRASS(地理資源分析支持系統, http://grass.fbk.eu/)是一個柵格/矢量GIS、圖像處理系統和圖件成圖系統。GRASS包括超過350個程序和工具,實現:1)顯示器和紙質地或圖象的打印顯示;2)操做柵格、矢量或點數據;3)處理多光譜圖像數據;4)建立、管理和存儲空間數據。GRASS支持圖形界面或文字界面。 GRASS能夠與商用打印機、繪圖儀、數字化儀或商用數據庫交互。

 

GRASS基於GNUGPL協議下發行,有超過100萬行的C源代碼能夠自下載獲得。GRASS提供了一個複雜的GIS庫,可用於開發本身的項目。

 

OSSIM

OSSIM(http://www.ossim.org/)是一個用於遙感、圖片處理、地理信息系統、照相測量方面的高性能軟件。OSSIM庫主要使用C++完成,支持多種平臺,如今包括Linux、dows、MacOS X和Solaris,而且能夠移植到其餘平臺。因爲OSSIM庫用了模型一控制器一視圖(MCv)的結構,因此算法及實現與GUI是分離的,使得OSSIM能夠支持多種GUI接口。第一個GUI的實現使用了QT,其的GUI框架及接口也在開發計劃中(如Cocoa/Windows等)。

 

SharpMap

SharpMap(http://www.codeplex.com/SharpMap)是一個基於.net 2.0使用c#開發的Map渲染類庫,能夠渲染各種GIS數據(目前支持ESRIShape和PostGIS格式),可應用於桌面和Web程序。目前穩定版本爲0.9(2.0beta已發佈),代碼行數10000行左右,實現了下功能:

 

①支持的數據格式:PostGreSQL/PostGIS,ESRI Shapefile,支持WMS layers,支持ECW 和JPEG2000 柵格數據格式;

②Windows Forms 控件,能夠移動和縮放;

③經過HttpHandler支持ASP.net程序;

④點、線、多邊形、多點、多線和多多邊形等幾何類型和幾何集合(GeometryCollections)等OpenGIS Simple Features Specification;

⑤可經過Data Providers(增長數據類型支持)、Layer Types(增長層類型)和Geometry Types等擴展;

⑥圖形使用GDI+渲染,支持anti-aliased等;

⑦專題圖。

 

SharpMap目前能夠算是一個實現了最基本功能的GIS系統,但一些很重要的功能,例如投影,比例尺,空間分析,圖形的屬性信息,查詢檢索等等,經過同NTS等開源空間類庫的結合能夠在SharpMap中實現的空間變換、緩衝區等功能。

 

World Wind

World Wind(http://worldwind.arc.nasa.gov/)是個開放軟件,容許用戶修改WorldWind軟件自己。軟件用C#編寫,調用微軟SQLServer影像庫TerrainServer進行全球地形三位顯示,低分辨率的Blne marble數據包含的初始安裝內,當用戶放大到特定區域時,附加的高分辨率數據將會自動從NASA服務器上下載。它經過將遙感影像與RTM高程(航天飛機雷達地形數據庫)疊加生成三位地形。在功能方面,軟件具備長度測量功能(僅能測量兩點間的直線距離)、座標和高程查詢、屏幕截圖、添加標註及三位動態顯示等功能。

 

MapWindow

MapWindow GIS(http://mapwindow4.codeplex.com/)桌面應用程序是一個免費開源基於標準的地理信息軟件,使用它能夠瀏覽和編輯多種GIS數據格式。這個軟件包括不少地理處理的插件如:緩衝分析、合併處理等,也可使用腳本編輯器編寫VB.NET和C#的腳本。最新版本的MapWindow應用程序徹底基於.NET2.0平臺和C#。如今又開發出了MapWindow.Web可讓用戶更容易開發基於ASP.Net的web應用。這樣MapWindow逐漸造成一個完整的體系,從開發嵌入式系統的MapWinGIS.OCX到應用程序框架的MapWindow應用程序再到發佈web程序的MapWindow.web。

 

MapWindow 6(http://mapwindow6.codeplex.com/)是在MapWindow 4的基礎上進行改進,整個框架採用C#完成,代碼完整清晰,其優勢是:

 

①徹底採用.net平臺(不須要COM註冊或DLL加載);

 

②能夠經過使用Mono運行在Mac或Linux平臺上;

 

③大量擴展了符號集,點、線、面的符號化更豐富,並且能夠基於屬性內容進行專題化,同時支持矢量化的字體符號;

 

④面向對象的代碼:直接對各要素進行重疊分析、相交分析等。支持OGC的幾何對象模型,基於System.Data.DataTable的數據集;

 

⑤可兼容的插件模式:插件的接口就像普通對象的事件對象同樣;

 

⑥組件模式:全部的組件經過MapWindow.dll提供,可以拖放控件就能夠定製GIS程序。

 

QGIS

QGIS是一個用戶界面友好的桌面地理信息系統,可運行在Linux、Unix、Mac OSX和Windows等平臺之上。QGIS是基於Qt,使用C++開發的一個用戶界面友好、跨平臺的開源版桌面地理信息系統。 http://www.qgis.org/

QGIS軟件的主要特色有:

1 支持多種GIS數據文件格式。經過GDAL/OGR擴展能夠支持多達幾十種數據格式.

2 支持PostGIS數據庫。

3支持從WMS,WFS服務器中獲取數據

4 集成了Grass的部分功能。

5 支持對GIS數據的基本操做,如屬性的編輯修改等。

6 支持建立地圖。

7 經過插件的形式支持功能的擴展

udig

 uDig是一個 open source (EPL and BSD) 桌面應用程序框架,構建在Eclipse RCP和GeoTools(一個開源的Java GIS工具包)上的桌面GIS(地理信息系統) ;是一款開源桌面GIS軟件,基於Java和Eclipse平臺,能夠進行shp格式地圖文件的編輯和查看;是一個開源空間數據查看器/編輯器,對OpenGIS標準,關於互聯網GIS、網絡地圖服務器和網絡功能服務器有特別的增強。uDig提供一個通常的java平臺來用開源組件建設空間應用。

 

Grass

桌面經典GIS軟件,顯示引擎使用cario, http://grass.fbk.eu/

 

OpenStreetMap

OpenStreetMap(簡稱OSM,中文是公開地圖)是一個網上地圖協做計劃, 由網絡大衆共同打造的免費開源、可編輯的地圖服務,目標是創造一個內容自由且能讓全部人編輯的世界地圖。

OpenStreetMap它是利用公衆集體的力量和無償的貢獻來改善地圖相關的地理數據。OSM是非營利性的,它將數據回饋給社區從新用於其它的產品與服務。而其餘地圖則是將大多數的地圖數據出售給第三方。

 http://www.openstreetmap.org/

 

Mapnik

用來開發 GIS 應用程序的工具包,其核心是一個 C++ 的共享庫提供空間數據訪問和可視化的算法和模式。OpenStreetMap地圖用mapnik渲染,顯示引擎使用AGG,效率與美感優秀。 http://mapnik.org/

 

OSGGIS

3D地圖製圖工具,: http://wush.net/trac/osggis

 

Web服務

GeoServer

GeoServer(http://geoserver.org/)是一個符合J2EE規範,且實現了WCS、WMS及WFS規格,支持TransactionWFS(WFS-T),其技術核心是整合了享有盛名的JavaGISolkit--GeoTools。對於空間信息存儲,它支持ESRI Shapefile及PostGIS、Oracle、ArcSDE等空間數據庫,輸出的GML檔案知足GML2.1的要求。因爲它是純Java的,因此更適合於複雜的環境要求,並且因爲它的開源,因此開發組織能夠基於GeoServer靈活實現特定的目標要求,而這些都是商業GIS組件所缺少的。

 

GeoServer做爲一個純粹的Java實現,被部署在應用服務器中,簡單的如Tomcat等;它的WMS和WFS組件響應來自於瀏覽器或uDig的請求,訪問配置的空間數據庫,如PostGIS、OracleSpatial等,產生地圖和GML文檔傳輸至客戶端。

 

具備如下優勢: 1) 用 java 語言編寫、標準的 J2EE 框架、基於 ser vlet 和 STRUTS 框架、 支持高效的 Spring 框架開發; 2) 兼容 WMS 和 WFS 特性、支持 WFS-T 規範; 3) 高效的數據庫支持 PostGIS、ShapeFile、ArcSDE,Oracle、MySQL 等; 4) 支持上百種投影; 5) 可以將網絡地圖輸出爲 jpeg、gif、png 等格式;

 

MapServer

MapServer(http://mapserver.org/)基於C語言,利用GEOS、OGR/GDAL對多種失量和柵格數據的支持,經過Proj.4共享庫實時的進行投影變換。同時,還集合PostGIS和開源數據庫PostgreSQL對地理空間數據進行存儲和SQL查詢操做,基於ka.map、MapLab、Cartoweb和Chameleon等一系列客戶端JavaScfiptAPI來支持對地理空間數據的傳輸與表達,而且遵照開放地理空間協會(Open Geospatial Consortium,OGC)制定的WMS、WFS、WCS、WMC、SLD、GML和FilterEncoding等一系列規範。對不一樣項目的借鑑和運用,加強了MapServer的功能,並使開發團隊更多地關注於網絡製圖的核心功能。

 

MapServer是一套用來構建空間網絡應用的開源開發環境,並非一套全能的GIS系統,它更擅長於在網絡上展現空間數據,在服務器端實時的將地理空間數據處理成地圖發送給客戶端。MapServer擁有一個龐大的社區,並有一個來自全球的近20名核心開發人員以至力於產品的維護和加強。同時還有各類不一樣的組織機構爲MapServer的開發和維護提供資助。

 

提供兩種工做方式,CGI方式(適用於CGI、AJAX、FLEX開發人員)和MapScript方式(適用於Php、Java、 C#、Python開發人員)。以原生CGI方式效率最高,配合TileCache,能夠快速生成大範圍的地圖瓦片數據。比較基於.Net和J2EE的商 業或開源平臺,MapServer更適合高負荷的大型互聯網地圖應用。MapServer 是基於C寫的地圖服務軟件,比用JAVA寫的GeoServer速度要快。並且 MapServer 歷史要比 GeoServer 悠久,甚至MapServer 的性能與商業的 ArcIMS 的功能能夠娉美。

Mapnik

Mapnik(http://mapnik.org/)是一個用於開發地圖應用程序的工具。Mapnik用C++寫同時有Python綁定接口。使用Mapnik能夠很方便的進行桌面和web應用程序開發。

 

Mapnik主要提供地圖的渲染功能,使用AGC庫同時提供世界級的標註引擎。能夠說Mapnik是如今最強大的開源地圖渲染工具。

 

sse4j

Java開發的提供地理信息數據源構建的垂直搜索引擎應用接口、針對在線地圖服務(互聯網或移動互聯網)的服務端,可以提供POI搜索、道路搜索、區域搜索、地址匹配、路徑規劃、公交換乘和無線定位等功能。 http://code.google.com/p/sse4j/

 

 

Js庫

OpenLayers

OpenLayers(http://openlayers.org/)是一個開源的jS框架,用於在您的瀏覽器中實現地圖瀏覽的效果和基本的zoom,pan等功能。OpenLayers支持的地圖來源包括了WMS,GoogleMap,KaMap,MSVirtualEarth等等,您也能夠用簡單的圖片做爲源,在這一方面OpenLayers提供了很是多的選擇。此外,OpenLayers實現了行業標準的地理數據訪問方法如OGC的Web Mapping Service(WMS)and Web Feature Service(WFS)協議。OpenLayers能夠簡單的在任何頁面中放入動態的地圖。它能夠從多種的數據源加載顯示地圖。MetaCarta公司開始開發了OpenLayers的初始版本同時將它開放給了公衆以做爲之後各類地理信息系統的應用。openscales(Flex): http://openscales.org/

 

TileCache

TileCache(http://tilecache.org/)是一個實現WMS.C的標準的服務器, TileCache提供了一個基於PythonTile的WMS.C/TMS服務器,同時具備開可插入的緩存和後臺渲染機制。在最簡單的應用中,只要求TileCache能夠訪問磁盤能夠運行Python的CGI腳本。同時能夠鏈接須要緩存的WMS服務。使用這些資源,你能夠建立任何WMS服務在你的本地硬盤的緩存,同時使用支持WMS-C標準的客戶端如:OpenLayers或任何支持TMS的客戶端如:OpenLayers和wordKit就能夠訪問這些緩存數據。

 

 

FGMAP

FGMap是一個仿Google Maps API for Flash 作的WebGIS客戶端組件,容許 Flex 開發人員將 Google Maps,MapABC地圖,Bing地圖,QQ地圖 嵌入到 Flash 應用程序中。而不須要使用KEY或驗證。 http://code.google.com/p/fgmap-webgis/

 

LeafLet

Leaflet 是一個爲建設交互性好適用於移動設備地圖,而開發的現代的、開源的 JavaScript 庫。代碼僅有 33 KB,但它具備開發在線地圖的大部分功能。Leaflet設計堅持簡便、高性能和可用性好的哲學思想,在全部主要桌面和移動平臺能高效運做,在現代瀏覽器上會利用HTML5和CSS3的優點,同時也支持舊的瀏覽器訪問。支持插件擴展,有一個友好、易於使用的API文檔和一個簡單的、可讀的源代碼。Leaflet強大的開源庫插件涉及到地圖應用的各個方面包括地圖服務,數據提供,數據格式,地理編碼,路線和路線搜索,地圖控件和交互等類型的插件共有140多個。這些控件 豐富leaflet的功能,同時也能夠十分方便的實現自定義的控件具備良好的可擴展性。http://leafletjs.com

相關文章
相關標籤/搜索