郭偉鵬,沈松雨
(1.廣州城市信息研究所有限公司,廣州 510665;2.公安部第三研究所,上海 200031)
本研究基于國家測繪地理信息相關(guān)技術(shù)標(biāo)準(zhǔn)和規(guī)范,依托自然資源部對坐標(biāo)轉(zhuǎn)換工作要求,面向?qū)臻g坐標(biāo)轉(zhuǎn)換有需求的各種企事業(yè)單位和個人,設(shè)計(jì)并研發(fā)出一款適用于常用坐標(biāo)系互相轉(zhuǎn)換,大體量數(shù)據(jù)快速批量轉(zhuǎn)換,云模式部署的支持多共享賦能途徑的空間坐標(biāo)轉(zhuǎn)換系統(tǒng),為相關(guān)用戶提供穩(wěn)定的服務(wù)支撐。云模式環(huán)境,通過彈性的云服務(wù)對系統(tǒng)自身服務(wù)進(jìn)行調(diào)整,解決傳統(tǒng)在線服務(wù)系統(tǒng)中存在的問題[1]。
1.1.1 設(shè)計(jì)原則
考慮到空間坐標(biāo)轉(zhuǎn)換需求的專業(yè)性、廣泛適用性特點(diǎn),本研究在設(shè)計(jì)過程中主要遵循以下幾個設(shè)計(jì)原則。
(1)完備性原則。本研究設(shè)計(jì)時要充分捕獲坐標(biāo)轉(zhuǎn)換工作中的實(shí)際需求,設(shè)計(jì)開發(fā)的系統(tǒng)應(yīng)具備常用空間坐標(biāo)系統(tǒng)之間轉(zhuǎn)換的基本能力,覆蓋系統(tǒng)主要使用場景。
(2)擴(kuò)展性原則。在不缺少必要功能的情況下,空間坐標(biāo)轉(zhuǎn)換系統(tǒng)應(yīng)具備良好的可擴(kuò)展設(shè)計(jì),比如方便新的坐標(biāo)轉(zhuǎn)換類型或轉(zhuǎn)換算法的添加,而不侵入系統(tǒng)的總體結(jié)構(gòu)和布局,以便于快速適應(yīng)坐標(biāo)轉(zhuǎn)換方法的擴(kuò)展。
(3)統(tǒng)一性原則。系統(tǒng)中的各個部件需要遵循相關(guān)標(biāo)準(zhǔn)、規(guī)范和要求,并且在不同使用場景下具備相對的統(tǒng)一性,如參數(shù)配置入口、坐標(biāo)轉(zhuǎn)換類型選擇等。
(4)易用性原則。系統(tǒng)的功能設(shè)計(jì)和用戶交互界面設(shè)計(jì)應(yīng)充分顧及用戶的工作場景和操作習(xí)慣,幫助用戶快速高效地完成坐標(biāo)轉(zhuǎn)換工作。
(5)可靠性原則。根據(jù)地理數(shù)據(jù)的特點(diǎn),系統(tǒng)需要滿足大數(shù)據(jù)轉(zhuǎn)換和多數(shù)據(jù)批量轉(zhuǎn)換的需求[2]。系統(tǒng)需要具有較高的可靠性,保障轉(zhuǎn)換的成功率,避免用戶做重復(fù)無效操作,從而使用戶提高工作效率。
(6)高效性原則。隨著移動互聯(lián)網(wǎng)、智慧城市、物聯(lián)網(wǎng)和云計(jì)算等前沿科學(xué)技術(shù)的快速發(fā)展[3],日常辦公對效率的要求越來越高,系統(tǒng)需要具備大體量數(shù)據(jù)批量坐標(biāo)轉(zhuǎn)換能力。
1.1.2 邏輯架構(gòu)設(shè)計(jì)
系統(tǒng)邏輯架構(gòu)如圖1所示。
圖1 邏輯架構(gòu)
系統(tǒng)基于自然資源部相關(guān)坐標(biāo)轉(zhuǎn)換標(biāo)準(zhǔn)規(guī)范和坐標(biāo)轉(zhuǎn)換四參數(shù)、七參數(shù)等轉(zhuǎn)換模型設(shè)計(jì)開發(fā),兼容阿里云、騰訊云、華為云和天翼云等市場主流公有云平臺。
IaaS是基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service,IaaS),該層主要依托云平臺的服務(wù)器、網(wǎng)絡(luò)、負(fù)載均衡和容器等資源,作為系統(tǒng)的基礎(chǔ)支撐部分。
PaaS是平臺即服務(wù)(Platform as a Service,PaaS),該層主要是依托云平臺的存儲組件,包括系統(tǒng)數(shù)據(jù)庫Mysql,緩存數(shù)據(jù)庫Redis,文件數(shù)據(jù)庫Mongodb或?qū)ο蟠鎯?,?shí)時計(jì)算引擎Spark2。
DaaS是數(shù)據(jù)即服務(wù)(Data as a Service,DaaS),該層通過對數(shù)據(jù)、服務(wù)等資源的集中化管理,形成數(shù)據(jù)服務(wù)的方式注冊到空間坐標(biāo)轉(zhuǎn)換服務(wù)共享網(wǎng)關(guān)上,統(tǒng)一對外提供服務(wù)。
SaaS是軟件即服務(wù)(Software as a Service,SaaS),該層是將坐標(biāo)轉(zhuǎn)換系統(tǒng)作為軟件工具直接提供給用戶使用,不需要用戶在本地安裝軟件,便于用戶隨時隨地使用本系統(tǒng)。
1.1.3 功能結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)功能結(jié)構(gòu)如圖2所示。
圖2 功能結(jié)構(gòu)
系統(tǒng)包括登錄首頁、系統(tǒng)介紹、開發(fā)幫助、系統(tǒng)管理和坐標(biāo)轉(zhuǎn)換5個模塊。其中登錄首頁主要完成新用戶注冊、用戶登錄驗(yàn)證;系統(tǒng)介紹則介紹了系統(tǒng)特點(diǎn)、坐標(biāo)系的基本知識和轉(zhuǎn)換模型介紹;開發(fā)幫助主要面向二次開發(fā)用戶,用戶可基于系統(tǒng)提供的JS API和服務(wù)API完成自己的坐標(biāo)轉(zhuǎn)換系統(tǒng)平臺的開發(fā),同時也提供開發(fā)指南類文檔下載和問題反饋入口;系統(tǒng)管理主要負(fù)責(zé)用戶管理、權(quán)限管理、角色管理和操作日志的記錄;坐標(biāo)轉(zhuǎn)換模塊是系統(tǒng)的核心模塊,主要包括參數(shù)配置、坐標(biāo)轉(zhuǎn)換、批量坐標(biāo)轉(zhuǎn)換、轉(zhuǎn)換成果Excel或逗號分隔值文件格式(Comma-Separated Values,CSV)導(dǎo)出功能。
1.2.1 轉(zhuǎn)換模型
區(qū)域坐標(biāo)系統(tǒng)轉(zhuǎn)換有多種數(shù)學(xué)模型[4],不同坐標(biāo)系成果之間的轉(zhuǎn)換模型一般有二維和三維2種轉(zhuǎn)換模式[5],空間坐標(biāo)轉(zhuǎn)換模型是本系統(tǒng)算法實(shí)現(xiàn)的核心功能。本系統(tǒng)主要以2017年國家測繪地理信息局組織制定并批準(zhǔn)發(fā)布的測繪地理信息行業(yè)標(biāo)準(zhǔn)CH/T 2014—2016《大地測量控制點(diǎn)坐標(biāo)轉(zhuǎn)換技術(shù)規(guī)范》為基線,并參考其中的轉(zhuǎn)換模型公式對二維七參數(shù)大地坐標(biāo)轉(zhuǎn)換模型、二維四參數(shù)平面坐標(biāo)轉(zhuǎn)換模型、多項(xiàng)式擬合模型、三維四參數(shù)空間直角坐標(biāo)轉(zhuǎn)換模型、三維七參數(shù)大地坐標(biāo)轉(zhuǎn)換模型、布爾莎模型和莫洛金斯基模型進(jìn)行建立。其中,四參數(shù)模型是指采用2個平移參數(shù)、1個旋轉(zhuǎn)參數(shù)和1個尺度參數(shù)描述2個平面坐標(biāo)系之間的線性變換[6]。
CGCS2000是本系統(tǒng)坐標(biāo)轉(zhuǎn)換的核心,其模型參數(shù)如下。
原點(diǎn):包括海洋和大氣的整個地球的質(zhì)量中心。
X軸:由原點(diǎn)指向格林尼治參考子午線與赤道面,即歷元2 000.0的交點(diǎn)。
Z軸:由原點(diǎn)指向歷元2 000.0的地球參考極的方向。
Y軸:與X軸、Z軸構(gòu)成右手正交坐標(biāo)系的方向。
其詳細(xì)橢球體如圖3所示。
圖3 參考橢球體
橢球體參數(shù)如下。
α=6 378 137 m,
式中:α為長半軸,m。
f=1/298.257 222 101,
式中:f為扁率。
GM=3.986 004 418×1 014 m3/s2,
式中:GM為地心引力常數(shù)。
ω=7.292 115×10-5rad/s,
式中:ω為地球自轉(zhuǎn)角速度。
需要注意的是,互聯(lián)網(wǎng)地圖的坐標(biāo)通常以經(jīng)緯度形式顯示,不同互聯(lián)網(wǎng)地圖采用的參考橢球不同[7]。
1.2.2 批量坐標(biāo)轉(zhuǎn)換
批量坐標(biāo)轉(zhuǎn)換采用前端應(yīng)用交互調(diào)用批量坐標(biāo)轉(zhuǎn)換服務(wù),批量坐標(biāo)轉(zhuǎn)換服務(wù)驅(qū)動腳本提交Spark2任務(wù),并將任務(wù)結(jié)果輸入到文件數(shù)據(jù)庫,將文件唯一標(biāo)識id返回給前端應(yīng)用的技術(shù)路線,其詳細(xì)數(shù)據(jù)及操作流程如圖4所示。
圖4中,為避免非登錄用戶不合理地占用計(jì)算資源,首先批量操作需是合法用戶方可使用,因此用戶的第一個操作是登錄操作。登錄成功后用戶可將待轉(zhuǎn)換坐標(biāo)的文檔上傳,并根據(jù)用戶操作界面執(zhí)行批量轉(zhuǎn)換操作。大體量數(shù)據(jù)的批量轉(zhuǎn)換操作是采用Spark2實(shí)時計(jì)算方式實(shí)現(xiàn),因此內(nèi)部先要提交Spark任務(wù),并將文件加載后進(jìn)行實(shí)時計(jì)算;計(jì)算成功后將成果文件上傳到文件服務(wù)器,并將文件id反饋給用戶。用戶看到轉(zhuǎn)換完成后,可對成果文件進(jìn)行下載。本過程將大體量坐標(biāo)轉(zhuǎn)換工作分階段處理,并通過實(shí)時計(jì)算方式實(shí)現(xiàn),提高了轉(zhuǎn)換效率和用戶體驗(yàn)。
圖4 批量流程坐標(biāo)轉(zhuǎn)換核心流程
1.3.1 開發(fā)環(huán)境
本系統(tǒng)的開發(fā)環(huán)境見表1。
表1 開發(fā)環(huán)境
1.3.2 運(yùn)行環(huán)境
本系統(tǒng)的運(yùn)行環(huán)境見表2(以部署實(shí)現(xiàn)的某公有云測試環(huán)境為例)。
表2 運(yùn)行環(huán)境
1.3.3 運(yùn)行效果
在表1開發(fā)環(huán)境下,七參數(shù)模型算法,北京54坐標(biāo)轉(zhuǎn)CGCS2000坐標(biāo)系,批量空間坐標(biāo)轉(zhuǎn)換運(yùn)行效果見表3。
表3 批量空間坐標(biāo)轉(zhuǎn)換運(yùn)行效果
本次設(shè)計(jì)與開發(fā)成果表明,本系統(tǒng)支持CH/T 2014—2016《大地測量控制點(diǎn)坐標(biāo)轉(zhuǎn)換技術(shù)規(guī)范》要求的全部轉(zhuǎn)換方法,并提供互聯(lián)網(wǎng)地圖廠商的坐標(biāo)轉(zhuǎn)換方法,支持坐標(biāo)類型豐富。另外本文提出了基于實(shí)時計(jì)算引擎Spark2的坐標(biāo)轉(zhuǎn)換方法可有效提高批量數(shù)據(jù)坐標(biāo)轉(zhuǎn)換工作。同時本系統(tǒng)提供JS API和Web服務(wù)API供坐標(biāo)轉(zhuǎn)換開發(fā)人員使用。前端用戶集成JS API即可在前端針對少量的坐標(biāo)進(jìn)行快速轉(zhuǎn)換。Web服務(wù)API則支持服務(wù)器端二次開發(fā)。另外本系統(tǒng)作為軟件即服務(wù)(SaaS)工具提供服務(wù),提高了服務(wù)賦能方式。因此,本系統(tǒng)在坐標(biāo)轉(zhuǎn)換類型支持度、批量坐標(biāo)轉(zhuǎn)換效率和坐標(biāo)轉(zhuǎn)換賦能方式等方面均有一定的優(yōu)勢,對自然資源相關(guān)坐標(biāo)轉(zhuǎn)換開發(fā)和使用人員具有一定參考價(jià)值。