莫忠榮
【摘 要】控制性詳細(xì)規(guī)劃的編制、維護(hù)與管理是一項(xiàng)基礎(chǔ)的、重要的、長期的任務(wù),隨著社會的快速發(fā)展和城鄉(xiāng)一體化進(jìn)程的加快,控制性詳細(xì)規(guī)劃的編制與審批也處于不斷深化、完善與調(diào)整的過程。如何在數(shù)據(jù)庫中記錄其變化的過程,以及在地圖顯示窗口回放歷史版本數(shù)據(jù),文章通過對ArcSde中的數(shù)據(jù)存儲進(jìn)行詳細(xì)分析,結(jié)合ArcEngine進(jìn)行必要的開發(fā),實(shí)現(xiàn)控制性詳細(xì)規(guī)劃的版本控制。
【關(guān)鍵詞】ArcSde;ArcEngine;控制性詳細(xì)規(guī)劃;版本控制
【中圖分類號】P208;TU984【文獻(xiàn)標(biāo)識碼】A 【文章編號】1674-0688(2016)01-0050-04
0 引言
控制性詳細(xì)規(guī)劃是引導(dǎo)和控制城鎮(zhèn)建設(shè)發(fā)展最直接的法定依據(jù),是具體落實(shí)城市、鎮(zhèn)總體規(guī)劃各項(xiàng)戰(zhàn)略部署、原則要求和規(guī)劃內(nèi)容的關(guān)鍵環(huán)節(jié),用以指導(dǎo)國有土地使用權(quán)的劃撥、出讓和開發(fā)建設(shè)[1]。
南寧市規(guī)劃局從2005年起,就開始了控制性詳細(xì)規(guī)劃的編制與審批,隨著控制性詳細(xì)規(guī)劃成果的不斷完善和調(diào)整,需要如實(shí)記錄并管理空間數(shù)據(jù)庫中控制性詳細(xì)規(guī)劃成果在變更、演化過程中各個階段的狀態(tài)信息,做到“編制—審批—入庫—調(diào)整再入庫”的全過程跟蹤和備案。本文結(jié)合關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Related Database Manage System,RDBMS)、地理信息系統(tǒng)(Geographic Information System,GIS)等技術(shù),利用ArcSde與ArcEngine實(shí)現(xiàn)對控制性詳細(xì)規(guī)劃——以地塊圖元為例的版本控制,有效地維護(hù)空間的完整性和時間的連續(xù)性。
1 ArcSde與ArcEngine功能介紹
1.1 ArcSde介紹
ArcSde是Arcgis的空間數(shù)據(jù)引擎,也稱空間數(shù)據(jù)加強(qiáng),采用的是客戶/服務(wù)器體系結(jié)構(gòu)。它是存儲和管理RDBMS的多用戶空間數(shù)據(jù)庫。從空間數(shù)據(jù)管理的角度看,ArcSde是一個連續(xù)的空間數(shù)據(jù)模型,借助這一空間數(shù)據(jù)模型,可以實(shí)現(xiàn)用RDBMS管理空間數(shù)據(jù)庫,改變了傳統(tǒng)的文件系統(tǒng)存儲方式,直接由空間數(shù)據(jù)庫統(tǒng)一管理,提高了數(shù)據(jù)的安全性和穩(wěn)定性。由于空間數(shù)據(jù)庫規(guī)模的擴(kuò)大、用戶數(shù)量激增及用戶需求的日益多樣性,GIS的數(shù)據(jù)處理工作流和數(shù)據(jù)共享機(jī)制需要長事務(wù)的支持,以完成數(shù)據(jù)維護(hù)人員對空間數(shù)據(jù)的編輯修改和歷史數(shù)據(jù)的回放管理。
1.2 ArcEngine介紹
ArcEngine是2004年由美國ESRI公司發(fā)布的,它提供了一系列可以在ArcGISDesktop框架之外使用的GIS組件。ArcEngine的出現(xiàn)對于需要使用ArcObjects的開發(fā)人員來說是一個福音,因?yàn)锳rcEngine發(fā)布之前,基于ArcObjects的開發(fā)只能在龐大的ArcGIS Desktop框架下進(jìn)行[2]。ArcEngine是獨(dú)立的嵌入式組件,它包括核心ArcObjects的功能,是對AO中的大部分接口、類等進(jìn)行封裝所構(gòu)成的嵌入式組件。
2 功能實(shí)現(xiàn)
2.1 創(chuàng)建空間數(shù)據(jù)庫
在oracle 10g中創(chuàng)建一個實(shí)例名為ghsde的空間數(shù)據(jù)庫,專門用以存放城鄉(xiāng)規(guī)劃數(shù)據(jù)成果,空間數(shù)據(jù)庫中的每一張表對應(yīng)著一個要素類(feature class),如Kmkg_poly存放的是控制性詳細(xì)規(guī)劃地塊圖元的空間數(shù)據(jù)和屬性。在空間數(shù)據(jù)庫中對應(yīng)的表是Kmkg_poly,存放的數(shù)據(jù)和features class相同。
2.2 版本注冊
在進(jìn)行地塊圖元的編輯前,在arccatalog中對Kmkg_poly進(jìn)行注冊版本register as versioned(如圖1所示),在上述基礎(chǔ)上再生成歷史版本控制enable archiving(如圖2所示),在ghsde空間數(shù)據(jù)庫中相對應(yīng)地生成一個Kmkg_poly_h的表。其中,該表中有2個時間點(diǎn)字段,gdb_from_date記錄的是對應(yīng)某條記錄的原始狀態(tài)時間,gdb_to_date記錄的是對應(yīng)某條記錄的修改狀態(tài)時間,在歷史版本回放的功能中,主要根據(jù)gdb_from_date與gdb_to_date來針對某地塊圖元進(jìn)行檢索回放。
2.3 地塊圖元的數(shù)據(jù)要求
為了實(shí)現(xiàn)控制性詳細(xì)規(guī)劃地塊圖元的版本控制,需要對地塊圖元進(jìn)行唯一標(biāo)識,即每個地塊圖元賦予唯一的地塊編碼,同時該地塊編碼字段要求不可空。
2.4 在空間數(shù)據(jù)庫中的體現(xiàn)
我們以地塊編碼為DJIA-157為例,分別就歷史版本控制表kmkg_poly_h、數(shù)據(jù)添加表A表、數(shù)據(jù)刪除表Delta表進(jìn)行詳細(xì)說明。
2.4.1 歷史版本控制表kmkg_poly_h
Select a.地塊編碼,a.土地使用性質(zhì)代碼,a.土地使用性質(zhì),a.shape.area,,a.gdb_from_date,a.gdb_to_date
from kmkg_poly_h a where a.地塊編碼 like 'DJIA-157',查詢結(jié)果見表1。
從表1中可以看出,地塊編碼為DJIA-157控制性詳細(xì)規(guī)劃地塊圖元從2009年9月4日到2010年7月12日期間做了2次改動,其中2010年2月22日下午16:10:17對該地塊圖元四至范圍界線進(jìn)行了修改,2010年7月12日上午11:23:33對該地塊圖元的土地使用性質(zhì)做了變更,由醫(yī)院用地調(diào)整為行政辦公用地。
當(dāng)要素類注冊版本以后,該表存儲新增加的記錄,由于DJIA-157被修改了2次,那么相應(yīng)的地圖操作也是做了2次數(shù)據(jù)的增加和刪除操作,利用sql語句對空間數(shù)據(jù)庫中的Delta表(A表\D表)查詢檢索,得出如表2、表3的結(jié)果。
2.4.2 數(shù)據(jù)添加表A表
select B.OBJECTID,b.地塊編碼,b.土地使用性質(zhì)代碼,b.土地使用性質(zhì)from a1432 b where b.地塊編碼 like 'DJIA-157';從表2可以看得出來,objectid為16963和22087的記錄是不同時間點(diǎn)新增加的數(shù)據(jù)。
2.4.3 數(shù)據(jù)刪除表D表
select * from d1432 c where c.sde_deletes_
row_id in(1161,16963);從表3可以看出,objectid為1161與16963的記錄是不同時間點(diǎn)刪除的數(shù)據(jù)。
從時間點(diǎn)上來看,1161的記錄刪除與16963的記錄增加對應(yīng)著地塊邊界的修改,16963的記錄刪除和22087的記錄增加對應(yīng)著地塊用地性質(zhì)的修改。
2.5 功能的實(shí)現(xiàn)
調(diào)用kmkg_poly_h表的歷史數(shù)據(jù),具體部分代碼如下:
ipFWS:= ipWorkspace as IFeatureWorkspace;
//直接查找此記錄編輯操作的_H表
ipFWS.OpenFeatureClass(sFtrCls-
Name+'_H',ipFtrcls);
ipFtrly:= CoFeaturelayer.create as IF
eatureLayer;
ipFtrly._Set_FeatureClass(ipFtrcls);
ipFtrly.Set_ScaleSymbols(true);
ipFtrly.QueryInterface(IID_IGeoFea-
tureLayer,ipGeoFtrly0);
iplayer:= ipFtrly as ILayer;
wsQry:=m_strDkbmField+'='''+sDkbmVal-
ue+'''andGDB_FROM_DATE=to_date('''+GDBFR-
OMDATE+''',''yyyy-mm-dd hh24:mi:ss'')';
iplayer1: = TreeNodeInfoh(Node.Data)^.ipLayer;
if iplayer1<>nil then
begin
ipFeatLy: = iplayer1 as IFeaturel-
ayer;
ipFeatLy.QueryInterface(IID_IG-
eoFeatureLayer,ipGeoFtrly1);
if ipGeoFtrly1 <> nil then
ipGeoFtrly1.Get_Renderer(ip-
FeatRenderer);
//wsQry1: = ' 地塊編碼<>'''+sDkbmValue+'''';
wsQry1 := m_strDkbmField+
'<>'''+
sDkbmValue+'''';
ipFeatLy.QueryInterface(IID
_IFeatureLayerDefinition,ipFLDef1);
ipFLDef1.Set_DefinitionExpression(wsQry1);
end;
實(shí)現(xiàn)的版本控制視圖界面如圖3所示。
通過對照圖3,我們可以很清晰地看出DJIA-157地塊圖元的歷史演變過程,如果需要對2009年9月4日的圖斑進(jìn)行重現(xiàn),直接在2009-9-4 21:22:44上點(diǎn)擊鼠標(biāo),就可以回放圖3頂端的地圖窗口,其他的時間點(diǎn)回放也是采用類似的操作。
3 結(jié)束語
依法制定和實(shí)施控制性詳細(xì)規(guī)劃,是城市、鎮(zhèn)政府的職責(zé),是城鄉(xiāng)規(guī)劃主管部門一項(xiàng)重要的日常法定工作,一經(jīng)批準(zhǔn),即對社會具有廣泛的約束力,任何單位和個人不經(jīng)法定程序,不得隨意修改經(jīng)批準(zhǔn)的控制性詳細(xì)規(guī)劃。從某種意義上說,實(shí)現(xiàn)控制性詳細(xì)規(guī)劃的版本控制,一是可以根據(jù)日志功能捕捉未經(jīng)批準(zhǔn)就進(jìn)行修改的惡意行為,二是可以保持?jǐn)?shù)據(jù)在空間上的完整性和時間上的延續(xù)性。
參 考 文 獻(xiàn)
[1]吳俐民,丁仁軍,馮亞飛,等.城市規(guī)劃信息化體系[M].成都:西南交通大學(xué)出版社,2010.
[2]李娜娜.基于ArcSDE的“數(shù)字城市”基礎(chǔ)地理空間數(shù)據(jù)庫的實(shí)現(xiàn)[J].科技信息,2011(8):247-248.
[3]吳志強(qiáng),周曉光.基于ArcSDE和ArcEngine的管道燃?xì)鈹?shù)據(jù)增量更新[J].地理信息世界,2014(2):78-83.
[責(zé)任編輯:陳澤琦]