高紅心
(西安市勘察測(cè)繪院,陜西西安 710054)
基于Oracle Spatial的城市規(guī)劃用地?cái)?shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)
高紅心?
(西安市勘察測(cè)繪院,陜西西安 710054)
以西安市城市規(guī)劃用地管理數(shù)據(jù)庫(kù)為例,說(shuō)明了基于MicroStation和Oracle Spatial建立小型簡(jiǎn)單空間數(shù)據(jù)庫(kù)的方法和實(shí)現(xiàn)過(guò)程。
MicroStation VBA;Oracle Spatial;OO4O;規(guī)劃用地;低成本;空間數(shù)據(jù)庫(kù)
西安市勘察測(cè)繪院受西安市城市規(guī)劃局委托,承擔(dān)了大量城市規(guī)劃、建設(shè)和管理等領(lǐng)域內(nèi)的城市基礎(chǔ)測(cè)繪業(yè)務(wù),形成了大量珍貴的城市基礎(chǔ)建設(shè)和管理資料。這些資料,已成為研究城市歷史變遷沿革,進(jìn)行城市規(guī)劃建設(shè)管理的基礎(chǔ)數(shù)據(jù)資料和重要?dú)v史文獻(xiàn)。其中,城市規(guī)劃用地信息的管理是城市用地規(guī)劃管理工作的重要內(nèi)容之一。
當(dāng)今,主流GIS軟件廠商已推出的GIS系列產(chǎn)品中均包含了海量空間數(shù)據(jù)庫(kù)、WebGIS等技術(shù)和平臺(tái),隨著GIS共享信息技術(shù)的發(fā)展和成熟,基于SOA的Web數(shù)據(jù)共享交互服務(wù)技術(shù)將成為下一個(gè)GIS應(yīng)用的新趨勢(shì)。其中,高效率的空間數(shù)據(jù)庫(kù)技術(shù)的發(fā)展仍是GIS快速發(fā)展和推廣應(yīng)用的關(guān)鍵。在已商用的空間數(shù)據(jù)庫(kù)產(chǎn)品中,ESRI ArcSDE、超圖的SDX+、Oracle推出的Oracle Spatial等產(chǎn)品最為典型。
與傳統(tǒng) GIS商用空間數(shù)據(jù)平臺(tái)相比較,Oracle Spatial的推出,為僅只有 Oracle、AutoCAD(或 MicroStation)和其他CAD或GIS系統(tǒng)的用戶提供了一種低成本建設(shè)空間數(shù)據(jù)庫(kù)管理系統(tǒng)的技術(shù)平臺(tái)和基礎(chǔ)。本文首先說(shuō)明了西安市城市規(guī)劃用地?cái)?shù)據(jù)庫(kù)的設(shè)計(jì)要點(diǎn),對(duì)設(shè)計(jì)中涉及的數(shù)據(jù)庫(kù)表和結(jié)構(gòu)進(jìn)行了描述,而后對(duì)空間數(shù)據(jù)庫(kù)的OO4O訪問(wèn)以MicroStation VBA代碼及注釋說(shuō)明的方式進(jìn)行了實(shí)現(xiàn),并試圖從系統(tǒng)開發(fā)成本、系統(tǒng)管理難度、適用的數(shù)據(jù)規(guī)模和范圍等方面,提供一種低成本的空間數(shù)據(jù)庫(kù)解決方案。
2000年9月,Oracle發(fā)布了Oracle 8i企業(yè)版,同時(shí)推出了自己的空間數(shù)據(jù)庫(kù)組件Oracle Spatial。該組件自發(fā)布以來(lái),一直作為Oracle數(shù)據(jù)庫(kù)產(chǎn)品中的一個(gè)可選組件免費(fèi)提供給所有使用Oracle企業(yè)版數(shù)據(jù)庫(kù)產(chǎn)品的用戶使用。同時(shí),Oracle公司也提供了使用 Java、.NET等平臺(tái)和各種遵循VBA規(guī)范的專用數(shù)據(jù)處理平臺(tái)使用 VBA訪問(wèn)空間數(shù)據(jù)的數(shù)據(jù)接口,如 OO4O、ODP.NET,也包括由微軟提供的專門的Oracle數(shù)據(jù)的訪問(wèn)組件。但由于訪問(wèn)的出發(fā)點(diǎn)、各自所用平臺(tái)機(jī)制、遵循的數(shù)據(jù)規(guī)范等存在差異,使用不同接口訪問(wèn)同一數(shù)據(jù)庫(kù)時(shí),編寫的語(yǔ)法也不盡相同。以上所提的數(shù)據(jù)訪問(wèn)技術(shù),分別在Oracle和Microsoft的有關(guān)文獻(xiàn)資料中都有詳細(xì)論述,本文只略提一下,將不再展開討論。
在Oracle Spatial中存儲(chǔ)對(duì)象可以分成對(duì)象關(guān)系模式和關(guān)系模式兩種形式,對(duì)象關(guān)系模式下用列來(lái)存儲(chǔ)空間及其相關(guān)對(duì)象,而關(guān)系模式下用二維表來(lái)存儲(chǔ)一般屬性信息。
在Oracle數(shù)據(jù)庫(kù)中空間幾何數(shù)據(jù)按照空間圖層、幾何圖形、元素來(lái)分層組織。空間圖層是由幾何圖形構(gòu)成,幾何圖形由不同種類的元素來(lái)構(gòu)成。在Oracle Spatial中支持的元素包括:點(diǎn)、直線、曲線、復(fù)合線、自相交線、多邊形、復(fù)雜多邊形、復(fù)合多邊形(中空多邊形、并列多邊形)。在Oracle Spatial中還包括一組效率較高的空間幾何索引、空間查詢、空間疊加、數(shù)據(jù)緩沖等空間存儲(chǔ)過(guò)程和函數(shù),用于實(shí)現(xiàn)空間數(shù)據(jù)的高效訪問(wèn)[1,2]。
3.1 設(shè)計(jì)要點(diǎn)
城市規(guī)劃用地?cái)?shù)據(jù)是城市建設(shè)過(guò)程中產(chǎn)生的非常重要的一類數(shù)據(jù),具有較高的安全性要求,因此,本設(shè)計(jì)在數(shù)據(jù)庫(kù)總體上采用規(guī)劃用地空間數(shù)據(jù)庫(kù)+規(guī)劃用地檔案錄入數(shù)據(jù)庫(kù)的設(shè)計(jì)方案,錄入數(shù)據(jù)庫(kù)以規(guī)劃用地案件為單位進(jìn)行設(shè)計(jì),用于規(guī)劃用地案件數(shù)據(jù)錄入和用地批文圖像數(shù)據(jù)的日常存儲(chǔ)和備份。空間數(shù)據(jù)庫(kù)以規(guī)劃用地地塊為單位設(shè)計(jì),專門用于規(guī)劃用地檔案資料的空間查詢和規(guī)劃用地空間數(shù)據(jù)的日常管理維護(hù)。
一個(gè)規(guī)劃用地案件通常包含兩部分內(nèi)容:凈用地和至少一個(gè)代征路(有時(shí)還包含代征綠地、代征高壓走廊等多個(gè)地塊),因此,錄入數(shù)據(jù)庫(kù)屬性記錄以案件為單位存取,在存儲(chǔ)幾何數(shù)據(jù)時(shí),多個(gè)地塊按設(shè)計(jì)的存取規(guī)則集中存取;空間查詢數(shù)據(jù)庫(kù)則按Oracle Spatial的空間數(shù)據(jù)存取規(guī)則,以案件所包含的規(guī)劃用地地塊為單位進(jìn)行存取,目的在于可以使用所有成熟高效的Oracle Spatial空間索引和查詢算子,以較簡(jiǎn)單的方式實(shí)現(xiàn)規(guī)劃用地空間數(shù)據(jù)的存取。
這兩個(gè)數(shù)據(jù)庫(kù)在符合各自工作流程需要的基礎(chǔ)上,在數(shù)據(jù)上互為備份。
數(shù)據(jù)庫(kù)安全設(shè)計(jì):
(1)按照整個(gè)作業(yè)流程,將對(duì)錄入數(shù)據(jù)庫(kù)的訪問(wèn)分為7級(jí)用戶權(quán)限:接受任務(wù)、分派任務(wù)、數(shù)據(jù)錄入、小組檢查、隊(duì)級(jí)檢查、院級(jí)檢查驗(yàn)收、歸卷入庫(kù),分別控制不同用戶在不同階段下對(duì)數(shù)據(jù)庫(kù)中不同字段的可寫、可讀、可修改權(quán)限。
(2)將用地錄入數(shù)據(jù)庫(kù)與成果空間數(shù)據(jù)庫(kù)分開存儲(chǔ),使用不同用戶進(jìn)行控制,設(shè)置專人對(duì)成果空間數(shù)據(jù)進(jìn)行入庫(kù)更新維護(hù),避免無(wú)關(guān)人員的無(wú)關(guān)操作對(duì)成果造成的不可恢復(fù)性數(shù)據(jù)丟失。
3.2 設(shè)計(jì)實(shí)例
整個(gè)數(shù)據(jù)庫(kù)包括:規(guī)劃用地檔案信息表(LAYOUT_LAND,為僅擁有大字段的一般屬性表)、歷史檔案信息表(HIST_LAYOUT_LAND,為僅擁有大字段的一般屬性表)、規(guī)劃用地查詢數(shù)據(jù)表(LAYOUT_LAND,為基于Oracle Spatial創(chuàng)建的空間數(shù)據(jù)庫(kù)表)、界址點(diǎn)表(LAYOUT_JZD)、城市地類代碼表(CITY_LAND_CODE)、用戶信息表(USER_INFO)、數(shù)據(jù)字典表、工作流程信息表。其中,工作流程信息表用于存儲(chǔ)用地案件的流程信息;規(guī)劃用地查詢數(shù)據(jù)表(LAYOUT_LAND)、界址點(diǎn)表(LAYOUT_JZD)位于另一用戶空間,在邏輯上與錄入數(shù)據(jù)庫(kù)隔絕,只有錄入檔案被用戶接受之后,才能歸卷入庫(kù),此步采用了自定義Oracle存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)規(guī)劃用地檔案信息表記錄到規(guī)劃用地查詢數(shù)據(jù)表的空間數(shù)據(jù)存儲(chǔ),進(jìn)一步增強(qiáng)了系統(tǒng)數(shù)據(jù)的安全性和可靠性。限于篇幅,本文簡(jiǎn)略介紹一下規(guī)劃用地表的部分設(shè)計(jì)(如表1所示),而省略了其他數(shù)據(jù)庫(kù)表的設(shè)計(jì)。

規(guī)劃用地表(LAYOUT_LAND)設(shè)計(jì) 表1
4.1 功能實(shí)現(xiàn)
OO4O(Oracle Objects for OLE)是一個(gè)基于COM的數(shù)據(jù)庫(kù)連通性工具,它實(shí)現(xiàn)了對(duì)Oracle數(shù)據(jù)庫(kù)的優(yōu)化、無(wú)縫的訪問(wèn),同時(shí)具有易于使用的界面。OO4O可用于從Web應(yīng)用程序到n層客戶端/服務(wù)器應(yīng)用程序的多種環(huán)境。也可以用在任何支持Microsoft COM Automation技術(shù)的編程語(yǔ)言或腳本語(yǔ)言中,如Visual Basic、Visual C++、VBA in Excel、Active Server Page、Power-Builder、Delphi、Microsoft Internet Information Server以及Microsoft Transaction Server等。由于OO4O是一個(gè)本地驅(qū)動(dòng)程序,它可以實(shí)現(xiàn)從Windows客戶端到Oracle數(shù)據(jù)庫(kù)的最佳性能。
以Microstation VBA為例,說(shuō)明使用OO4O的基本方法:
(1)加入Oracle InProc Server 4.0/5.0 Type Library;
(2)加入Bentley Microstation DGN 8.X Object Library;
(3)多邊形查詢示例:示例中所包含的Oracle Spatial中空間對(duì)象字段的結(jié)構(gòu)和語(yǔ)法的詳細(xì)描述,見(jiàn)參考文獻(xiàn)[1];
以下語(yǔ)句為一個(gè)進(jìn)行多邊形空間相交和包含查詢的SQL語(yǔ)句,將其作為字符串參數(shù)傳遞至字符串變量sqlClause。

(4)提取目標(biāo)多邊形包含和與目標(biāo)多邊形相交的所有用地多邊形數(shù)據(jù),并在MicroStation視圖中顯示;下面將基于OO4O+MicroStation的規(guī)劃用地多邊形提取過(guò)程的關(guān)鍵步驟羅列如下,以供參考。


4.2 應(yīng)用示例
如搜索“西安市勘察測(cè)繪院”的一塊用地,查看其是否辦理了合法的規(guī)劃征用地手續(xù)。基本的邏輯是通過(guò)輸入條件,如輸入表1所示字段“建設(shè)單位”的部分詞語(yǔ)如“勘察”,通過(guò)模糊匹配和人工交互得到相關(guān)記錄的唯一標(biāo)志碼,提取相應(yīng)的幾何信息,并將其結(jié)果傳遞給MicroStation進(jìn)行顯示,同時(shí)顯示其屬性信息(查詢結(jié)果如圖1所示),圖1結(jié)果顯示該用地手續(xù)齊全合法。
西安市城市規(guī)劃用地檔案信息系統(tǒng)項(xiàng)目(基本界面如圖1)以本文所述成果為基礎(chǔ),采用MicroStation作為數(shù)據(jù)操作基礎(chǔ)平臺(tái),以 MicroStation VBA、Microsoft.NET C#為擴(kuò)展開發(fā)工具,以O(shè)racle OO4O組件作為空間數(shù)據(jù)訪問(wèn)接口,以O(shè)racle作為城市規(guī)劃用地檔案數(shù)據(jù)庫(kù)存儲(chǔ)管理平臺(tái),實(shí)現(xiàn)了基于多用戶安全管理的網(wǎng)絡(luò)化城市規(guī)劃用地檔案數(shù)據(jù)錄入系統(tǒng)和基于MicroStation、OO4O、Oracle Spatial的空間數(shù)據(jù)查詢、統(tǒng)計(jì)、更新、維護(hù)等功能模塊。本文所述成果的主要特點(diǎn)在于無(wú)需任何第三方空間數(shù)據(jù)訪問(wèn)中間件,直接采用Oracle OO4O和適合Oracle Spatial訪問(wèn)特性的SQL空間算子,就可以設(shè)計(jì)出簡(jiǎn)潔高效的規(guī)劃用地空間數(shù)據(jù)存取方法,實(shí)現(xiàn)規(guī)劃用地空間數(shù)據(jù)庫(kù)的集中統(tǒng)一管理。

