由於項目需求,須要基於開源項目來對SHP進行相關操做。涉及到的主要功能就是加載SHP讀取其中的屬性信息和幾何信息。因而選擇了Sharpmap來進行,在使用中對其相關功能作了初步瞭解,作個總結。git
官網地址:http://sharpmap.codeplex.com/github
在其中能夠下載最新的Sharpmap源碼。在官網中能夠看到目前最新的更新基本停留在2014年,據聞目前其做者已經入職了esri。異步
(1)符合OpenGIS的簡單要素規範,支持點、線、面、多點、多線、多面、集合對象集合等要素集合。工具
(2)支持常規的地圖操做,例如旋轉、平移、縮放等。ui
(3)實時的地圖投影轉換。.net
(4)使用異步委託實現效率最大化,可編制展現複雜的地圖主體渲染。code
(5)支持Web地圖展現,支持AJAX地圖控件,支持WMS服務。對象
(6)有很好的接口支持數據格式和圖層的擴展。blog
(1)支持矢量數據格式:例如ESRI Shape File、PostGIS、Oracle、Microsoft SQLServer、SQLite等。接口
(2)支持柵格數據格式:例如.bmp、.gif、.tif、.png、.dem等格式。
(3)WMS地圖服務。
BruTile:這是基於C#開發的支持GIS瓦片(tile)的開源代碼庫地址爲:https://github.com/BruTile/BruTile
NetTopoLogySuite:基於.net平臺處理GIS空間數據及其空間關係的類庫。開源代碼庫地址爲:https://github.com/NetTopologySuite/NetTopologySuite
GeoAPI,實現.net與GIS互操做開源代碼庫地址爲:https://github.com/NetTopologySuite/GeoAPI有興趣的話能夠研究一下。
ProjNET:基於.Net開源的地圖投影庫,支持基準面轉換,支持大地座標系,地心座標系以及投影座標系。開源代碼庫地址爲:http://projnet.codeplex.com/
下載好DLL後,將其引入:
SharpMap能夠對圖層作渲染展現,空間查詢,拓撲判斷等功能,相關功能在網上均能找到例子。可是對SHP的編輯,SHP的建立目前沒有找到合適例子,查看源碼也沒有找到相關接口,若是有知道如何基於SharpMap作SHP編輯的朋友,還望指教。
這是我在網上找到的關於該問題的一個比較全面的回覆: