.NET 開源GIS解決方案一 概述


寫在前面

最近開始研究開源GIS,國內開源GIS的資料很少,而基於.net的又是少之又少。所以決定把自己研究的資料進行總結整理,技術在於分享,本系列(計划是寫一個系列,如果我可以堅持下來的話)部分是自己總結,部分來源於網絡摘抄。

技術方案

 主要需求是采用B/S架構,前端展示地圖,並且實現地物(點線面)的增刪改,以及屬性拾取與編輯。整套解決方案大概由這幾個部分組成(個人認為):地圖數據,GIS服務器,GIS中間件(GIS類庫),WEB服務器和客戶端。

WEB服務器

由於采用.net環境,所以web服務器必然是IIS。

GIS中間件

雖然GIS服務器也能實現一些基本功能,但是采用開源GIS類庫,可擴展性更高,操作數據,數據分析比較方便,而且可以移植到C/S程序。對於Java來說,比較主流的是GeoTools,而.net的最佳選擇是DotSpatial,源碼用C#編寫。DotSpatial是基於.net 4 的一個開源GIS庫,它提供有一個可視化的map控件,可以再Windows Form或者Web Application上展示地圖。能夠方便的支持shapefile、grid及其它柵格/影像數據的讀寫,在圖形渲染方面,提供了較多實用的接口,開發人員可充分定制地圖的渲染效果。支持數據的投影處理以及一些常用的分析功能。

地圖數據

有兩種,一是文件存儲,直接以Shapefile文件形式存儲;二是利用空間數據庫。在開源空間數據庫中,比較成型的有PostGIS,MySQL Spatial以及Spatialite。其中PostGIS是開源數據庫PostgreSQL的擴展模塊,Spatialite是SQLite的擴展模塊,而MySQL Spatial是開源數據庫MySQL的擴展模塊。相比較而言,在開源GIS領域,PostGIS能夠得到更為廣泛的支持,但由於DotSpatial貌似只支持Spatiite,所以只能選擇Spatiite。對於數據編輯,可以采用QGIS(基於C++寫的)或者MapWindow 6(基於DotSpatial開發的)

GIS服務器

GeoServer或者MapServer。GeoServer 是 OpenGIS Web 服務器規范的 J2EE 實現的社區開源項目,MapServer則是基於C實現的。個人感覺GeoServer在功能上更加強大,而MapServer似乎對於大數據量的處理更加高效。關於二者之間的比較。所以個人選擇GeoServer,GeoServer原生是不支持Spatialite的,需要安裝擴展,這里是教程

客戶端

主流的是Openlayers。OpenLayers是一個用於開發WebGIS客戶端的JavaScript包。OpenLayers 支持的地圖來源包括Google Maps、Yahoo、 Map、微軟Virtual Earth 等,用戶還可以用簡單的圖片地圖作為背景圖,與其他的圖層在OpenLayers 中進行疊加,在這一方面OpenLayers提供了非常多的選擇。 在操作方面,OpenLayers 除了可以在瀏覽器中幫助開發者實現地圖瀏覽的基本效果,比如放大(Zoom In)、縮小(Zoom Out)、平移(Pan)等常用操作之外,還可以進行選取面、選取線、要素選擇、圖層疊加等不同的操作,甚至可以對已有的OpenLayers 操作和數據支持類型進行擴充,為其賦予更多的功能。

 

原文鏈接:http://www.cnblogs.com/hao-zhang/p/5744810.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM