高紅心
(西安市勘察測繪院,陜西西安 710054)
基于Oracle Spatial的城市規(guī)劃用地數(shù)據庫的設計與實現(xiàn)
高紅心?
(西安市勘察測繪院,陜西西安 710054)
以西安市城市規(guī)劃用地管理數(shù)據庫為例,說明了基于MicroStation和Oracle Spatial建立小型簡單空間數(shù)據庫的方法和實現(xiàn)過程。
MicroStation VBA;Oracle Spatial;OO4O;規(guī)劃用地;低成本;空間數(shù)據庫
西安市勘察測繪院受西安市城市規(guī)劃局委托,承擔了大量城市規(guī)劃、建設和管理等領域內的城市基礎測繪業(yè)務,形成了大量珍貴的城市基礎建設和管理資料。這些資料,已成為研究城市歷史變遷沿革,進行城市規(guī)劃建設管理的基礎數(shù)據資料和重要歷史文獻。其中,城市規(guī)劃用地信息的管理是城市用地規(guī)劃管理工作的重要內容之一。
當今,主流GIS軟件廠商已推出的GIS系列產品中均包含了海量空間數(shù)據庫、WebGIS等技術和平臺,隨著GIS共享信息技術的發(fā)展和成熟,基于SOA的Web數(shù)據共享交互服務技術將成為下一個GIS應用的新趨勢。其中,高效率的空間數(shù)據庫技術的發(fā)展仍是GIS快速發(fā)展和推廣應用的關鍵。在已商用的空間數(shù)據庫產品中,ESRI ArcSDE、超圖的SDX+、Oracle推出的Oracle Spatial等產品最為典型。
與傳統(tǒng) GIS商用空間數(shù)據平臺相比較,Oracle Spatial的推出,為僅只有 Oracle、AutoCAD(或 MicroStation)和其他CAD或GIS系統(tǒng)的用戶提供了一種低成本建設空間數(shù)據庫管理系統(tǒng)的技術平臺和基礎。本文首先說明了西安市城市規(guī)劃用地數(shù)據庫的設計要點,對設計中涉及的數(shù)據庫表和結構進行了描述,而后對空間數(shù)據庫的OO4O訪問以MicroStation VBA代碼及注釋說明的方式進行了實現(xiàn),并試圖從系統(tǒng)開發(fā)成本、系統(tǒng)管理難度、適用的數(shù)據規(guī)模和范圍等方面,提供一種低成本的空間數(shù)據庫解決方案。
2000年9月,Oracle發(fā)布了Oracle 8i企業(yè)版,同時推出了自己的空間數(shù)據庫組件Oracle Spatial。該組件自發(fā)布以來,一直作為Oracle數(shù)據庫產品中的一個可選組件免費提供給所有使用Oracle企業(yè)版數(shù)據庫產品的用戶使用。同時,Oracle公司也提供了使用 Java、.NET等平臺和各種遵循VBA規(guī)范的專用數(shù)據處理平臺使用 VBA訪問空間數(shù)據的數(shù)據接口,如 OO4O、ODP.NET,也包括由微軟提供的專門的Oracle數(shù)據的訪問組件。但由于訪問的出發(fā)點、各自所用平臺機制、遵循的數(shù)據規(guī)范等存在差異,使用不同接口訪問同一數(shù)據庫時,編寫的語法也不盡相同。以上所提的數(shù)據訪問技術,分別在Oracle和Microsoft的有關文獻資料中都有詳細論述,本文只略提一下,將不再展開討論。
在Oracle Spatial中存儲對象可以分成對象關系模式和關系模式兩種形式,對象關系模式下用列來存儲空間及其相關對象,而關系模式下用二維表來存儲一般屬性信息。
在Oracle數(shù)據庫中空間幾何數(shù)據按照空間圖層、幾何圖形、元素來分層組織??臻g圖層是由幾何圖形構成,幾何圖形由不同種類的元素來構成。在Oracle Spatial中支持的元素包括:點、直線、曲線、復合線、自相交線、多邊形、復雜多邊形、復合多邊形(中空多邊形、并列多邊形)。在Oracle Spatial中還包括一組效率較高的空間幾何索引、空間查詢、空間疊加、數(shù)據緩沖等空間存儲過程和函數(shù),用于實現(xiàn)空間數(shù)據的高效訪問[1,2]。
3.1 設計要點
城市規(guī)劃用地數(shù)據是城市建設過程中產生的非常重要的一類數(shù)據,具有較高的安全性要求,因此,本設計在數(shù)據庫總體上采用規(guī)劃用地空間數(shù)據庫+規(guī)劃用地檔案錄入數(shù)據庫的設計方案,錄入數(shù)據庫以規(guī)劃用地案件為單位進行設計,用于規(guī)劃用地案件數(shù)據錄入和用地批文圖像數(shù)據的日常存儲和備份??臻g數(shù)據庫以規(guī)劃用地地塊為單位設計,專門用于規(guī)劃用地檔案資料的空間查詢和規(guī)劃用地空間數(shù)據的日常管理維護。
一個規(guī)劃用地案件通常包含兩部分內容:凈用地和至少一個代征路(有時還包含代征綠地、代征高壓走廊等多個地塊),因此,錄入數(shù)據庫屬性記錄以案件為單位存取,在存儲幾何數(shù)據時,多個地塊按設計的存取規(guī)則集中存??;空間查詢數(shù)據庫則按Oracle Spatial的空間數(shù)據存取規(guī)則,以案件所包含的規(guī)劃用地地塊為單位進行存取,目的在于可以使用所有成熟高效的Oracle Spatial空間索引和查詢算子,以較簡單的方式實現(xiàn)規(guī)劃用地空間數(shù)據的存取。
這兩個數(shù)據庫在符合各自工作流程需要的基礎上,在數(shù)據上互為備份。
數(shù)據庫安全設計:
(1)按照整個作業(yè)流程,將對錄入數(shù)據庫的訪問分為7級用戶權限:接受任務、分派任務、數(shù)據錄入、小組檢查、隊級檢查、院級檢查驗收、歸卷入庫,分別控制不同用戶在不同階段下對數(shù)據庫中不同字段的可寫、可讀、可修改權限。
(2)將用地錄入數(shù)據庫與成果空間數(shù)據庫分開存儲,使用不同用戶進行控制,設置專人對成果空間數(shù)據進行入庫更新維護,避免無關人員的無關操作對成果造成的不可恢復性數(shù)據丟失。
3.2 設計實例
整個數(shù)據庫包括:規(guī)劃用地檔案信息表(LAYOUT_LAND,為僅擁有大字段的一般屬性表)、歷史檔案信息表(HIST_LAYOUT_LAND,為僅擁有大字段的一般屬性表)、規(guī)劃用地查詢數(shù)據表(LAYOUT_LAND,為基于Oracle Spatial創(chuàng)建的空間數(shù)據庫表)、界址點表(LAYOUT_JZD)、城市地類代碼表(CITY_LAND_CODE)、用戶信息表(USER_INFO)、數(shù)據字典表、工作流程信息表。其中,工作流程信息表用于存儲用地案件的流程信息;規(guī)劃用地查詢數(shù)據表(LAYOUT_LAND)、界址點表(LAYOUT_JZD)位于另一用戶空間,在邏輯上與錄入數(shù)據庫隔絕,只有錄入檔案被用戶接受之后,才能歸卷入庫,此步采用了自定義Oracle存儲過程來實現(xiàn)規(guī)劃用地檔案信息表記錄到規(guī)劃用地查詢數(shù)據表的空間數(shù)據存儲,進一步增強了系統(tǒng)數(shù)據的安全性和可靠性。限于篇幅,本文簡略介紹一下規(guī)劃用地表的部分設計(如表1所示),而省略了其他數(shù)據庫表的設計。
規(guī)劃用地表(LAYOUT_LAND)設計 表1
4.1 功能實現(xiàn)
OO4O(Oracle Objects for OLE)是一個基于COM的數(shù)據庫連通性工具,它實現(xiàn)了對Oracle數(shù)據庫的優(yōu)化、無縫的訪問,同時具有易于使用的界面。OO4O可用于從Web應用程序到n層客戶端/服務器應用程序的多種環(huán)境。也可以用在任何支持Microsoft COM Automation技術的編程語言或腳本語言中,如Visual Basic、Visual C++、VBA in Excel、Active Server Page、Power-Builder、Delphi、Microsoft Internet Information Server以及Microsoft Transaction Server等。由于OO4O是一個本地驅動程序,它可以實現(xiàn)從Windows客戶端到Oracle數(shù)據庫的最佳性能。
以Microstation VBA為例,說明使用OO4O的基本方法:
(1)加入Oracle InProc Server 4.0/5.0 Type Library;
(2)加入Bentley Microstation DGN 8.X Object Library;
(3)多邊形查詢示例:示例中所包含的Oracle Spatial中空間對象字段的結構和語法的詳細描述,見參考文獻[1];
以下語句為一個進行多邊形空間相交和包含查詢的SQL語句,將其作為字符串參數(shù)傳遞至字符串變量sqlClause。
(4)提取目標多邊形包含和與目標多邊形相交的所有用地多邊形數(shù)據,并在MicroStation視圖中顯示;下面將基于OO4O+MicroStation的規(guī)劃用地多邊形提取過程的關鍵步驟羅列如下,以供參考。
4.2 應用示例
如搜索“西安市勘察測繪院”的一塊用地,查看其是否辦理了合法的規(guī)劃征用地手續(xù)?;镜倪壿嬍峭ㄟ^輸入條件,如輸入表1所示字段“建設單位”的部分詞語如“勘察”,通過模糊匹配和人工交互得到相關記錄的唯一標志碼,提取相應的幾何信息,并將其結果傳遞給MicroStation進行顯示,同時顯示其屬性信息(查詢結果如圖1所示),圖1結果顯示該用地手續(xù)齊全合法。
西安市城市規(guī)劃用地檔案信息系統(tǒng)項目(基本界面如圖1)以本文所述成果為基礎,采用MicroStation作為數(shù)據操作基礎平臺,以 MicroStation VBA、Microsoft.NET C#為擴展開發(fā)工具,以Oracle OO4O組件作為空間數(shù)據訪問接口,以Oracle作為城市規(guī)劃用地檔案數(shù)據庫存儲管理平臺,實現(xiàn)了基于多用戶安全管理的網絡化城市規(guī)劃用地檔案數(shù)據錄入系統(tǒng)和基于MicroStation、OO4O、Oracle Spatial的空間數(shù)據查詢、統(tǒng)計、更新、維護等功能模塊。本文所述成果的主要特點在于無需任何第三方空間數(shù)據訪問中間件,直接采用Oracle OO4O和適合Oracle Spatial訪問特性的SQL空間算子,就可以設計出簡潔高效的規(guī)劃用地空間數(shù)據存取方法,實現(xiàn)規(guī)劃用地空間數(shù)據庫的集中統(tǒng)一管理。
圖1 基于MicroStation和OO4O的空間數(shù)據調用示例
該數(shù)據庫設計簡單,存取訪問安全,易于采用自定義的基于Oracle Spatial的空間數(shù)據存儲方案,空間數(shù)據存取簡潔高效,數(shù)據訪問方法的可移植性好,易于與其他系統(tǒng)集成。同時,該方案還擁有較小的系統(tǒng)開發(fā)成本、較小的系統(tǒng)管理難度,易于安裝部署等特性。
綜上所述,本方案特別適合于管理數(shù)據類型簡單,數(shù)據規(guī)模小型到中等,希望使用較小資金投入、以輕客戶端或Web方式訪問和管理空間數(shù)據的集成應用項目,以及易于使用SDO_GEOMETRY的SQL方法和算子進行描述的空間數(shù)據應用項目。
[1]The reference of Oracle spatial,http://www.oralce.com
[2]雷英杰,王濤.一種Oracle空間數(shù)據庫的設計與實現(xiàn).計算機工程與應用,2002,38(13)
[3]西安市勘察測繪院地理信息中心.西安市規(guī)劃用地檔案管理信息系統(tǒng)需求分析
[4]西安市勘察測繪院地理信息中心.西安市規(guī)劃用地檔案管理信息系統(tǒng)概要設計
[5]西安市勘察測繪院地理信息中心.西安市規(guī)劃用地檔案管理信息系統(tǒng)數(shù)據庫設計
[6]馬奎,李宏偉,李勤超等..NET下基于OO4O核心的Oracle Spatial空間數(shù)據互操作[J].計算機應用,2009,29 (z1)
[7]汪斌,周曉光,蔣捷,朱建軍.基于OO4O和Visual C++6.0實現(xiàn)Oracle9i Spatial中空間數(shù)據的操作.地理信息世界,2006,4(4)
Design and Implementation of Urban Planning Land-use Database Based on Oracle Spatial
Gao HongXin
(Xi’an Institute of Prospecting and Mapping,Xi’an 710054,China)
In this paper,Xi'an urban planning land-use management database,for example,illustrates the Oracle Spatial based on MicroStation,and the establishment of small simple spatial database approach and implementation process for the project to provide technical drawing and design ideas.
MicroStation VBA;Oracle Spatial;OO4O;Urban Planning Land Use;Low Cost;Spatial Database
1672-8262(2010)05-35-04
P208
A
2009—12—23
高紅心(1969—)男,高級工程師、軟件系統(tǒng)分析師,從事遙感與GIS應用項目開發(fā)與管理。