楊丁亮,劉志平,仲崇武
(1. 中國礦業(yè)大學(xué)環(huán)境與測繪學(xué)院,江蘇 徐州 221116; 2. 兗州煤業(yè)股份有限公司南屯煤礦,山東 鄒城 273515)
百度地圖是一款具有導(dǎo)航、定位和量算等功能的可視化電子地圖[1]。與此產(chǎn)生的LBS服務(wù)有路徑導(dǎo)航[2]、本地搜索[3]和地址解析等。文獻(xiàn)[4]和文獻(xiàn)[5]利用百度地圖量算工具實現(xiàn)了野外測距和圖上測量農(nóng)用地面積。文獻(xiàn)[6]和文獻(xiàn)[7]將有軌電車和采棉機(jī)路徑在百度地圖上可視化,實現(xiàn)了交通的實時監(jiān)控。文獻(xiàn)[8]和文獻(xiàn)[9]在室內(nèi)提取百度地圖興趣點坐標(biāo)建立地理國情普查數(shù)據(jù)庫,提高了工作效率。
文獻(xiàn)[4]和文獻(xiàn)[5]采用百度地圖坐標(biāo)雖然得到距離和面積,但與實際值有較大誤差。文獻(xiàn)[6]和文獻(xiàn)[7]涉及WGS-84坐標(biāo)轉(zhuǎn)換到百度地圖坐標(biāo)問題,通過百度地圖提供的坐標(biāo)轉(zhuǎn)換API解決。而文獻(xiàn)[8]和文獻(xiàn)[9]涉及百度坐標(biāo)轉(zhuǎn)換到WGS-84坐標(biāo)問題,其轉(zhuǎn)換方法存在精度較低的問題。鑒此,本文選取烏魯木齊、拉薩、蘭州、北京、上海和三沙6座城市,利用等量偏移法、BP神經(jīng)網(wǎng)絡(luò)[12]和格網(wǎng)法[10]對百度地圖坐標(biāo)解密到WGS-84坐標(biāo),比較分析3種解密方法的精度及適用范圍,最后通過距離和面積計算對本文方法進(jìn)行實際應(yīng)用驗證。
百度地圖坐標(biāo)(BD09)是由WGS-84坐標(biāo)經(jīng)非線性變換而得,并且不同區(qū)域坐標(biāo)加密變換不同。為使WGS-84坐標(biāo)與BD09坐標(biāo)點對應(yīng),百度地圖提供了坐標(biāo)轉(zhuǎn)換API,但該API只允許將WGS-84坐標(biāo)轉(zhuǎn)換為百度坐標(biāo),不能將BD09坐標(biāo)轉(zhuǎn)換成WGS-84坐標(biāo)。本文利用坐標(biāo)轉(zhuǎn)換API開發(fā)了百度坐標(biāo)獲取程序。該程序涉及的轉(zhuǎn)換代碼如下:
converter=newCoordinateConverter();
converter.from(CoordType.GPS);
converter.coord(sourceLatLng);
LatLng desLatLng=converter.convert();
為了保持地圖上各種地物相對位置關(guān)系,近距離點的坐標(biāo)經(jīng)過百度坐標(biāo)變換后的偏移量是接近的。假定LWGS和BWGS是WGS-84坐標(biāo),經(jīng)百度坐標(biāo)API轉(zhuǎn)換后得到BD09坐標(biāo)LBD1和BBD1,對LBD1和BBD1再次進(jìn)行百度坐標(biāo)API轉(zhuǎn)換得到LBD2和BBD2。根據(jù)近距離點偏移量近似原則,可近似表示為
(1)
通過變換得到
(2)
由式(1)和式(2)可知,等量偏移法基本思想是差分思想[13],且式(2)本質(zhì)上屬于一階差分方法。若記n階差分算子為[α1,α2,…,αn],本文在此基礎(chǔ)上推導(dǎo)出n階差分的等量偏差法通用表達(dá)式
(3)
式中,LBDi、BBDi由LBDi-1、BBDi-1經(jīng)百度坐標(biāo)API依次轉(zhuǎn)換得到。
文中選擇二階差分方法,作為與一階差分的對比方法,二階差分算子為[α1,α2,α3]=[1,-2,1],可得其表達(dá)式為
(4)
BP神經(jīng)網(wǎng)絡(luò)是非線性不確定性數(shù)學(xué)模型,使用誤差反向傳播算法,并以均方誤差最小化為目標(biāo)不斷修改網(wǎng)絡(luò)的權(quán)值和閾值,最終能高精度地擬合數(shù)據(jù)[12]。該模型可分為輸入層、中間層和輸出層,其中輸入和輸出都只有一層,中間層可有一層或多層。本文選用Matlab軟件建立BP神經(jīng)網(wǎng)絡(luò),使用雙隱層結(jié)構(gòu),每一層包含10個神經(jīng)元,設(shè)定訓(xùn)練誤差目標(biāo)為10-8,最大迭代次數(shù)為4000,學(xué)習(xí)速率為0.05。其基本步驟如下:
(1) 獲取訓(xùn)練數(shù)據(jù)。根據(jù)研究區(qū)域的經(jīng)緯度范圍利用百度API隨機(jī)生成WGS-84坐標(biāo)和對應(yīng)的BD09坐標(biāo)。
(2) 建立及訓(xùn)練BP網(wǎng)絡(luò)。將步驟(1)中BD09坐標(biāo)作為訓(xùn)練輸入數(shù)據(jù)、WGS-84坐標(biāo)作為訓(xùn)練輸出數(shù)據(jù)訓(xùn)練BP網(wǎng)絡(luò),從而擬合BD09變換WGS-84的轉(zhuǎn)換函數(shù)。
(3) 預(yù)測待定點的坐標(biāo)。根據(jù)步驟(2)中轉(zhuǎn)換函數(shù),預(yù)測新的BD09點對應(yīng)的WGS-84坐標(biāo)。
將研究區(qū)域劃分到若干固定間隔的網(wǎng)格內(nèi),計算每個網(wǎng)格角點的WGS-84坐標(biāo)與百度坐標(biāo)的差值,根據(jù)最鄰近原則,選取最近格網(wǎng)角點的差值作為坐標(biāo)偏移修正值。設(shè)采用WGS-84點坐標(biāo)為LWGS和BWGS,對應(yīng)BD09的坐標(biāo)為LBD和BBD,則經(jīng)緯度偏移量分別為ΔL、ΔB,見式(5)。如圖1中落在格網(wǎng)內(nèi)的P1和P2點,按最鄰近原則,P1點坐標(biāo)修正值為ΔL1、ΔB1,P2點坐標(biāo)修正值為ΔL4、ΔB4,但坐標(biāo)偏移量會隨坐標(biāo)點的改變而變化。
(5)
圖1 格網(wǎng)法
在烏魯木齊、拉薩、蘭州、北京、上海和三沙6個城市的中心分別建立0.1°方格的研究區(qū)域,并利用百度坐標(biāo)API分別隨機(jī)生成1000對樣本數(shù)據(jù)。其中,WGS-84坐標(biāo)數(shù)據(jù)作為參考值,BD09坐標(biāo)數(shù)據(jù)作為輸入值。為驗證上述方法的百度坐標(biāo)解密精度,設(shè)計了如下4種方案:
方案1:等量偏移一階差分法。將樣本BD09坐標(biāo)利用百度坐標(biāo)API再次轉(zhuǎn)換,根據(jù)式(2)預(yù)測對應(yīng)的WGS-84坐標(biāo)。
方案2:等量偏移二階差分法。將樣本BD09坐標(biāo)利用百度坐標(biāo)API連續(xù)兩次轉(zhuǎn)換,根據(jù)式(4)預(yù)測對應(yīng)的WGS-84坐標(biāo)。
方案3:BP神經(jīng)網(wǎng)絡(luò)法。根據(jù)研究區(qū)域利用百度坐標(biāo)API再次隨機(jī)生成1000組WGS-84′坐標(biāo)和對應(yīng)的BD09′坐標(biāo),以BD09′坐標(biāo)作輸入訓(xùn)練,WGS-84′坐標(biāo)作輸出訓(xùn)練,擬合BD09到WGS-84的轉(zhuǎn)換函數(shù),從而預(yù)測對應(yīng)的WGS-84坐標(biāo)。
方案4:格網(wǎng)法。將各研究區(qū)域等分為100行×100列的格網(wǎng),利用百度坐標(biāo)API計算每個格網(wǎng)角點坐標(biāo),根據(jù)式(5)及最鄰近點原則,預(yù)測對應(yīng)的WGS-84坐標(biāo)。
根據(jù)上述4種方案,以烏魯木齊和三沙為例,繪制了WGS-84坐標(biāo)預(yù)測值與參考值的差值分布(如圖2和圖3所示)和點位誤差分布(如圖4和圖5所示)。圖4和圖5的RMS、mean分別代表點位誤差的均方根值和平均值。
圖2 烏魯木齊4種方案經(jīng)緯度差分布
圖3 三沙4種方案經(jīng)緯度差分布
從圖2和圖3可得,4種方案WGS-84坐標(biāo)預(yù)測值與參考值的經(jīng)緯度差值均達(dá)到10-4量級,其中方案1和方案2甚至達(dá)到10-5量級。此外,方案1和方案2呈現(xiàn)高度集并匯聚成圓點,方案3沿(0,0)朝縱軸或橫軸方向呈矩形發(fā)散,方案4沿(0,0)向四周呈正方形發(fā)散。
圖4 烏魯木齊4種方案點位誤差分布
圖5 三沙4種方案點位誤差分布
從圖4和圖5可得,方案1和方案2點位誤差分布以單條狀為主,方案3和方案4分別呈現(xiàn)偏態(tài)分布和正態(tài)分布。方案1、方案2、方案3和方案4的點位誤差分別集中在10~20 m、0~10 m、10~30 m和30~60 m。綜合RMS值和mean值大小,以及點位誤差分布形態(tài),百度坐標(biāo)解密方法精度由高到低依次是方案2>方案1>方案3>方案4。其他城市的解密精度分析均可得出相同結(jié)論,限于篇幅不再論述,見表1。
表1 各城市不同解密方案的點位誤差占比
從表1可得,方案1最大的點位誤差區(qū)間是[20 m,40 m)分布在三沙,集中分布在[10 m,20 m)。
方案2最大的點位誤差區(qū)間是[10 m,20 m)分布在上海,集中分布在[0,10 m)。方案3點位誤差區(qū)間分布不均勻,點位誤差集中分布在10~40 m。方案4點位誤差分布離散,約有50%的點位誤差大于40 m。上述結(jié)果表明,方案1和方案2在地理位置上具有較強的適用性及較高的坐標(biāo)解密精度。
選擇兩點歐氏距離和以兩點為對角線構(gòu)成的矩形面積作為百度坐標(biāo)解密的實際應(yīng)用驗證。在谷歌地球選取3組WGS-84坐標(biāo)點,經(jīng)高斯投影[14]計算真實距離與面積。方案1和方案2的距離和面積通過坐標(biāo)解密后投影成高斯平面直角坐標(biāo)計算得到;百度地圖量距和面積通過百度地圖量算工具得到。表2羅列了方案1、方案2和百度地圖獲取的距離、面積與真實距離和面積的相對誤差。
從表2可得,在獲取實際距離和面積時,百度地圖工具量測的方法相對誤差最大,方案2相對誤差最小。隨著距離和面積的增加,3種方案與真實值的相對誤差均呈現(xiàn)遞減趨勢,且在距離計算中3種方案的精度接近,但在面積計算中方案2精度仍有優(yōu)勢。故在百度地圖上直接量取的距離和面積代替真實值是不嚴(yán)謹(jǐn)?shù)?,而?jīng)方案1和方案2解密后的距離和面積更加接近真實值。筆者建議在數(shù)百千米內(nèi)計算面積,選用方案2;在1~10 km內(nèi)的距離,選用方案2;其余情況,可以選用方案1或方案2。
表2 不同方案的幾何測量與真實值對比
本文提出了等量偏移法、格網(wǎng)法和BP神經(jīng)網(wǎng)絡(luò)3種百度坐標(biāo)解密方法,并引申出二階等量偏移法公式。選用拉薩、烏魯木齊、蘭州、北京、上海、三沙6座城市作為研究區(qū)域,采用上述方法比較了解密精度。結(jié)果表明,等量偏移二階差分法、一階差分法、BP神經(jīng)網(wǎng)絡(luò)法和網(wǎng)格法誤差水平分別可至10、20、50和100 m。同時利用百度地圖提供的距離和面積量算工具、等量偏移一階差分法、二階差分法進(jìn)行了實際測距、面積的應(yīng)用驗證。值得注意的是,等量偏移法的解密精度不隨研究區(qū)域發(fā)生改變。BP神經(jīng)網(wǎng)絡(luò)會因訓(xùn)練樣本的分布是否均勻而使坐標(biāo)解密精度發(fā)生變化。而格網(wǎng)法坐標(biāo)解密精度只與格網(wǎng)間距相關(guān),間距越小解密精度越高,但坐標(biāo)偏移修正數(shù)據(jù)庫將呈數(shù)量級增長。