文章版權由做者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/python
爲利於項目實施,團隊用AE寫過一個插件式的工具集,主要包括了數據入庫、數據統計、數據修改、數據發佈等功能。mysql
因爲arcgis環境的不一樣,數據庫的環境不一樣,致使工具的版本出現了arcgis10.0,10.1,10.2,以及相對的Oracle版本和mysql版本,從而使維護量直線上升。sql
痛定思痛,咱們決定採用GDAL來將各工具逐一開源化,而且將不一樣數據庫操做封裝成同一個DLL使用,目標是將全部的版本整合成一個通用版本。數據庫
GDAL(Geospatial Data Abstraction Library)是一個在X/MIT許可協議下的開源柵格空間數據轉換庫。它利用抽象數據模型來表達所支持的各類文件格式,其抽象數據模型包括數據集(dataset),座標系統,仿射地理座標轉換(Affine Geo Transform), 大地控制點(GCPs), 元數據(Metadata),柵格波段(Raster Band),顏色表(Color Table),子數據集域(Subdatasets Domain),圖像結構域(Image_Structure Domain),XML域(XML:Domains)。它還有一系列命令行工具來進行數據轉換和處理。在遙感影像處理領域,GDAL是一個被普遍使用的庫。咱們所常見的GDAL均是C++版本,不過目前它也有了C#以及python、Java版本。微信
這裏,咱們所用的主要是針對矢量數據(SHP)的處理,因此咱們還要用的GDAL的分支, OGR庫。OGR庫包含了:工具
Geometry類:Geometry (包括OGRGeometry等類)封裝了OpenGIS的矢量數據模型,並提供了一些幾何操做,WKB(Well Knows Binary)和WKT(Well Known Text)格式之間的相互轉換,以及空間參考系統(投影)。編碼
Spatial Reference類:OGRSpatialReference封裝了投影和基準面的定義。spa
Feature類:OGRFeature封裝了一個完整feature的定義,一個完整的feature包括一個 geometry和geometry的一系列屬性。插件
Feature Definition類:OGRFeatureDefn裏面封裝了feature的屬性,類型、名稱及其默認的空間參考系統等。一個OGRFeatureDefn對象一般與一個層(layer)對應。命令行
Layer類:OGRLayer是一個抽象基類,表示數據源類OGRDataSource裏面的一層要素(feature)。
Data Source類:OGRDataSource是一個抽象基類,表示含有OGRLayer對象的一個文件或一個數據庫。
Drivers類:OGRSFDriver對應於每個所支持的矢量文件格式。類OGRSFDriver由類OGRSFDriverRegistrar來註冊和管理。
下載編譯後的GDAL地址:http://www.gisinternals.com/sdk/
點擊須要下載的DLL集:
將下載到的文件bin下的dll拷貝至debug下,此爲GDAL運行須要依賴的DLL。進入gdal\csharp目錄,將以_csharp結尾的dll拷貝出來,添入引用便可。
GDAL對中文支持容易出現問題,
首先經過設置運行環境支持中文:
其次,對GDAL設置中文編碼:
咱們將對SHP的經常使用操做進行了封裝,主要爲要素的增刪查改操做、要素字段的操做、SHP的操做:
-----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
若是您以爲本文確實幫助了您,能夠微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^