本發(fā)明涉及一種基于記錄儀管理平臺(tái)的加速坐標(biāo)轉(zhuǎn)換方法及裝置,屬于電子地圖車輛位置信息處理領(lǐng)域。
背景技術(shù):
記錄儀管理平臺(tái)在電子地圖上顯示車輛位置信息時(shí),首先需要對(duì)坐標(biāo)進(jìn)行偏移轉(zhuǎn)換,之后用轉(zhuǎn)換后的偏移坐標(biāo),才可在電子地圖上正確顯示。平臺(tái)需要通過外網(wǎng)訪問交通部指定的地圖服務(wù)商發(fā)布的坐標(biāo)偏移服務(wù),才能夠正常轉(zhuǎn)換坐標(biāo)。由于平臺(tái)車輛多,并且上傳坐標(biāo)的頻率大,實(shí)時(shí)通過外網(wǎng)進(jìn)行坐標(biāo)轉(zhuǎn)換已經(jīng)嚴(yán)重的影響了平臺(tái)的操作性能。
因平臺(tái)上的車輛主要在全國各大公路、市區(qū)路段行駛,很多車輛都在同一路段往復(fù)行駛,絕大部分的坐標(biāo)轉(zhuǎn)換出現(xiàn)了重復(fù),或者位置相當(dāng)臨近。這為使用具有參考意義的坐標(biāo)及其偏移數(shù)據(jù)對(duì)其附近的坐標(biāo)進(jìn)行精度允許內(nèi)的偏移運(yùn)算提供了可能。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為了解決現(xiàn)有的記錄儀管理平臺(tái)不具有偏移值緩存功能,當(dāng)接收到的坐標(biāo)數(shù)據(jù)量較大時(shí)嚴(yán)重影響平臺(tái)操作性能的缺點(diǎn),而提出一種基于記錄儀管理平臺(tái)的加速坐標(biāo)轉(zhuǎn)換方法及裝置。
根據(jù)本發(fā)明的第一方面,提供了一種基于記錄儀管理平臺(tái)的加速坐標(biāo)轉(zhuǎn)換方法,包括:
步驟一:獲取待處理的地理坐標(biāo);
步驟二:將所述地理坐標(biāo)轉(zhuǎn)換為二維直角坐標(biāo);
步驟三:按照給定的精度,對(duì)二維直角坐標(biāo)所在坐標(biāo)系進(jìn)行網(wǎng)格劃分;
步驟四:求解所述二維直角坐標(biāo)所在網(wǎng)格的西南點(diǎn)坐標(biāo);
步驟五:將所述西南點(diǎn)坐標(biāo)的橫坐標(biāo)以及縱坐標(biāo)組合形成字符串,將所述字符串作為key值;
步驟六:在緩存中查找是否存在與所述key值相匹配的值;若存在,則根據(jù)查找到的值確定與其對(duì)應(yīng)的偏移值,并計(jì)算偏移坐標(biāo);若不存在,則通過網(wǎng)絡(luò)獲取所述key值對(duì)應(yīng)坐標(biāo)的偏移坐標(biāo),并計(jì)算偏移坐標(biāo)的偏移值存儲(chǔ)在緩存中。
根據(jù)本發(fā)明的第二方面,提供了一種基于記錄儀管理平臺(tái)的加速坐標(biāo)轉(zhuǎn)換裝置,包括:
地理坐標(biāo)獲取模塊,用于獲取待處理的地理坐標(biāo);
直角坐標(biāo)轉(zhuǎn)換模塊,用于將所述地理坐標(biāo)轉(zhuǎn)換為二維直角坐標(biāo);
網(wǎng)格劃分模塊,用于按照給定的精度,對(duì)二維直角坐標(biāo)所在坐標(biāo)系進(jìn)行網(wǎng)格劃分;
網(wǎng)格坐標(biāo)求解模塊,用于求解所述二維直角坐標(biāo)所在網(wǎng)格的西南點(diǎn)坐標(biāo);
key值生成模塊,用于將所述西南點(diǎn)坐標(biāo)的橫坐標(biāo)以及縱坐標(biāo)組合形成字符串,將所述字符串作為key值;
緩存查找模塊,用于在緩存中查找是否存在與所述key值相匹配的值;若存在,則向偏移坐標(biāo)計(jì)算模塊發(fā)送執(zhí)行信號(hào);若不存在,則向偏移值緩存模塊發(fā)送執(zhí)行信號(hào);
偏移坐標(biāo)計(jì)算模塊,用于在接收到執(zhí)行信號(hào)后,根據(jù)查找到的值確定與其對(duì)應(yīng)的偏移值,并計(jì)算偏移坐標(biāo);
偏移值緩存模塊,用于在接收到執(zhí)行信號(hào)后,通過網(wǎng)絡(luò)獲取所述key值對(duì)應(yīng)坐標(biāo)的偏移坐標(biāo),并計(jì)算偏移坐標(biāo)的偏移值存儲(chǔ)在緩存中。
本發(fā)明的有益效果為:1、本發(fā)明在精度許可范圍內(nèi),根據(jù)真實(shí)坐標(biāo)值生成一個(gè)key值,將坐標(biāo)轉(zhuǎn)換結(jié)果緩存在本地的服務(wù)其中,當(dāng)在該精度范圍內(nèi)的其他坐標(biāo),需要進(jìn)行坐標(biāo)轉(zhuǎn)換時(shí),可以使用該緩存結(jié)果進(jìn)行坐標(biāo)偏移運(yùn)算,來提升系統(tǒng)地圖顯示的性能。2、在緩存中查找到匹配值時(shí),產(chǎn)生坐標(biāo)偏移數(shù)據(jù)的速度非常快,在實(shí)施例中,本發(fā)明相比于現(xiàn)有的記錄儀平臺(tái)速度提升近1000倍;3、可降低因過多使用交通部提供的數(shù)據(jù)服務(wù)而產(chǎn)生的服務(wù)費(fèi)用;4、可降低系統(tǒng)使用外網(wǎng)資源,提高系統(tǒng)數(shù)據(jù)轉(zhuǎn)換的穩(wěn)定性。
附圖說明
圖1為本發(fā)明的基于記錄儀管理平臺(tái)的加速坐標(biāo)轉(zhuǎn)換方法的流程圖;
圖2為本發(fā)明的基于記錄儀管理平臺(tái)的加速坐標(biāo)轉(zhuǎn)換裝置的原理框圖。
具體實(shí)施方式
具體實(shí)施方式一:本實(shí)施方式的基于記錄儀管理平臺(tái)的加速坐標(biāo)轉(zhuǎn)換方法如圖1所示,包括:
步驟一:獲取待處理的地理坐標(biāo)。
步驟二:將所述地理坐標(biāo)轉(zhuǎn)換為二維直角坐標(biāo)。地理坐標(biāo)的單位為度,二維直角坐標(biāo)的單位為厘米。
例如,以子午線經(jīng)過赤道點(diǎn)為原點(diǎn),經(jīng)度為橫坐標(biāo),緯度為縱坐標(biāo),東經(jīng)、北緯為正,建立坐標(biāo)系,則地球面上的東經(jīng)、北緯區(qū)域內(nèi)的每一點(diǎn)的二維直角坐標(biāo)的計(jì)算方法如下,單位米。
橫坐標(biāo):x=r*(lng*cos(lat*pi/180)*pi/180)
縱坐標(biāo):y=r*(lat*pi/180)
其中,r為地球半徑,lng為經(jīng)度,lat為緯度。
步驟三:按照給定的精度,對(duì)二維直角坐標(biāo)所在坐標(biāo)系進(jìn)行網(wǎng)格劃分。即每一個(gè)坐標(biāo)均落入一個(gè)網(wǎng)格中。
步驟四:求解所述二維直角坐標(biāo)所在網(wǎng)格的西南點(diǎn)坐標(biāo)。
步驟五:將所述西南點(diǎn)坐標(biāo)的橫坐標(biāo)以及縱坐標(biāo)組合形成字符串,將所述字符串作為key值。
例如,按照給定精度,對(duì)橫(縱)坐標(biāo)進(jìn)行分段,每一段的坐標(biāo),都是該精度的方格坐標(biāo),則距離橫(縱)坐標(biāo)最近并小于橫(縱)坐標(biāo)的方格坐標(biāo)就是該坐標(biāo)點(diǎn)的落入的方格坐標(biāo)。也可以理解為,在平面地圖的“上”方向?yàn)椤氨薄钡那闆r下,左下角的點(diǎn)即為西南點(diǎn)。方格的橫坐標(biāo)dx和縱坐標(biāo)dy的計(jì)算方法如下:
dx=int(x/d)×d
dy=int(y/d)×d
其中int表示取整,d為網(wǎng)格劃分的精度。
然后將dx和dy組合為字符串作為key值,即key=dx_dy。
步驟六:在緩存中查找是否存在與所述key值相匹配的值;若存在,則根據(jù)查找到的值確定與其對(duì)應(yīng)的偏移值,并計(jì)算偏移坐標(biāo);若不存在,則通過網(wǎng)絡(luò)獲取所述key值對(duì)應(yīng)坐標(biāo)的偏移坐標(biāo),并計(jì)算偏移坐標(biāo)的偏移值存儲(chǔ)在緩存中。
具體實(shí)施方式二:本實(shí)施方式與具體實(shí)施方式一不同的是:步驟六中,當(dāng)存在于key值相匹配的值時(shí),具體包括如下步驟:
步驟a1:獲取key值。
步驟a2:獲取與該key值對(duì)應(yīng)的偏移量。
步驟a3:計(jì)算所述key值對(duì)應(yīng)坐標(biāo)的直角坐標(biāo)。這里的直角坐標(biāo)是將key值的字符串拆分成的橫縱坐標(biāo),其代表方格的坐標(biāo)。
步驟a4:將所述直角坐標(biāo)轉(zhuǎn)換為地理坐標(biāo),作為偏移坐標(biāo)。
其它步驟及參數(shù)與具體實(shí)施方式一相同。
具體實(shí)施方式三:本實(shí)施方式與具體實(shí)施方式一或二不同的是:
步驟六中,當(dāng)不存在于所述key值相匹配的值時(shí),具體包括如下步驟:
步驟b1:通過網(wǎng)絡(luò)獲取key值對(duì)應(yīng)坐標(biāo)的偏移坐標(biāo);
步驟b2:將key值對(duì)應(yīng)的坐標(biāo)以及偏移坐標(biāo)轉(zhuǎn)換為二維直角坐標(biāo);
步驟b3:將偏移坐標(biāo)的二維直角橫坐標(biāo)減去key對(duì)應(yīng)坐標(biāo)的二維直角橫坐標(biāo)后取整,作為偏移量的橫坐標(biāo);將偏移坐標(biāo)的二維直角縱坐標(biāo)減去key對(duì)應(yīng)坐標(biāo)的二維直角縱坐標(biāo)后取整,作為偏移量的縱坐標(biāo)。
其它步驟及參數(shù)與具體實(shí)施方式一或二相同。
具體實(shí)施方式四:本實(shí)施方式提供了一種基于記錄儀管理平臺(tái)的加速坐標(biāo)轉(zhuǎn)換裝置,如圖2所示,包括:
地理坐標(biāo)獲取模塊101,用于獲取待處理的地理坐標(biāo)。
直角坐標(biāo)轉(zhuǎn)換模塊102,用于將所述地理坐標(biāo)轉(zhuǎn)換為二維直角坐標(biāo)。
網(wǎng)格劃分模塊103,用于按照給定的精度,對(duì)二維直角坐標(biāo)所在坐標(biāo)系進(jìn)行網(wǎng)格劃分。
網(wǎng)格坐標(biāo)求解模塊104,用于求解所述二維直角坐標(biāo)所在網(wǎng)格的西南點(diǎn)坐標(biāo)。
key值生成模塊105,用于將所述西南點(diǎn)坐標(biāo)的橫坐標(biāo)以及縱坐標(biāo)組合形成字符串,將所述字符串作為key值。
緩存查找模塊106,用于在緩存中查找是否存在與所述key值相匹配的值;若存在,則向偏移坐標(biāo)計(jì)算模塊106a發(fā)送執(zhí)行信號(hào);若不存在,則向偏移值緩存模塊106b發(fā)送執(zhí)行信號(hào)。
偏移坐標(biāo)計(jì)算模塊106a,用于在接收到執(zhí)行信號(hào)后,根據(jù)查找到的值確定與其對(duì)應(yīng)的偏移值,并計(jì)算偏移坐標(biāo)。
偏移值緩存模塊106b,用于在接收到執(zhí)行信號(hào)后,通過網(wǎng)絡(luò)獲取所述key值對(duì)應(yīng)坐標(biāo)的偏移坐標(biāo),并計(jì)算偏移坐標(biāo)的偏移值存儲(chǔ)在緩存中。
本實(shí)施方式是具體實(shí)施方式一對(duì)應(yīng)的軟件裝置,此處不做詳述。
具體實(shí)施方式五:本實(shí)施方式與具體實(shí)施方式四不同的是:
偏移坐標(biāo)計(jì)算模塊106a包括:
key值獲取單元,用于獲取key值。
偏移量獲取單元,用于獲取與該key值對(duì)應(yīng)的偏移量。
第一直角坐標(biāo)計(jì)算單元,用于計(jì)算所述key值對(duì)應(yīng)坐標(biāo)的直角坐標(biāo)。
偏移坐標(biāo)計(jì)算單元,用于將所述直角坐標(biāo)轉(zhuǎn)換為地理坐標(biāo),作為偏移坐標(biāo)。
本實(shí)施方式是具體實(shí)施方式二對(duì)應(yīng)的軟件裝置,此處不做詳述。
其它步驟及參數(shù)與具體實(shí)施方式四相同。
具體實(shí)施方式六:本實(shí)施方式與具體實(shí)施方式四或五不同的是:
偏移值緩存模塊106b包括:
偏移坐標(biāo)獲取單元,用于通過網(wǎng)絡(luò)獲取key值對(duì)應(yīng)坐標(biāo)的偏移坐標(biāo)。
第二直角坐標(biāo)獲取單元,用于將key值對(duì)應(yīng)的坐標(biāo)以及偏移坐標(biāo)轉(zhuǎn)換為二維直角坐標(biāo)。
偏移量計(jì)算單元,用于將偏移坐標(biāo)的二維直角橫坐標(biāo)減去key對(duì)應(yīng)坐標(biāo)的二維直角橫坐標(biāo)后取整,作為偏移量的橫坐標(biāo);將偏移坐標(biāo)的二維直角縱坐標(biāo)減去key對(duì)應(yīng)坐標(biāo)的二維直角縱坐標(biāo)后取整,作為偏移量的縱坐標(biāo)。
本實(shí)施方式是具體實(shí)施方式三對(duì)應(yīng)的軟件裝置,此處不做詳述。
其它步驟及參數(shù)與具體實(shí)施方式五相同。
下面根據(jù)如下的測(cè)試過程,來說明本發(fā)明的有益效果。
1)測(cè)試環(huán)境(pc機(jī)):
處理器:intel(r)core(tm)2duocpue7500@2.93ghz2.94ghz
內(nèi)存:4gb
操作系統(tǒng):64位windows7
java環(huán)境:jkd1.8.0_51
2)緩存數(shù)據(jù)庫環(huán)境
處理器:intel(r)xeon(r)cpue5-2620v2@2.10ghz2.10ghz(雙處理器)
內(nèi)存:32gb
操作系統(tǒng):64位windowsserver2008r2
數(shù)據(jù)庫:timesten11g
3)網(wǎng)絡(luò)環(huán)境:
聯(lián)通獨(dú)享100m光纖
使用本地緩存偏移數(shù)據(jù),并檢索皆命中,進(jìn)行坐標(biāo)轉(zhuǎn)換的測(cè)試代碼及測(cè)試結(jié)果:
100條坐標(biāo)進(jìn)行網(wǎng)絡(luò)偏移運(yùn)算,用時(shí):3313毫秒
testsrun:2,failures:0,errors:0,skipped:0,timeelapsed:9.61sec
4)使用交通部提供的網(wǎng)絡(luò)坐標(biāo)轉(zhuǎn)換服務(wù)進(jìn)行坐標(biāo)轉(zhuǎn)換測(cè)試及測(cè)試結(jié)果:
100條坐標(biāo)進(jìn)行網(wǎng)絡(luò)偏移運(yùn)算,用時(shí):3313毫秒
testsrun:2,failures:0,errors:0,skipped:0,timeelapsed:9.61sec
5)測(cè)試結(jié)果對(duì)比
本地進(jìn)行坐標(biāo)轉(zhuǎn)換比通過網(wǎng)絡(luò)服務(wù)進(jìn)行坐標(biāo)轉(zhuǎn)換,單線程測(cè)試時(shí),其速度提升近1000倍。
本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,本領(lǐng)域技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。