方 川
(江蘇省基礎(chǔ)地理信息中心,江蘇 南京 210013)
為進(jìn)一步提升測繪地理信息公共服務(wù)水平和保障能力,促進(jìn)公益性地圖共建共享,實現(xiàn)地理信息優(yōu)勢資源整合互補,江蘇省開展了全省輔助決策地圖聯(lián)動更新和共建共享工作,構(gòu)建了省市縣三級聯(lián)動、按月更新、共建共享的運行機制[1]。目前,PC瀏覽器端開發(fā)的輔助決策地圖變化信息聯(lián)動系統(tǒng)實現(xiàn)了地圖聯(lián)動更新審核業(yè)務(wù)流程化管理[2],但仍存在縣級操作人員無法在外業(yè)實時標(biāo)繪變更信息(以點線面等形狀及文字表示)以及業(yè)務(wù)移動辦公不方便等問題,迫切需要開發(fā)基于移動端的系統(tǒng)來實現(xiàn)相關(guān)功能。當(dāng)前,智能手機、平板電腦等移動端設(shè)備得到迅速普及,其自身攜帶的各種傳感器和GPS模塊等使得基于移動端的應(yīng)用開發(fā)更加方便,許多學(xué)者開始研究將矢量數(shù)據(jù)加入移動端地圖應(yīng)用中。顧振雄[3]基于Leaflet在線地圖開源類庫,設(shè)計了一種基于HTML5 標(biāo)準(zhǔn)中Canvas標(biāo)簽的矢量瓦片顯示方法;劉云峰等[4]基于ArcGIS API forFlex開發(fā)出文物電子地圖系統(tǒng);袁懷月等[5]分析傳統(tǒng)B/S模式下WebGIS應(yīng)用存在的問題,提出一種基于ArcGIS Flex API技術(shù)構(gòu)建的新型WebGIS開發(fā)框架;趙汀等[6]基于WebGIS技術(shù)建立地質(zhì)遺跡數(shù)據(jù)庫及網(wǎng)絡(luò)電子地圖系統(tǒng);韓敏等[7]利用ArcGIS Server提供ADF(應(yīng)用程序開發(fā)框架),結(jié)合JavaScript和無刷新回調(diào)等技術(shù)方法完成了電子地圖開發(fā)。在借鑒其他學(xué)者研究成果的基礎(chǔ)上,本文基于天地圖提供的地圖服務(wù),結(jié)合智能語音識別、工作流引擎以及地理信息技術(shù)等,應(yīng)用Leaflet Web API開發(fā)了移動端地圖變更審核系統(tǒng),實現(xiàn)重要地理要素的智能化更新。
基于leaflet Web API開發(fā)的移動端地圖變更審核系統(tǒng),可提供地圖變化信息的增刪改、審核、上傳、下載及管理等聯(lián)動功能。系統(tǒng)的具體業(yè)務(wù)流程為:省級審核人員每月下發(fā)任務(wù);市級操作人員在縣級人員提交標(biāo)記參考的基礎(chǔ)上完成本月地圖變更信息標(biāo)記,并提交市級審核,市級審核人員完成審核后,根據(jù)審核結(jié)果提交至省級審核或駁回至市級操作;省級審核人員審核完成后,也可根據(jù)審核結(jié)果選擇通過任務(wù)或駁回任務(wù),如圖1所示。
圖1 業(yè)務(wù)流程
系統(tǒng)充分利用GPS定位、拍照、錄制視頻、錄音等移動端功能,技術(shù)架構(gòu)自頂向下設(shè)計為人機交互層、應(yīng)用功能層、服務(wù)支撐層、數(shù)據(jù)存儲層和基礎(chǔ)設(shè)施層5層技術(shù)體系,如圖2所示。
圖2 技術(shù)架構(gòu)
(1)基礎(chǔ)設(shè)施層:為系統(tǒng)提供基礎(chǔ)的軟件和硬件支撐平臺。其中,系統(tǒng)軟件分為操作系統(tǒng)軟件(Windows Server 2012及Linux Centos操作系統(tǒng))、Springboot+Python環(huán)境、關(guān)系型數(shù)據(jù)庫MySQL和非關(guān)系型數(shù)據(jù)庫Redis等;硬件設(shè)施包括數(shù)據(jù)庫服務(wù)器、應(yīng)用服務(wù)器、APP軟件掛載服務(wù)器等。
(2)數(shù)據(jù)存儲層:應(yīng)用MySQL和Redis兩種數(shù)據(jù)庫實現(xiàn)系統(tǒng)所有業(yè)務(wù)資料數(shù)據(jù)和圖片數(shù)據(jù)的存儲管理。其中,關(guān)系型數(shù)據(jù)庫MySQL用于存放用戶信息、標(biāo)記信息、附件索引信息和業(yè)務(wù)處理流程信息等,非關(guān)系型數(shù)據(jù)庫Redis用于存儲用戶的認(rèn)證授權(quán)信息和附件實體。
(3)服務(wù)支撐層:實現(xiàn)本系統(tǒng)使用的技術(shù)架構(gòu)和采用的關(guān)鍵技術(shù),為應(yīng)用功能層的各個功能模塊、業(yè)務(wù)組件起支撐和組織的作用。根據(jù)系統(tǒng)的運行特點,采用前后分離的App開發(fā)架構(gòu),使用客戶端加服務(wù)端的模式,區(qū)別于傳統(tǒng)的B/S和C/S開發(fā)模式。
(4)應(yīng)用功能層:負(fù)責(zé)處理本系統(tǒng)的所有核心業(yè)務(wù),并將業(yè)務(wù)處理結(jié)果交由人機交互層進(jìn)行可視化、交互分析等操作。主要包括:用戶管理模塊、地圖變更流程模塊、GIS可視化及編輯模塊、移動端功能調(diào)度模塊和語音識別擴展模塊等。
(5)人機交互層:用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面來使用系統(tǒng)的業(yè)務(wù)功能,系統(tǒng)的功能通過移動端App作為統(tǒng)一入口。包括:地圖展示、地理搜索、標(biāo)記編輯、任務(wù)管理和用戶管理等。
從功能模塊的角度將系統(tǒng)劃分為5個模塊。
(1)用戶管理模塊:提供用戶注冊和登錄、工作底圖權(quán)限管理、任務(wù)分配權(quán)限管理、人員權(quán)限分配審核及信息修改等功能。系統(tǒng)所有業(yè)務(wù)功能都須用戶登錄后才能使用,不同角色用戶擁有不同權(quán)限,所有的用戶由管理員賬號統(tǒng)一管理。
(2)地圖變更流程模塊:提供業(yè)務(wù)流程化操作功能,主要包括每月糾正任務(wù)的下發(fā)和接收、糾正標(biāo)記的添加、修改、審核和下載等功能,基于每個業(yè)務(wù)節(jié)點通過短信對相關(guān)用戶給予通知。
(3)GIS可視化及編輯模塊:通過WebGIS的API對地理數(shù)據(jù)進(jìn)行相關(guān)處理,包括對矢量數(shù)據(jù)的創(chuàng)建、修改、編輯、刪除、渲染等,對圖片數(shù)據(jù)的疊加展示以及對數(shù)據(jù)格式的轉(zhuǎn)換,并通過MySQL數(shù)據(jù)庫對生成的GeoJson數(shù)據(jù)進(jìn)行存儲,同時提供地理文件的上傳和下載功能。
(4)移動端功能調(diào)度模塊:實現(xiàn)移動端傳感設(shè)備調(diào)用功能,如通過調(diào)度移動端攝像頭為用戶提供拍照和視頻錄制服務(wù)、調(diào)用麥克風(fēng)提供錄音服務(wù)、調(diào)用存儲系統(tǒng)將工作底圖緩存到移動設(shè)備本地、調(diào)用設(shè)備的GPS系統(tǒng)為用戶提供精準(zhǔn)的定位服務(wù)等。
(5)語音識別模塊:提供移動端語音識別功能,通過快速精準(zhǔn)地返回語音中的信息和命令執(zhí)行相應(yīng)的操作,在系統(tǒng)中可實現(xiàn)快速語音搜索以及上傳語音轉(zhuǎn)文字功能。
工作流引擎作為應(yīng)用系統(tǒng)的一部分,提供根據(jù)角色、分工和條件的不同決定信息傳遞路由、內(nèi)容等級等核心解決方案,工作流引擎包括流程的節(jié)點管理、流向管理、流程樣例管理等重要功能。本系統(tǒng)開發(fā)語言是Java,工作流引擎采用Activiti,實現(xiàn)過程管理的自動化、智能化和整合化。
項目建設(shè)中采用ESRI公司的 Leaflet矢量地圖引擎作為項目軟件開發(fā)的核心引擎,可以將ArcGIS Server提供的地圖資源嵌入Web應(yīng)用,支持地圖數(shù)據(jù)的無極縮放、旋轉(zhuǎn)、傾斜,提供豐富的配色模板支持個性化地圖的自定義編輯,提供地圖數(shù)據(jù)分層管理以及分類顯示、專題圖疊加、地圖標(biāo)注編輯等功能。本系統(tǒng)主要運用的技術(shù)有:矢量地圖渲染、矢量圖形繪制、在線編輯和圖層疊加。另外,借助移動設(shè)備的GPS定位功能,通過調(diào)用天地圖API接口,結(jié)合GIS技術(shù)對檢索到的空間信息在地圖底圖上進(jìn)行地物空間位置和地物屬性信息的疊加顯示,從而實現(xiàn)空間位置的查詢定位,便于快速確定目標(biāo)位置。
語音識別功能在系統(tǒng)中主要應(yīng)用于快速語音搜索以及上傳語音轉(zhuǎn)文字功能。
(1)快速語音搜索:由于手機屏幕尺寸限制了用戶查找標(biāo)記位置的效率,系統(tǒng)提供語音智能識別,通過前端錄制用戶音頻,并實時傳給后臺Java服務(wù),Java服務(wù)收到前臺傳來的語音后,開啟一個socket鏈接,將語音文件交由Python程序處理,Python程序?qū)⒄{(diào)用相關(guān)聲學(xué)模型和語言模型,經(jīng)過解碼,與傳過來的語音文件進(jìn)行匹配,并通過socket鏈接返回識別的文本內(nèi)容至搜索框,借助天地圖的興趣點數(shù)據(jù)實現(xiàn)位置檢索。
(2)上傳語音轉(zhuǎn)文字:現(xiàn)場實地進(jìn)行調(diào)查時,調(diào)查人員會根據(jù)現(xiàn)場的實際情況進(jìn)行描述,用手機鍵盤輸入或手寫比較浪費時間,可以通過語音上傳功能將描述的語音先上傳到后臺數(shù)據(jù)庫中,讓后臺語音識別模塊進(jìn)行識別,并將識別的文字描述存入數(shù)據(jù)庫中,審核人員可以根據(jù)需要使用語音播放或者查看識別的描述,用于地圖要素變更的參考。
系統(tǒng)實現(xiàn)地圖變化信息編輯、審核、提交和反饋等全流程業(yè)務(wù)操作功能。
應(yīng)用Leaflet Web API開發(fā),實現(xiàn)前端地圖渲染及在線地圖編輯的核心功能,業(yè)務(wù)人員通過移動端設(shè)備即可完成基于天地圖影像和工作底圖的地理數(shù)據(jù)繪制和編輯能力,提供空間數(shù)據(jù)加載、圖層控制、空間數(shù)據(jù)編輯(點、線、面及屬性)、數(shù)據(jù)可視化及操作等功能。
業(yè)務(wù)操作人員通過該模塊調(diào)用手機GPS功能進(jìn)行位置檢索,調(diào)用手機攝像頭及麥克風(fēng)等實時錄制標(biāo)記相關(guān)圖片、視頻或音頻并上傳。另外,用戶可以將多媒體文件存儲在移動端ROM中,提供圖片、視頻保存至系統(tǒng)相冊的功能。通過把工作底圖緩存在內(nèi)存中,以備下次打開直接調(diào)用,提高傳輸效率。
業(yè)務(wù)操作人員在對標(biāo)記位置進(jìn)行查找時,可實時語音識別檢索,也可將標(biāo)記時的語音描述轉(zhuǎn)為文字進(jìn)行保存或應(yīng)用。部分系統(tǒng)操作界面如圖3所示。
圖3 系統(tǒng)操作界面
基于Leaflet Web API開發(fā)的移動端手機地圖變更審核系統(tǒng),結(jié)合工作流引擎技術(shù)、語音識別等關(guān)鍵技術(shù),采用分布式計算、網(wǎng)絡(luò)化運行的系統(tǒng)環(huán)境,提供了一個功能完善、編輯便捷、流程完整的地圖變更信息編輯、審核、上傳和應(yīng)用系統(tǒng)。作為PC端系統(tǒng)的補充,有效地解決了市縣級操作人員無法在外業(yè)中實時標(biāo)繪變更信息以及適應(yīng)業(yè)務(wù)移動辦公的需要,并且充分利用了移動端設(shè)備傳感器豐富的優(yōu)勢,極大提高了工作效率。