SharpMap簡析


1.背景

因為項目需求,需要基於開源項目來對SHP進行相關操作。涉及到的主要功能就是加載SHP讀取其中的屬性信息和幾何信息。於是選擇了Sharpmap來進行,在使用中對其相關功能做了初步了解,做個總結。

2.SharpMap 簡介

官網地址:http://sharpmap.codeplex.com/

在其中可以下載最新的Sharpmap源碼。在官網中可以看到目前最新的更新基本停留在2014年,據聞目前其作者已經入職了esri。

2.1基本功能

(1)符合OpenGIS的簡單要素規范,支持點、線、面、多點、多線、多面、集合對象集合等要素集合。

(2)支持常規的地圖操作,例如旋轉、平移、縮放等。

(3)實時的地圖投影轉換。

(4)使用異步委托實現效率最大化,可編制展示復雜的地圖主體渲染。

(5)支持Web地圖展示,支持AJAX地圖控件,支持WMS服務。

(6)有很好的接口支持數據格式和圖層的擴展。

2.2支持的格式

(1)支持矢量數據格式:例如ESRI Shape File、PostGIS、Oracle、Microsoft SQLServer、SQLite等。

(2)支持柵格數據格式:例如.bmp、.gif、.tif、.png、.dem等格式。

(3)WMS地圖服務。

2.3引入的第三方庫

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/

2.4環境搭建

下載好DLL后,將其引入:

 

3.幾個Demo

3.1添加數據至MapBox

 

3.2基本工具欄

 

3.3讀取SHP

 

4.一個擴展問題

SharpMap可以對圖層做渲染展示,空間查詢,拓撲判斷等功能,相關功能在網上均能找到例子。但是對SHP的編輯,SHP的創建目前沒有找到合適例子,查看源碼也沒有找到相關接口,如果有知道如何基於SharpMap做SHP編輯的朋友,還望指教。

這是我在網上找到的關於該問題的一個比較全面的回復:


免責聲明!

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



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