劉小飛,關 昆,于海波,馮 濤
(天津市測繪院,天津 300381)
多源多目標空間數據庫的一體化集成與管理技術研究
劉小飛,關 昆,于海波,馮 濤
(天津市測繪院,天津 300381)
在目前的地理信息工程項目中,地理空間數據庫獲得了越來越多的應用。隨著需求的多樣化,企業級空間數據庫、開源空間數據庫、移動端空間數據庫等多種類型的存儲方式在各個項目中不斷出現。本文通過建立多源多目標地理空間數據庫的管理體系,整合多類數據庫產品的存儲和管理,建立了多源的統一集成應用平臺,為GIS工程項目的有效開展提供支撐。
地理空間數據庫;Spatial API;數據集成;WPF框架;地理信息工程
地理空間數據庫是用來表示地理空間實體的坐標位置及其他屬性等信息的數據庫,可以為各類空間數據提供標準格式、存儲方法和有效的管理,能方便快速地進行檢索和分析。目前多數商業或開源的數據庫軟件具有空間數據支持的擴展,可以按照OGC標準對空間數據進行存儲和查詢,如Oracle Spatial、SQL Server Spatial、IBM DB2 Spatial、PostGIS、MySQL Spatial、Spatialite等。
目前,許多地理信息工程項目使用的通常是單一的數據庫產品,而地理信息不同的數據庫產品之間有許多方面的不統一。不同的空間數據庫產品由于各自采用不同的數據模型和數據結構,導致不同的系統彼此相對封閉、系統之間的數據交換困難。因此,有必要實現空間數據庫之間的有效共享、存儲和管理,建立一個可以進行集成整合的平臺。
同時,由于獲得空間數據的途徑很多,數據來源和格式比較復雜,在實際應用中,往往需要利用不同來源的數據,這就存在數據格式轉換的工作。因此,也需要建立一個GIS集成平臺來滿足不同格式數據的直接入庫要求。
本文通過分析多源、多目標空間數據庫的一體化整合方法和技術路線,設計可為各類地理信息工程使用的數據庫存儲應用平臺,探索一條便于GIS項目開展的解決之路。通過建立統一的多源、多目標地理空間數據庫管理和集成應用平臺,實現一體化的管理和應用體系,為地理信息工程項目的數據融合、共享和管理提供服務,兼容多種數據格式的出入庫,提供常用的數據處理功能,實現獨立部署,脫離第三方環境的軟件應用,方便不同GIS工程中多種數據格式的入庫管理,滿足不同用戶對空間數據庫的使用需求。
1.多目標Spatial數據庫開發模型
多目標空間數據庫開發,即滿足不同種類的空間數據庫產品的開發,支持對不同的Spatial數據庫的入庫、存儲等操作。這項工作是平臺的核心內容,本文在各類數據庫產品的Spatial API的基礎上實現了在統一平臺上的空間數據的存儲、編輯、輸出等操作。Spatial數據庫開發路線如圖1所示。

