王 海,姚金明
(1. 濟(jì)南市勘察測繪研究院,山東 濟(jì)南 250101;2. 山東省國土測繪院,山東 濟(jì)南 250102)
地理信息智能化服務(wù)的新時(shí)代即將到來[1-2],人們對數(shù)據(jù)現(xiàn)勢性和內(nèi)容豐富性提出了更高的要求[3]。傳統(tǒng)更新模式已不能滿足更新頻率和質(zhì)量控制要求,迫切需要優(yōu)化生產(chǎn)技術(shù)流程和采用更先進(jìn)的更新理念[4-12]。本文在山東省地理信息公共服務(wù)平臺(以下簡稱平臺)框架數(shù)據(jù)更新工作中,探索了一種地理空間數(shù)據(jù)在線協(xié)同更新方法,以實(shí)現(xiàn)地理空間數(shù)據(jù)多用戶在線更新、用戶編輯權(quán)限可控和編輯操作過程可追溯。
平臺框架要素?cái)?shù)據(jù)包括水系、道路、居民地、境界、植被等,比例尺主要為1∶10 000、1∶50 000,是在基礎(chǔ)地理信息數(shù)據(jù)庫的基礎(chǔ)上,通過要素選取、地理對象構(gòu)建、數(shù)據(jù)融合等技術(shù)手段生產(chǎn)而成的。傳統(tǒng)的省級地理空間框架要素?cái)?shù)據(jù)更新首先根據(jù)發(fā)生變化的范圍,從源數(shù)據(jù)中裁切出待更新數(shù)據(jù);所有待更新數(shù)據(jù)更新完成后,再與原始數(shù)據(jù)中未發(fā)生變化的區(qū)域進(jìn)行接邊處理;最終對地理空間框架數(shù)據(jù)進(jìn)行更新。假如發(fā)生變化的范圍很多或很零散,后期數(shù)據(jù)接邊工作將耗費(fèi)大量的時(shí)間和精力;且接邊操作易出現(xiàn)拓?fù)溴e(cuò)誤,用戶編輯權(quán)限不好控制,更新質(zhì)量無法追溯[13]。因此,本文提出了一種基于編輯權(quán)限分配的地理空間數(shù)據(jù)在線協(xié)同更新方法,利用ArcSDE 版本管理機(jī)制實(shí)現(xiàn)多用戶、在線協(xié)同編輯操作,依托關(guān)系型數(shù)據(jù)庫的權(quán)限管理機(jī)制授予(或收回)編輯用戶框架要素?cái)?shù)據(jù)的select、insert、update、delete 權(quán)限,研發(fā)Add-in插件記錄用戶編輯操作,控制用戶字段編輯權(quán)限。具體工作流程為[14]:①將框架要素?cái)?shù)據(jù)中的居民地、交通、水系、境界等數(shù)據(jù)導(dǎo)入ArcSDE 數(shù)據(jù)庫,并注冊為版本;②通過管理端應(yīng)用程序創(chuàng)建編輯作業(yè)小組,分別授予其數(shù)據(jù)查看、編輯權(quán)限,并為有編輯權(quán)限的作業(yè)小組,配置各要素?cái)?shù)據(jù)的字段編輯權(quán)限,增加、刪除、修改作業(yè)員用戶(用戶名以作業(yè)員漢語拼音全拼命名,重名用戶在全拼后加01、02 進(jìn)行區(qū)分);③在作業(yè)員機(jī)器安裝地理空間框架要素?cái)?shù)據(jù)更新插件;④作業(yè)員在ArcMap 中加載現(xiàn)勢性好的WMTS影像地圖服務(wù),作為地理空間框架要素?cái)?shù)據(jù)更新的參考底圖;⑤作業(yè)員及時(shí)保存更新成果,若出現(xiàn)沖突,先協(xié)調(diào)沖突再提交;⑥定期對地理空間框架要素?cái)?shù)據(jù)庫進(jìn)行版本壓縮、更新統(tǒng)計(jì)信息和重建索引等操作,以提高數(shù)據(jù)庫性能(圖1)。
圖1 多用戶在線協(xié)同更新工作流程圖
ArcSDE 采用版本管理機(jī)制為長事務(wù)處理提供了底層支持,并結(jié)合ArcMap 等可視化編輯工具,為多用戶編輯并發(fā)控制提供了解決方案。本文基于ArcSDE+Oracle 數(shù)據(jù)庫實(shí)現(xiàn)地理空間框架要素?cái)?shù)據(jù)的多用戶在線協(xié)同更新,將待更新的框架要素?cái)?shù)據(jù)導(dǎo)入Arc-SDE數(shù)據(jù)庫,并注冊為版本,基版本為Default。假設(shè)有兩名作業(yè)員負(fù)責(zé)平臺框架要素?cái)?shù)據(jù)更新,則兩個(gè)關(guān)系型數(shù)據(jù)庫用戶user1、user2 分別對Default 版本框架要素?cái)?shù)據(jù)進(jìn)行更新,若對同一要素進(jìn)行修改,則保存編輯時(shí)會(huì)發(fā)生沖突,需經(jīng)沖突協(xié)調(diào),再將修改結(jié)果提交到Default中;若編輯操作沒有沖突,則直接提交到Default中[15]。
本文利用C#+ArcObject 類庫研發(fā)管理端應(yīng)用程序,實(shí)現(xiàn)編輯用戶分組管理和編輯權(quán)限控制。首先對現(xiàn)有作業(yè)人員進(jìn)行分組,依托Oracle 數(shù)據(jù)庫的庫表(要素類)權(quán)限管理能力授予/收回作業(yè)小組的數(shù)據(jù)查看(select)、數(shù)據(jù)編輯(insert、update、delete)權(quán)限,并記錄在表1 中,被授予數(shù)據(jù)編輯權(quán)限的作業(yè)小組將自動(dòng)授予其數(shù)據(jù)查看權(quán)限,且管理端應(yīng)用程序可按作業(yè)小組設(shè)置數(shù)據(jù)不可編輯字段,與Add-in插件配合實(shí)現(xiàn)作業(yè)小組成員字段級編輯權(quán)限控制;然后根據(jù)作業(yè)員分組情況,管理端應(yīng)用程序可新增、更新、刪除各作業(yè)小組的作業(yè)員用戶,程序?qū)⒆詣?dòng)按照作業(yè)員用戶所在作業(yè)小組的編輯權(quán)限分別授予或收回其數(shù)據(jù)查看、數(shù)據(jù)編輯權(quán)限,同時(shí)更新作業(yè)員用戶信息表(表2)。
表1 作業(yè)小組權(quán)限表
表2 作業(yè)員用戶信息表
ArcGIS Add-in 是為完成自定義任務(wù)而開發(fā)的插件、擴(kuò)展、應(yīng)用程序集或工具欄等,可用于ArcMap、ArcCatalog 等桌面應(yīng)用程序[16]。本文中的Add-in 插件通過擴(kuò)展ArcMap 實(shí)現(xiàn)作業(yè)員用戶登錄和編輯操作記錄功能[17]。首先將Add-in 插件入口函數(shù)綁定ArcMap.Events.NewDocument、ArcMap.Events.OpenDocument 事件,并在NewDocument、OpenDocument事件函數(shù)打開用戶登錄模式窗口,Add-in插件將作業(yè)員輸入的登錄信息與作業(yè)員信息進(jìn)行校驗(yàn),校驗(yàn)成功則進(jìn)入Arc-Map,同時(shí)Add-in 插件將通過訪問表1、表2 獲取該作業(yè)員的數(shù)據(jù)編輯權(quán)限,校驗(yàn)失敗則強(qiáng)制退出并關(guān)閉ArcMap;然后在作業(yè)員用戶編輯數(shù)據(jù)時(shí),Add-in 插件通過監(jiān)聽ArcMap 的OnCreateFeature、OnChangeFeature 和OnDeleteFeature 事件自動(dòng)記錄進(jìn)行編輯操作的作業(yè)員姓名、操作時(shí)間、操作類型等(如張三20200405A、李四20200406U,A 表示新增要素操作,U 表示更新要素操作),并保存到被編輯要素?cái)?shù)據(jù)的editRecord 字段中,作業(yè)員進(jìn)行刪除操作時(shí),則從數(shù)據(jù)庫直接刪除該要素,Add-in 插件不做任何記錄,若作業(yè)員對無編輯權(quán)限的要素字段進(jìn)行編輯,該要素字段值不變,Add-in 插件也不做任何記錄。
平臺框架要素?cái)?shù)據(jù)及時(shí)更新實(shí)踐表明,該方法可顯著提升地理空間數(shù)據(jù)更新效率和質(zhì)量,具有編輯用戶可增刪、編輯權(quán)限可控、質(zhì)量可追溯的優(yōu)點(diǎn)。首先,框架要素?cái)?shù)據(jù)存儲于ArcSDE 數(shù)據(jù)庫中,可利用關(guān)系型數(shù)據(jù)庫的用戶管理機(jī)制,按需動(dòng)態(tài)增刪用戶,實(shí)現(xiàn)多用戶、高并發(fā)實(shí)時(shí)在線編輯;其次,對入庫后的地理空間數(shù)據(jù)賦予用戶查看(select)、編輯(insert、update、delete)權(quán)限,可對同時(shí)具有查看和編輯權(quán)限的用戶設(shè)置不可編輯的字段,并借助Add-in插件實(shí)現(xiàn)字段級編輯權(quán)限控制,便于將作業(yè)人員分組并賦予不同編輯權(quán)限,保障數(shù)據(jù)安全;再次,利用Add-in插件技術(shù)記錄用戶編輯操作,實(shí)現(xiàn)編輯結(jié)果可追溯。地理空間數(shù)據(jù)離線編輯、成果在線匯交、多庫聯(lián)動(dòng)更新等方法還有待于進(jìn)一步研究,以提升省市數(shù)據(jù)融合、框架要素?cái)?shù)據(jù)及時(shí)更新工作效率,保障平臺數(shù)據(jù)資源準(zhǔn)確、鮮活。