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