圖1 基于MicroStation和OO4O的空間數(shù)據(jù)調(diào)用示例
該數(shù)據(jù)庫(kù)設(shè)計(jì)簡(jiǎn)單,存取訪問(wèn)安全,易于采用自定義的基于Oracle Spatial的空間數(shù)據(jù)存儲(chǔ)方案,空間數(shù)據(jù)存取簡(jiǎn)潔高效,數(shù)據(jù)訪問(wèn)方法的可移植性好,易于與其他系統(tǒng)集成。同時(shí),該方案還擁有較小的系統(tǒng)開發(fā)成本、較小的系統(tǒng)管理難度,易于安裝部署等特性。
綜上所述,本方案特別適合于管理數(shù)據(jù)類型簡(jiǎn)單,數(shù)據(jù)規(guī)模小型到中等,希望使用較小資金投入、以輕客戶端或Web方式訪問(wèn)和管理空間數(shù)據(jù)的集成應(yīng)用項(xiàng)目,以及易于使用SDO_GEOMETRY的SQL方法和算子進(jìn)行描述的空間數(shù)據(jù)應(yīng)用項(xiàng)目。
[1]The reference of Oracle spatial,http://www.oralce.com
[2]雷英杰,王濤.一種Oracle空間數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn).計(jì)算機(jī)工程與應(yīng)用,2002,38(13)
[3]西安市勘察測(cè)繪院地理信息中心.西安市規(guī)劃用地檔案管理信息系統(tǒng)需求分析
[4]西安市勘察測(cè)繪院地理信息中心.西安市規(guī)劃用地檔案管理信息系統(tǒng)概要設(shè)計(jì)
[5]西安市勘察測(cè)繪院地理信息中心.西安市規(guī)劃用地檔案管理信息系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
[6]馬奎,李宏偉,李勤超等..NET下基于OO4O核心的Oracle Spatial空間數(shù)據(jù)互操作[J].計(jì)算機(jī)應(yīng)用,2009,29 (z1)
[7]汪斌,周曉光,蔣捷,朱建軍.基于OO4O和Visual C++6.0實(shí)現(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—)男,高級(jí)工程師、軟件系統(tǒng)分析師,從事遙感與GIS應(yīng)用項(xiàng)目開發(fā)與管理。