地圖引擎
前言
地理信息系統GIS(Geographic Information System)
是儲存和處理與地理空間分布有關信息的集合。在各行各業得到越來越廣泛的應用,GIS以其混合數據結構和獨特的地理空間分析功能獨樹一幟。用過幾種商業化的GIS平臺,SuperMap、ArcGis都很不錯,可畢竟是商業的,而且之前開發一個系統是基于SuperMap二次開發的。SuperMap自身存在著一些問題。找了幾種開源地圖引擎,MapWinGis其效率是相當不錯的,研究了一段時間也比較喜歡。下面先介紹下:
MapWinGis 是一個相當高效的地圖引擎
,放大、縮小、漫游速度很快,被譽為開源中的ArcGis 。開發語言是VC,基于微軟的COM思想
編寫。系統來說,MapWinGis 是一套類似于AO的二次開發組件庫(只是沒有AO那么強大),其核心庫是一個名字為MapWinGis的 ActiveX控件
,開發人員可以利用這個ActiveX組件在自己的系統中添加GIS的相關功能,例如:地圖顯示;在圖層上標繪點、線、圖形;計算長度,存取GIS數據等相關工作。ESRI在AO的基礎之上開發了ArcGIS的桌面產品,類似的,他們也在MapWinGis 這套組件庫的基礎上,二次開發了MapWindow GIS,這是一套桌面GIS系統,相當于一個簡化版的ArcMap,桌面GIS系統的開發語言使用的是VB.NET。用戶可以直接通過它瀏覽數據,并通過一系列插件來完成其他功能。還有一套MapWinX,是DOTNET平臺下的一個輔助工具。
二次開發環境支持VB、C#、VB.NET 等。
MapWinGis 的主要功能包括:
1、直接打開,編輯,保存Image,Grid,Shapfile,TIN,DBF格式的文件。
2、在地圖中對圖形進行瀏覽,標注,支持矢量數據的符號化,柵格數據的透明顯示。
3、在地圖中對矢量數據進行空間數據查詢。
4、動態的在圖層上標繪空間數據。
5、存取地圖中的相關數據。
自我感覺MapWinGis存在的缺點也是相當大的:
1.首先只支持點、線、面、至于矢量圖片等貌似不支持,需自行擴展。
2.MapWinGis渲染的效果始終感覺沒有被的GIS引擎好。
3.空間數據庫只能由PostGreSQL支持。
4.最大的一個缺點感覺就是必須本地必須存在幾個文件(.shp .dbf .shx .mwsr)。當有多個客戶端時,必須通過服務器下載更新,無法直接操作PostGreSQL數據庫,這個相對于SuperMap實在弱了一點。
5.數據量大的問題。速度比較慢,這是每個GIS引擎必然遇到的。
6.當前的官方版本不支持中文路徑的讀取,不過這個通過改源代碼已經解決。MapWinGis.ocx。通過注冊這個主鍵即可。
當然MapWinGis優點也是很多的,對.Net的二次開始相當支持。速度、效率總體不錯。當前開發的系統就是基于MapWinGis的網絡資源管理系統,效果相當不錯。
獲取MapWinGis數據
1.數據結構、2.地理信息
準確靈活使用
行政圖:
經緯圖:
一直想深入研究,希望能向其他GIS愛好者學習學習。未完待續……