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