鄧意媛
摘 要 為了提高土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新工作的效率,本文在分析土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新工作現(xiàn)狀的基礎(chǔ)上,結(jié)合MapGIS10 Objects開發(fā)技術(shù)流程,在.NET Framework框架下應(yīng)用C#語(yǔ)言開發(fā)定制了土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新前后面積的快速對(duì)比工具。通過實(shí)際應(yīng)用,同以往手動(dòng)一一比對(duì)地塊去進(jìn)行規(guī)劃面積核查相比,大大縮短了工作時(shí)間。
關(guān)鍵詞 MapGIS10 Objects開發(fā);土地利用總體規(guī)劃;數(shù)據(jù)庫(kù);增量更新;面積快速對(duì)比
中圖分類號(hào):P208 文獻(xiàn)標(biāo)識(shí)碼:A
Application of MapGIS10 Objects in Updating Database of Land Use Overall Planning
Deng Yiyuan
(The Third Surveying and Mapping Institute of Hunan Province, Changsha Hunan 410114)
Abstract: In order to improve the efficiency of land use overall planning database incremental update work, the current status of land use overall planning database incremental update work was analyzed as thebase of thestudy. MapGIS10 Objects development technology process was combined, and C # language is developed under the .NET Framework to customize the rapid comparison of the area before and after land use overall planning database incremental update tool. Through practical application, compared with the manual verification of planned area in the past, the working time is greatly shortened.
Keywords: MapGIS10 Objects development; land use overall planning; database; incremental update; quick comparison of area
土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新是在一定區(qū)域范圍內(nèi),按照經(jīng)濟(jì)發(fā)展的前景和需要,對(duì)土地的合理使用所做出的安排。對(duì)于規(guī)劃的局部調(diào)整和修改,鄉(xiāng)鎮(zhèn)級(jí)土地利用總體規(guī)劃數(shù)據(jù)庫(kù)修改采用日常更新模式,按照增量更新調(diào)整和修改的具體審批業(yè)務(wù),以單個(gè)項(xiàng)目來(lái)進(jìn)行數(shù)據(jù)更新[1],同按縣整庫(kù)進(jìn)行修改相比,可在很大程度上減少工作量,大大縮短更新數(shù)據(jù)的時(shí)間。目前,鄉(xiāng)鎮(zhèn)級(jí)土地利用總體規(guī)劃數(shù)據(jù)庫(kù)修改的總體流程是縣局通過遠(yuǎn)程報(bào)卷系統(tǒng)上傳規(guī)劃修改批準(zhǔn)文件與方案以及規(guī)劃修改成果更新包,由自然資源廳空間規(guī)劃局審批,增量更新包數(shù)據(jù)庫(kù)質(zhì)量檢查由第三測(cè)繪院進(jìn)行技術(shù)審核,項(xiàng)目審批完成后,通過中地公司提供的規(guī)劃更新批量入庫(kù)工具,調(diào)用湖南省國(guó)土空間基礎(chǔ)信息平臺(tái)數(shù)據(jù)庫(kù),進(jìn)行規(guī)劃數(shù)據(jù)庫(kù)在線更新,更新好的數(shù)據(jù)庫(kù)成果直接在湖南省國(guó)土空間基礎(chǔ)信息平臺(tái)發(fā)布,用于輔助省廳各項(xiàng)業(yè)務(wù)審批。國(guó)土、測(cè)繪等部門長(zhǎng)期進(jìn)行土地規(guī)劃數(shù)據(jù)的獲取、存儲(chǔ)、編輯、更新、匯總及分發(fā)工作,為各行業(yè)提供數(shù)據(jù)服務(wù)。該項(xiàng)工作離不開地理信息系統(tǒng)軟件平臺(tái)的支持,如MapGIS、SuperMap、ArcGIS、MapInfo等。其中,MapGIS是中國(guó)地質(zhì)大學(xué)開發(fā)的通用工具型地理信息系統(tǒng)軟件,尤其在制作具有出版精度的十分復(fù)雜的地質(zhì)圖和地形圖方面優(yōu)勢(shì)突出,廣泛應(yīng)用于各行各業(yè),最新版本為MapGIS 10.3。
MapGIS 10.3桌面二次開發(fā)架構(gòu)提供了兩套開發(fā)思路。第一,基于MapGIS基礎(chǔ)的二次開發(fā)庫(kù),在.NET Framework框架上構(gòu)建應(yīng)用系統(tǒng),即Objects開發(fā);第二,也是基于MapGIS基礎(chǔ)二次開發(fā)庫(kù),在MapGIS插件框架上,采用“框架+插件”模式構(gòu)建應(yīng)用系統(tǒng),即插件式開發(fā)[2]。在日常進(jìn)行的土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新工作中,如何保證提交的增量更新包更新的正確性,做到更新圖斑不重不漏,需要核對(duì)更新變更前所有圖斑的面積之和與變更后所有圖斑的面積之和是否一致。以往只能在MapGIS桌面軟件中一一手動(dòng)核查,費(fèi)時(shí)費(fèi)力不說(shuō)還可能出錯(cuò)。鑒于此,利用MapGIS桌面二次開發(fā)架構(gòu),實(shí)現(xiàn)增量更新前后圖斑面積的自動(dòng)快速對(duì)比無(wú)疑是一種好的解決方案。因此本文采用MapGIS 10 Objects開發(fā),在分析了解土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新工作現(xiàn)狀的基礎(chǔ)上,利用C#語(yǔ)言在.NET Framework框架下通過MapGIS10 Objects API實(shí)現(xiàn)了土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新中因地塊變動(dòng)引起面積變動(dòng)的快速對(duì)比。在實(shí)際應(yīng)用中,節(jié)約了土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新的工作時(shí)間,提高了工作效率。
1? 土地利用總體規(guī)劃數(shù)據(jù)庫(kù)調(diào)整更新工作現(xiàn)狀
土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新日常工作流程中的圖形數(shù)據(jù)檢查主要分為五個(gè)方面,第一,接收土地利用規(guī)劃數(shù)據(jù)庫(kù)增量更新包,命名必須為增量更新成果,格式為MapGIS數(shù)據(jù)庫(kù)文件(*.HDF);第二,附加數(shù)據(jù)庫(kù)文件到MapGIS本地工作空間,獲取圖形數(shù)據(jù)(共包含8個(gè)簡(jiǎn)單要素類圖層),見表1;第三,對(duì)各圖層進(jìn)行坐標(biāo)系、拓?fù)潢P(guān)系、圖形參數(shù)、符號(hào)庫(kù)及中英文對(duì)應(yīng)字段檢查;第四,地塊面積檢查,根據(jù)地塊標(biāo)識(shí)碼同原始土地規(guī)劃數(shù)據(jù)的圖層內(nèi)容進(jìn)行面積對(duì)比,面積對(duì)比結(jié)果在允許容差范圍內(nèi)即通過檢查,否則不予通過;第五,圖形數(shù)據(jù)的必填字段檢查。只有圖形數(shù)據(jù)檢查全部通過后才可開展下一步的數(shù)據(jù)更新工作。
本文針對(duì)土地利用總體規(guī)劃數(shù)據(jù)庫(kù)更新日常工作流程中圖形數(shù)據(jù)檢查的第四步,實(shí)現(xiàn)土地利用總體規(guī)劃數(shù)據(jù)庫(kù)更新前后地塊面積的快速對(duì)比。土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新包中每類數(shù)據(jù)分為更新過程圖層和更新結(jié)果圖層,更新過程圖層記錄了地塊調(diào)整的變化。數(shù)據(jù)對(duì)應(yīng)關(guān)系為:更新過程圖層的變更前標(biāo)識(shí)碼字段(BGQBSM)對(duì)應(yīng)原始規(guī)劃數(shù)據(jù)圖層的標(biāo)識(shí)碼字段(BSM),更新過程圖層的變更后標(biāo)識(shí)碼字段(BGHBSM)對(duì)應(yīng)更新圖層的標(biāo)識(shí)碼字段(BSM)。地塊變更前后面積變動(dòng)的對(duì)比:更新圖層中所有要素面積求和同原始規(guī)劃數(shù)據(jù)圖層中提取出現(xiàn)在更新過程圖層的地塊面積之和進(jìn)行對(duì)比,面積比對(duì)結(jié)果在允許容差范圍內(nèi)的更量增新包可進(jìn)行下一步的更新工作。通過手動(dòng)去打開各數(shù)據(jù)圖層進(jìn)行面積核查工作,不僅耗時(shí)耗力,還很容易出錯(cuò)。因此通過MapGIS10 Objects二次開發(fā)去完成土地利用總體規(guī)劃數(shù)據(jù)庫(kù)更新前后面積的快速對(duì)比,可以很大程度提高工作效率。
2 面積快速對(duì)比設(shè)計(jì)及實(shí)現(xiàn)
土地利用總體規(guī)劃數(shù)據(jù)庫(kù)調(diào)整前后面積快速對(duì)比工具的完成可分為三個(gè)步驟,第一,部署MapGIS10 Objects開發(fā)環(huán)境;第二,設(shè)計(jì)面積快速對(duì)比技術(shù)流程;第三,技術(shù)流程的代碼實(shí)現(xiàn)。
2.1 部署MapGIS10 Objects開發(fā)環(huán)境
要進(jìn)行MapGIS10 Objects二次開發(fā),需要先在司馬云上升級(jí)成為開發(fā)者,開發(fā)授權(quán)類型有基礎(chǔ)開發(fā)授權(quán)和高級(jí)開發(fā)授權(quán)。其中,基礎(chǔ)開發(fā)授權(quán)不能進(jìn)行空間數(shù)據(jù)庫(kù)和三維開發(fā),對(duì)HDF數(shù)據(jù)庫(kù)文件的大小也有限制(≤256 M),考慮到土地利用規(guī)劃增量更新包的實(shí)際大小,故只需要獲取簡(jiǎn)單的基礎(chǔ)開發(fā)授權(quán)。開發(fā)授權(quán)獲取后需注冊(cè)到系統(tǒng)注冊(cè)表中,同時(shí)安裝MapGIS 10 X64桌面開發(fā)包并完成MapGIS插件(自動(dòng)選取IDE)配置,就完成了整個(gè)MapGIS10 Objects開發(fā)環(huán)境部署。
2.2 面積快速對(duì)比技術(shù)流程
面積快速對(duì)比的技術(shù)流程如圖1所示。
流程實(shí)現(xiàn)思路:
1)附加土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新包(*.HDF)到MapGIS本地工作空間,獲取圖形數(shù)據(jù),分別建立更新過程圖層列表和更新圖層列表;
2)選取一類更新過程圖層,獲取圖層屬性表內(nèi)容(表2展示了TDGHDLGXGC屬性表的部分內(nèi)容),建立不重復(fù)的BGQBSM字段值集,并計(jì)算出對(duì)應(yīng)的更新圖層要素面積之和,記作面積H;
3)打開原土地規(guī)劃數(shù)據(jù)圖層(*.WP),讀取Feature,遍歷找出屬性字段BSM的值同BGQBSM值集中值相符合的要素,并對(duì)要素面積進(jìn)行求和,記作面積Q;
4)比對(duì)面積H和面積Q,差值在允許范圍內(nèi),就表示該土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新包符合要求,可進(jìn)行下一步的數(shù)據(jù)更新。
2.3? 技術(shù)流程的代碼實(shí)現(xiàn)
在IDE(Visual Studio)中建立窗體工程,拖動(dòng)控件進(jìn)行界面布局。然后,按照土地利用總體規(guī)劃調(diào)整前后面積快速對(duì)比技術(shù)流程,用C#逐一實(shí)現(xiàn)每個(gè)功能。
1)附加HDF數(shù)據(jù)庫(kù)文件并獲取MapGIS本地工作空間數(shù)據(jù)源,分別通過AttachGDB()與Connect()方法實(shí)現(xiàn)。附加數(shù)據(jù)庫(kù)文件窗口如圖2所示。
2)獲取數(shù)據(jù)庫(kù)文件中的圖形數(shù)據(jù),得到更新過程圖層列表和更新圖層列表。通過OpenGDB(“數(shù)據(jù)庫(kù)名稱”)得到指定的數(shù)據(jù)庫(kù)對(duì)象,從數(shù)據(jù)庫(kù)對(duì)象的GetXclsName()方法獲取到簡(jiǎn)單要素類的圖層名,根據(jù)“GC”“GX”關(guān)鍵字對(duì)圖層進(jìn)行分類。
3)選取一類更形過程圖層,利用SFeatureCls的Open(“TDGHDLGXGC”,0)得到要素類對(duì)象,用查詢方法Select() 取得全部圖元對(duì)象RecordSet[3]。循環(huán)遍歷RecordSet,每條記錄通過Record.get_FldVal(“BGQBSM”)得到?jīng)]有重復(fù)的BGQBSM值集。
4)計(jì)算對(duì)應(yīng)更新過程圖層的更新圖層圖元面積之和。在獲取圖元對(duì)象后,利用簡(jiǎn)單要素類SFeatureCls的GetGeometry()方法得到圖元多邊形幾何實(shí)體,根據(jù)GeoPolygon.CalArea()方法累加后得到面積H。
5)打開原土地規(guī)劃數(shù)據(jù)圖層(MapGIS區(qū)文件,*.WP)[4],用SFeatureCls的Open(“file:///” + @”盤符:\數(shù)據(jù)\原土地規(guī)劃數(shù)據(jù)圖層.WP”)得到所有圖元記錄[5],逐一獲取圖元的BSM字段值,并判斷是否存在于BGQBSM值集,存在則記錄圖元的面積,最后累加得到面積Q。
6)對(duì)面積Q和面積H作減法,得到面積差,根據(jù)面積差來(lái)判別土地增量更新包的去留。
3 實(shí)際應(yīng)用與結(jié)果分析
在IDE中完成代碼編寫之后,通過編譯得到土地利用總體規(guī)劃數(shù)據(jù)庫(kù)更新增量包面積核查的可運(yùn)行文件,將其拷貝到MapGIS安裝目錄的program文件夾(“盤符:\MapGIS 10\program\”)下面,進(jìn)行授權(quán)驗(yàn)證后,打開可執(zhí)行文件exe運(yùn)行。圖3給出了選取某個(gè)土地更新增量包TDGHDLGXGC圖層進(jìn)行面積比對(duì)的結(jié)果。
從得到的面積對(duì)比結(jié)果來(lái)看,其面積差在允許容差范圍內(nèi),表示該圖層的土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新地塊面積檢查通過,可更新到土地利用總體規(guī)劃數(shù)據(jù)庫(kù)中。
4 結(jié)論
經(jīng)濟(jì)的發(fā)展離不開土地的合理使用,土地的規(guī)劃更新是為經(jīng)濟(jì)發(fā)展服務(wù)??梢哉f(shuō)土地利用總體規(guī)劃數(shù)據(jù)庫(kù)增量更新是一種有效便捷的更新方式,同傳統(tǒng)人工核查數(shù)據(jù)庫(kù)增量更新包相比,并對(duì)增量更新前后面積進(jìn)行對(duì)比的工作方式作比較,通過計(jì)算機(jī)自動(dòng)實(shí)現(xiàn)核對(duì)變更前后面積,既可杜絕人為產(chǎn)生的錯(cuò)誤,又縮短了核查時(shí)間,從而提高了工作效率。該技術(shù)方法的推廣使用可在一定時(shí)間內(nèi)提升增量更新包的核查數(shù)量,進(jìn)一步減少了數(shù)據(jù)更新的時(shí)間,將為自然資源審批業(yè)務(wù)提供有力支撐。
參考文獻(xiàn)/References
[1] 姚敏,吳洪濤,鄧頌平,等. 土地利用總體規(guī)劃數(shù)據(jù)庫(kù)更新技術(shù)研究[J]. 國(guó)土資源信息化, 2016(5):3-7.
[2] 武漢中地?cái)?shù)碼科技有限公司. MapGIS 10.3 Objects開發(fā)入門[EB/OL]. http://www.smaryun.com/dev/resource_center.html#/ type27/ tag183/ page1/ doc687, 2019.
[3] 周宇陽(yáng). 基于MapGIS 10編程輔助HNCOOR軟件轉(zhuǎn)換矢量文件坐標(biāo)系[J]. 國(guó)土資源導(dǎo)刊, 2017, 14(4): 77-80.
[4] 黃宗維,廖超明,滕永核,等. 基于MapGIS SDK的矢量數(shù)據(jù)坐標(biāo)轉(zhuǎn)換程序的設(shè)計(jì)與實(shí)現(xiàn)[J]. 地礦測(cè)繪, 2018, 34(3):1-3,7.
[5] 康承旭,汪新慶,張龍. 基于MapGIS的圖層要素符號(hào)信息提取研究[C].//第十二屆全國(guó)數(shù)學(xué)地質(zhì)與地學(xué)信息學(xué)術(shù)研討會(huì)論文集. 烏魯木齊,2013, 308-315.