李飛
(山東省國土測繪院,山東 濟南 250102)
地名地址數據[1-3]是政務信息與地理信息聯系的載體,是人們工作、生活不可或缺的內容,是“智慧城市”框架數據建設的重要組成部分[4-5]。隨著地理信息公共服務平臺應用的日益廣泛和深入,對平臺各類數據,尤其是地名地址數據的現勢性和準確性提出了越來越高的要求,同時為了節省財政資金,提高地名地址數據采集更新的效率,減少省市數據融合工作,使數據能夠快速上圖,對地名地址數據的作業模式也提出了新的挑戰[6-8]。
目前,地名地址數據采集更新工作大多是將作業區進行簡單的網格劃分,作業人員利用紙質底圖外業進行數據采集更新,然后內業進行數據匯總和數字化,這種方式存在采集效率低、實時性差、定位精度差、準確率低、資源浪費大等問題[9-11],同時也不利于數據上圖發布。
因此,為了解決傳統地名地址數據采集更新工作中存在的問題,提高數據采集更新的效率和準確度,該文提出了一種基于移動GIS技術的地名地址數據采集和更新方法,建立了地名地址數據采集更新的內外業一體化作業流程,利用“天地圖·山東”地圖服務、數據服務及二次開發API,設計并實現了地名地址數據采集系統。
系統采用B/S架構設計,分為數據層、中間層和應用層3層框架體系(圖1)[12-14]。
(1)數據層主要負責數據的存儲和管理,包括地名地址基礎數據庫、地名地址下發數據庫、瓦片緩存庫、文件庫等。地名地址基礎數據庫即山東省已有的地名地址數據庫,其由基礎測繪、導航、國情、及時更新、市縣大比例尺數據及其他合作部門(如民政、信用等)的多源數據融合而成。地名地址下發數據庫即根據市縣范圍從地名地址基礎據庫中抽取的需要各市縣采集更新的數據庫。
(2)中間層提供了系統的開發框架及所必需的中間件,包括“天地圖·山東”提供的地圖服務、開發API,Android開發框架,.Net平臺提供的asp框架和WebService服務,Oracle Spatial空間數據庫引擎和SqlLite數據引擎等。
(3)應用層主要負責系統業務功能及界面的實現,包括手機或平板等移動終端的數據采集和Web端的業務管理功能。

圖1 系統總體框架圖
地名地址采集系統分為Web端地名地址數據管理子系統和移動端地名地址數據采集APP兩部分(圖2)。

圖2 系統功能結構圖
(1)Web端地名地址數據管理子系統主要包括項目管理、任務管理、內業核查、數據質檢、統計分析和系統管理等功能模塊。
項目管理模塊包括創建項目、數據抽取建庫、數據下載和數據更新。其中數據抽取建庫是通過行政區劃自動提取區劃范圍、手動在地圖上繪制范圍、導入shp數據范圍等方式,利用空間分析服務從地名地址基礎數據庫抽取數據建立下發數據庫。任務管理模塊提供任務區網格劃分、任務分配和任務編輯等功能。內業核查模塊主要用于對外業上報數據進行數據組合查詢、數據編輯及數據核查功能。數據質檢模塊主要是提交的任務數據進行質量檢查,包括數據審核、數據批量退回、照片核驗和外業核查等功能。統計分析模塊包括進度統計、任務統計、數據預覽、報表輸出等功能。系統管理模塊提供用戶管理、權限管理、通知公告管理和日志管理等系統維護管理功能。
(2)移動端地名地址數據采集APP包括任務列表、數據采集、GIS功能和其他輔助功能模塊。
任務列表模塊包括任務查詢、任務下載及任務更新功能。用戶登錄移動端APP后,如果網絡處于連通狀態,將從Web端服務器下載最新的任務列表信息,并將每個任務項與本地緩存的任務數據進行比對,如果本地沒有緩存任務數據,任務項提示該任務需要下載,如果服務器任務的版本號大于本地任務緩存版本號,任務項將提示該任務數據有更新,需更新任務數據。
數據采集模塊是移動端地名地址數據采集APP的核心模塊,包括數據查詢、數據采集與更新、拍攝照片、數據離線保存和數據上傳等功能。數據查詢有分類查詢、組合查詢、最小距離查詢等多種查詢方式,并可將查詢結果進行匯總統計,統計出當前未核查、已核查、已上傳、新增等狀態下的地名地址數據量。數據采集與更新提供了地名地址數據的采集、更新和編輯,同時為了方便作業員進行野外作業,還提供了復制上一條道路記錄、復制上一條位置記錄、復制上一張地名照片記錄、復制上一張地址照片記錄等操作。
GIS功能模塊提供了地圖放大、縮小、平移、旋轉、矢量影像地圖切換、地名注記層開啟/關閉等地圖操作,GPS定位、跟隨、導航等定位操作,地圖矢量數據下載、更新,影像柵格瓦片的下載等功能。
其他輔助功能主要是為了方便作業員工作而設計的系統輔助功能,包括用戶登錄和記住密碼,地圖緩存、柵格瓦片、采集照片和任務數據等數據的清除,道路、字典等服務器數據和APP軟件的版本檢測,任務地圖下載開啟/關閉和GPS定位開啟/關閉等系統設置功能。
地名地址采集更新工作主要涉及地理空間數據、地圖數據、業務數據、文檔圖片數據以及臨時離線緩存數據,為了有效存儲和使用系統中的數據,系統采用Oracle11G數據庫、Sqlite數據庫和文件庫等多庫相結合的方式進行管理[15-17]。其中Oracle11G數據庫主要用來存儲空間數據、地名地址數據及業務數據,如項目表、項目任務表、地名地址數據表、道路表、字典表等,表1給出了Oracle11G存儲的地名地址數據表結構。Sqlite數據庫用來存儲和管理移動端APP離線緩存的地名地址數據和瓦片索引數據,文件庫用來存儲和管理矢量地圖數據、影像瓦片數據、拍攝的照片數據和其他文件資料數據等。

表1 地名地址數據結構
地名地址數據外業調查工作一般采用掃街式調查方式,即外業員沿著道路單側逐個進行外業調查,如果下發任務數據中不存在該數據,則進行數據采集,已存在則進行數據更新及核查。考慮到作業員對任務區實地情況熟悉程度各異,以及作業規則與實地情況的切合度,多個作業員分別作業時會存在數據采集重復或沒有采集等問題,如果對任務區進行正方形或矩形網格劃分的話,也不利于已有數據的核查,尤其是小區內部樓棟、醫院內部樓棟、學校內部樓棟和道路等信息。為了解決地名地址數據外業調查中存在的多作業員采集重復數據,因任務區劃分而導致的數據采集困難、效率低下的問題,該文提出了一種基于道路的地名地址數據采集更新方法,主要包括:
(1)對所有道路進行唯一性編碼,將所有需要更新的地名地址數據都綁定一條所屬道路。
(2)以道路中心線為基準劃分網格即任務區,利用裁剪、疊置分析等手段將道路及其所屬的地名地址信息都劃定到任務區內。
(3)基于作業員外業進行數據采集更新時選定作業的道路和方向,利用GPS定位、混合網絡定位等手段,將核查數據以距離當前定位點由近及遠依次排序。
(4)通過選取任務區、道路等信息,對采集數據進行內業核查和數據質檢。
地名地址數據采集更新工作一般是以市縣為項目作業區,而對于整個作業區來講,數據量大,需要多名作業員聯合來完成數據的采集更新工作,因此為了更好的管理作業員的工作進度及數據質量,需要建立一種新的地名地址數據管理體系。
該文以地名地址數據采集更新任務為中心,利用WebService、版本控制、數據緩存、異步上傳等技術手段,通過任務的預處理、任務的下發、任務下載和更新、任務數據的外業采集和內業核查、任務質檢、任務提交和數據發布等作業流程,建立了以任務為核心的數據管理模式,實現了地名地址數據的內外業一體化管理,具體流程如圖3所示。
(1)進行任務數據的預處理,以全省的地名地址數據庫作為基礎庫,通過項目區范圍從基礎庫中提取范圍區已有的地名地址數據,將其作為本項目區本次進行地名地址數據采集更新工作的下發數據庫。
(2)綜合考慮下發數據庫的數據量、數據整體分布情況及作業人員數量,劃定任務區范圍。
(3)作業員通過手機或平板安裝地名地址采集系統APP,進行數據采集更新工作。
(4)作業員上傳任務區已完成數據,由內業人員進行數據核查,并將不符合要求的數據退回到外業流程,由外業人員重新核查。
(5)任務區數據全部內業核查結束,提交質檢人員,進行數據質檢,并對不符合要求的任務區數據全部或部分退回,重新進行外業采集或內業核查。
(6)任務數據通過質檢,將新的成果數據更新至地名地址基礎庫,并發布上圖。

圖3 以任務為核心的數據管理流程圖
針對地名地址數據采集過程中定位精度差、準確率低、數據質量不理想等問題,該文利用移動GIS、GPS/北斗定位、圖像識別、遙感等技術,通過采集位置上報、影像判斷、照片比對、時空分析、實地抽查等手段,建立了地名地址數據采集動態監管模式(圖4),實現了地名地址數據采集全過程全方位的動態監管,主要包括外業采集上報監管、采集移動軌跡監管、內業核查監管和質量檢查監管四部分。
(1)外業采集上報監管。地名地址數據采集上報時,需要上報采集點位置、數據點位置和現場照片的位置等空間信息,數據采集時間、照片拍攝時間以及數據上傳時間等時間信息,以及地名地址所屬區劃、所在道路及門牌號等屬性信息,結合外業調查上報時,作業員的行走速度等因素,進行3個上報位置容差比對、3個時間的對比、位置與所屬道路比對、上報名稱和拍攝照片文字識別內容比對,實現對地名地址數據采集上報進行監管,準確掌握外業調查時上報的時空信息,為地名地址數據的內業核查和質量檢查提供基礎支撐。
(2)采集移動軌跡監管。由于作業員進行數據采集的過程是沿道路單向進行采集,且每次采集都會記錄位置軌跡,根據軌跡的方向和位置間的規律性,以道路數據為基礎,結合軌跡坐標和上報位置匹配,有效避免了采集工作不準確的情況。
(3)內業核查監管。在地名地址數據內業核查過程中,按照數據完整性、一致性、準確性等特點,對照片拍攝的清晰度和角度、外業上報屬性信息、照片文字等信息進行核查,同時結合遙感影像,對數據點位置及照片位置再次進行比對,人工判讀該次采集工作是否屬實,為采集結果的真實性提供了保障。
(4)質量檢查監管。在數據質檢過程中,質檢員嚴格執行“兩級檢查、一級驗收”制度,對任務數據進行質量控制,并按照數據抽查要求,抽取對應比例的數據進行實地核查,以驗證數據的準備和真實。

圖4 地名地址數據采集動態監管模式圖
目前衛星影像地圖在移動GIS領域訪問方式主流仍為網絡瓦片請求,每張瓦片大小一般30k以上,數據量比較大,訪問過的地區重復訪問仍需請求網絡數據;如果服務器衛星影像地圖更新,需將請求的最新影像地圖瓦片更新。同時為了滿足野外數據采集的需求,往往需要將預先到達的區域衛星影像地圖緩存到本地,以免受到手機網絡不好等條件影響。因此需要建立一套移動GIS平臺下瓦片地圖自動緩存機制。
該文基于“天地圖·山東”地圖瓦片切片規則,以層級-行列號為索引組織結構建立了瓦片數據存儲模型,通過預緩存、實時緩存、更新緩存等多種緩存方法,利用Sqlite數據庫及文件相結合的方式進行瓦片存儲和管理,實現移動GIS平臺下瓦片地圖數據的自動緩存(圖5)。

圖5 地圖數據緩存流程圖
該系統采用B/S架構設計,Web端采用.Net開發框架,使用C#+JavaScript的開發模式進行開發,實現了地名地址數據管理子系統。APP端基于Eclipse開發環境,采用Java開發語言,利用“天地圖·山東”Android版API開發實現了移動端地名地址采集系統APP。地名地址采集系統Web端運行在普通PC上即可,APP端需運行在Android4.0版本以上系統中。
系統效果圖如圖6至圖9所示,圖6為添加任務界面,實現任務屬性信息的輸入、作業員的下拉選取以及任務區的繪制和編輯。圖7為采集任務詳情界面,實現了該任務區數據的檢索、分類統計、地圖定位展示等功能。圖8為外業地名地址數據采集更新界面,實現了地名數據三級分類的下拉選擇、所屬道路的選擇,名稱、地址、電話、門牌號、內部樓號等信息的輸入,地名照片、地址照片的拍攝,位置的地圖采集和編輯等功能。圖9為內業核查集界面,選擇任務區、所屬道路、類別、狀態或者輸入地名信息,點擊搜索按鈕,彈出地名地址數據單條記錄的內業核查界面,核查人員可對基本信息進行修改和完善,位置信息進行二次編輯,照片信息進行核查等。
為了檢驗改善的采集方法,在泰安市選取了主城區和郊區等作業區域,分別采用3種不同的采集方式作業。通過實際作業驗證,相較于傳統的數據采集更新方法,本系統所采用的地名地址數據采集更新方法減少了作業員選取或查找調查點的時間,提高了作業的效率。同時對于新增的地名地址數據,也只需在對應的數據間插入即可,減少了位置點確認的時間(表2)。

圖6 添加任務界面

圖7 采集任務詳情界面

圖8 外業采集界面

圖9 內業核查界面

外業采集方式作業方法作業區域作業點數/天作業區熟悉度對作業效率的影響傳統數據采集利用紙質地圖劃分網格,拿圖紙進行外業采集主城區,200郊區,100~150較大矩形劃分網格式采集利用采集系統劃分矩形網格,手持采集APP進行外業采集主城區,300~350郊區,200~250適中基于道路的地數據采集利用采集系統以道路中心線劃分網格,手持采集APP進行外業采集主城區,400~500郊區,300~350較小
系統成功應用于山東省地名地址數據采集與更新工作中。2018年,利用該系統已順利完成了濟南、泰安、威海、棗莊、濟寧、東營等6個地市的地名地址數據采集工作,累計采集更新25萬條地名地址數據,將市縣核心城區的數據更新效率提升至月級別,重點類地名地址信息更新效率提升至周級別,數據準確度提高至99.99%,極大提高了數據采集更新效率和準確度,保障了地理信息公共服務平臺數據時效性和準確性,提高了山東省地理信息公共服務平臺的影響力。
該文根據實際采集需求,提出了新型的數據采集更新方法,改善了地名地址數據傳統采集方式,提高了采集效率,設計了以任務為核心的內外業一體化流程,創新了數據采集監管模式,實現了地名地址數據實時監督管理,保證了采集數據的時效性和準確性,利用移動GIS技術、計算機技術、GPS技術、圖像識別等技術,依托“天地圖·山東”提供的地圖數據資源和開發API,開發了山東省地名地址采集系統,滿足了“天地圖·山東”地名地址數據建設的要求,在實際應用中取得豐碩成果,具有較高的推廣應用價值。實踐證明,利用本系統進行地名地址采集與更新工作,推動了“天地圖·山東”地名地址數據的建設,對促進智慧城市的發展有重要意義。