圖1 Spatial數據庫平臺開發路線
平臺在.NET環境下實現,因此,需要應用各類數據庫基于.NET Framework的支持驅動,并整合在統一的平臺下,包括:
1)Oracle Spatial:Oracle.DataAccess.dll;
2)SQL Server Spatial:Microsoft.Sqlserver.Types. dll;
3)PostGIS:Npgsql.dll;
4)MySQL:MySql.Data.dll;
5)Spatialite:System.Data.SQLite.dll。
2.多源地理數據的集成
針對GIS工程中常見的矢量數據,本文在分析各自數據結構的基礎上給出了集成方法,包括如下幾類。
(1)Esri ShapeFile(SHP)格式的數據存儲
SHP矢量數據格式是美國環境系統研究所公司(Esri)開發的一種空間數據開放格式,該文件格式已經成為了地理信息軟件界的一個開放標準。本文采用開源地理信息框架SharpMap來實現SHP文件的讀寫功能。
(2)AutoCAD DWG格式的數據存儲
AutoCAD DWG格式的圖形文件是一種二進制文件,格式不公開,普通用戶無法直接讀取其內容。本文引入了開放設計協會(Open Design Alliance)設計的DWGDirect類庫,它提供了一套API直接訪問DWG文件的函數庫(OpenDWG),軟件開發人員可以借以開發應用程序,使系統能夠獨立于AutoCAD平臺之外訪問DWG文件中的數據信息,它的核心機制在于將DWG文件中的數據轉化為用戶自身定義的數據結構進行表達的信息模型。
(3)DXF格式的數據存儲
DXF為AutoCAD數據交換文件,是一種開放的矢量格式,應用.NET讀取文本格式的文件流方法可以直接讀取地理數據的空間坐標等信息。
(4)KML格式的數據存儲
KML是一種基于XML語法與格式的、用于描述和保存地理信息(如點、線、圖像、多邊形和模型等)的編碼規范,可以被Google Earth和Google Maps識別并顯示。KML文件本身為文本格式,同樣可以在.NET環境下采用文件流直接讀取數據的坐標信息。
由于平臺設計為脫離第三方環境的獨立應用模式,因此使用開源GIS類庫SharpMap、DWGDirect來實現數據讀寫功能是合適的,它避免了平臺應用過程中的環境依賴性。
3.基于WPF框架的GIS平臺開發
平臺利用基于WPF框架的GIS平臺進行開發。WPF是微軟基于.NET的新一代用戶界面框架,它提供了統一的編程模型、語言和框架,真正做到了分離界面設計人員與開發人員的工作。WPF在多媒體交互、二三維矢量圖形、圖像流界面上具有強大的優勢,因此,利用WPF框架實現多目標空間數據庫的一體化應用開發是非常合適的,平臺基于WPF的開發內容包括兩個方面:
1)WPF和Esri API的結合。Esri WPF API是構建在.NET Framework中的輕量級應用,平臺采用Esri API在桌面應用中進行地理信息繪圖、地理處理等功能,并且利用Map控件在WPF環境下加載REST地圖服務。
2)WPF和空間數據庫的結合。WPF本質屬于桌面應用程序,因此可以方便地訪問局域網內的空間數據庫,應用.NET接口進行數據庫的開發。
1.平臺總體設計
平臺實現了對多數據格式來源、多目標數據庫方式的矢量數據管理與應用,體系結構如圖2所示。

圖2 一體化數據庫平臺體系結構
2.地圖服務加載與顯示
平臺對于矢量數據的瀏覽顯示、編輯等操作需要有基礎地圖的支撐,本文采用REST地圖服務作為矢量數據管理的基礎底圖。基于Esri API的自適應性,REST地圖來源可以有多種,無論是動態地圖還是瓦片式地圖,都可以加載到平臺中使用。本文采用自定義的切片地圖REST服務作為基礎底圖,通過構建類ArcGISTiledMapServiceLayer的URL地址加載基礎底圖。
3.矢量數據入庫
矢量數據入庫功能為各類矢量數據提供了向各數據庫產品的入庫途徑,不同于普通的GIS項目中的入庫流程,它是一個多對多的入庫模式,即數據源和入庫目標均為多種類型。平臺中主要應用各數據庫的.NET API來完成,在對數據進行讀取和分析的基礎上,調用SQL語句完成數據的Insert、Update等操作,流程如圖3所示。

圖3 矢量數據入庫流程
4.矢量數據輸出
矢量數據輸出功能為數據向不同格式的導出提供解決方案,同樣應用.NET API,利用SQL語句查詢所要輸出的記錄,再通過地理數據的創建、寫入方法來完成數據輸出流程。對于SHP格式的文件寫入,通過SharpMap類庫來實現;對于DWG格式的文件寫入,通過DWGDirect類庫來實現;對于DXF和KML格式的文件寫入,直接通過.NET類System. IO來實現。流程如圖4所示。

圖4 矢量數據輸出流程
5.矢量數據加載與編輯
矢量數據的加載與編輯在WPF框架內借助地圖服務來完成,具體包括:數據讀取、數據顯示、數據編輯、數據保存。
(1)數據讀取
通過各類數據庫的空間API來實現數據讀取,查找空間圖層的坐標信息

(2)數據顯示
應用Esri WPF API完成,將查詢到的坐標信息構建為 Esri API中的 Geometry類型,再通過構建Graphic類,指定Graphic對象的空間位置為構建的Geometry來實現:

(3)數據編輯
應用Esri WPF API來實現,利用EditGeometry類實現Map空間的Graphic編輯,包括對點(Map-Point)、線(Polyline)、面(Polygon)的節點編輯。
(4)數據保存
利用數據庫API調用SQL語句實現數據保存,語法如下:
Update table Set Geometry=ST_GeomFromText(’POINT (117.5623574,39.32894523),4326)
矢量數據編輯如圖5所示。

圖5 矢量數據編輯
多源多目標空間數據庫的一體化集成管理平臺主要為各類地理信息工程的數據組織和入庫服務,提供地理信息基礎數據庫的建庫輔助工作。它最主要的功能是提供了針對多數據源、多目標產品數據庫的讀取和入庫支持,因此,可以靈活地根據需要為不同的GIS項目提供支持。
企業級 GIS應用的數據庫種類較多,包括如Oracle、SQL Server、IBM DB2、PostgreSQL、MySQL等,不同的GIS應用對數據庫的需求不盡相同。以天津市測繪院為例,天津市地理信息公共服務平臺的建設采用了SQL Server數據庫,“天地圖·天津”采用了Oracle數據庫,其他眾多的地理信息項目也應用了較多種類的數據庫產品;同時由于在地理信息項目的建設初期,所收集的數據源千差萬別,包括SHP、CAD等格式的數據,頻繁的數據格式轉換也占用了GIS項目建設較多的時間成本。本文所給出的一體化集成應用平臺較大限度地改善了現有的局面,為不同的GIS應用提供了方便的數據庫支持。
此外,平臺提供的數據編輯功能,可以方便地對Spatial數據庫進行直接編輯,為GIS后臺管理人員提供了便利。
在移動端數據庫的應用方面,目前的移動端GIS應用所采用的數據庫多為 Spatialite數據庫,Spatialite是在移動端數據庫SQLite的基礎上增加了對空間數據的支持,按照OGC標準,提供了對空間字段的存儲和查詢功能。
應用一體化集成應用平臺可以方便地進行基礎矢量數據的入庫和編輯操作,由于Spatialite數據庫靈活的移植性,在移動端GIS開發的過程中起到了很方便的作用。
本文通過對多源多目標產品的空間數據庫的應用目標、關鍵技術的分析,設計開發了數據庫的一體化集成管理平臺,提供給各類地理信息工程進行矢量數據的入庫、存儲、輸出、編輯等功能;并采用SharpMap、DWGDirect等開源框架進行各類數據的讀寫操作,方便了對不同數據來源的管理。平臺基于WPF框架設計,是一個獨立、免插件環境的獨立應用,為多來源、多目標產品的數據庫建庫工作在地理信息工程中的應用提供了一個良好的解決方案。
[1] 張新海.多源空間數據的存儲管理與發布研究——以天山公路(獨庫段)空間數據庫建設為例[D].成都:成都理工大學,2007.
[2] 張菁蕾.多源空間數據的組織管理與應用[D].上海:同濟大學,2007.
[3] 孫榮輝.基于Oracle+Spatial的空間數據一體化存儲研究[D].北京:首都師范大學,2006.
[4] 朱冰.多源空間數據集成技術及應用[J].測繪與空間地理信息,2011,36(6):138-139.
[5] 簡燦良.多尺度空間數據庫的數據組織與建設[J].測繪通報,2002(1):37-39.
[6] 馬照亭,潘懋,林晨,等.多源空間數據的共享與集成模式研究[J].計算機工程與應用,2002(24):31-34.
[7] 蔡先華.GIS-T空間數據庫管理與應用關鍵技術研究[J].測繪學報,2007,36(4):476.
[8] 赫紅宇,姚遠,張其善.GIS數據的一體化存儲管理在Oracle Spatial中的實現方法[J].無線電工程,2004 (5):4-6.
[9] 王懷寶.基于Oracle10g的WebGIS空間數據一體化存儲研究[D].阜新:遼寧工程技術大學,2006.
[10] 王云帆.Oracle Spatial空間數據存儲管理技術的應用研究[J].測繪通報,2011(6):76-79.
Research of Integration and Management of Multi-source Multi-target Geospatial Database
LIU Xiaofei,GUAN Kun,YU Haibo,FENG Tao
P208
B
0494-0911(2014)12-0097-04
劉小飛,關昆,于海波,等.多源多目標空間數據庫的一體化集成與管理技術研究[J].測繪通報,2014(12):97-100.
10.13474/j. cnki.11-2246.2014.0408
2013-11-04
2013年度天津市測繪院科技項目(Y-2013-04)
劉小飛(1983—),女,湖南漣源人,碩士,工程師,從事GIS開發與數據處理工作。