api实现鹰眼轨迹 php,技术教程| 百度鹰眼历史轨迹查询:轨迹抽稀功能
本文作者:用****9
本篇教程中,我們將詳細(xì)地說明鷹眼歷史軌跡查詢(gettrack接口)中,如何通過vacuate_grade選項對軌跡進(jìn)行抽稀,以及不同的抽稀力度對軌跡產(chǎn)生的影響。
上一篇教程中,我們介紹了鷹眼歷史軌跡查詢(gettrack接口)中process_option糾偏字段中的need_mapmatch選項開啟之后,通過對軌跡點的綁路,使軌跡更平滑、更準(zhǔn)確地還原出車輛真實的行駛路線。同時我們也注意到,綁路會增加很多道路的“形狀點”作為補充。這些補充出來的點在“多多益善”的角度上看,應(yīng)該是好事,軌跡點越多,對車輛行駛路線的還原越“精細(xì)”,對轉(zhuǎn)彎、掉頭等軌跡細(xì)節(jié)的刻畫也更“準(zhǔn)確”。然而過多的軌跡點,也會帶來負(fù)擔(dān):網(wǎng)絡(luò)傳輸?shù)膸挳惓U滟F,在某些對于精度要求不高的場合,過多的軌跡點對于稀缺的帶寬資源來說,反而是一種浪費;前端在軌跡的繪制時,點越多繪制的開銷也越大,在某些對繪制性能和出圖速度要求較高的場景下,過多的軌跡點也顯得“過猶不及”。
和糾偏選項類似,抽稀也可以指定不同的級別。抽稀力度由process_option字段中的vacuate_grade選項指定。
vacuate_grade=0時,代表不進(jìn)行抽稀操作,vacuate_grade的值從1到5,抽稀的力度越來越大。也就是說vacuate_grade=1時,會對軌跡進(jìn)行抽稀,這種抽稀力度最為保守,只會刪除盡可能少的點;而vacuate_grade=5時,抽稀的力度最為激進(jìn),將會刪除盡可能多的點,只保留最少量的軌跡點。
下面我們?nèi)匀灰郧皟晒?jié)教程中的那條軌跡為例,詳細(xì)地演示一下,不同的抽稀力度對該軌跡的效果產(chǎn)生的影響,在此之前,在表1中,列出了各種抽稀力度下,保留的軌跡點個數(shù),意圖先從數(shù)字的角度給大家一個整體的印象,之后再分別演示每種抽稀力度的詳細(xì)效果。
vacuate_grade=0 不進(jìn)行抽稀的情況,如圖1所示:
圖1(不經(jīng)過抽稀的軌跡) 我們看出,在沒有經(jīng)過抽稀的情況下,該段軌跡共有777個軌跡點。冗余是比較嚴(yán)重的。
vacuate_grade=1
圖2中展示了vacuate_grade=1時,對整條軌跡的抽稀效果。軌跡點從777個驟降到36個,且比較好地保留了軌跡的原貌。
圖2(vacuate_grade=1時的軌跡整體圖)
抽稀后的軌跡放大后(圖3),可以看到在轉(zhuǎn)彎和掉頭等關(guān)鍵位置處的軌跡點,也很好地得到了保留,可以準(zhǔn)確地還原車輛行駛路線的原貌。
圖3(vacuate_grade=1時的軌跡局部放大圖)
vacuate_grade=2
圖4中展示了vacuate_grade=2時,對整條軌跡的抽稀效果。軌跡點從36個進(jìn)一步縮減到27個。
圖4(vacuate_grade=2時的軌跡整體圖)
對于力度1和力度2的區(qū)別,我們找到整體圖的右下角進(jìn)行放大,詳細(xì)對比:
通過圖5和圖6的對比,我們發(fā)現(xiàn),抽稀力度為2時,相比力度1的抽稀幅度很有限,在盡可能保留軌跡原貌的情況下,竭盡全力做了進(jìn)一步的精簡。在絕大多數(shù)情況下,vacuate_grade=2已經(jīng)是在不影響軌跡還原效果情況下的最強力度了,下文中我們可以看出,更大的軌跡力度將開始引起軌跡的準(zhǔn)確性。所以vacuate_grade=2是鷹眼抽稀的默認(rèn)力度。
vacuate_grade=3
圖7展示了在vacuate_grade=3的力度下,對軌跡的抽稀效果。軌跡點數(shù)由27進(jìn)一步縮減到了16。
圖7(vacuate_grade=3時的軌跡整體圖)
需要注意的是,雖然從整體圖上看效果尚可,但局部放大后,我們將會發(fā)現(xiàn),vacuate_grade=3的力度下,轉(zhuǎn)彎和掉頭的細(xì)節(jié)已經(jīng)所剩無幾,開始影響對原始軌跡的刻畫了:
圖8(vacuate_grade=3時的軌跡局部放大圖)
vacuate_grade=4
圖9展示了vacuate_grade=4的抽稀力度下的軌跡,細(xì)節(jié)進(jìn)一步缺失,因此我們不再展示局部細(xì)節(jié)圖了。除非該軌跡的目的是為了展示縮略圖,否則不推薦這個抽稀力度。
圖9(vacuate_grade=4時的軌跡整體圖)
vacuate_grade=5
圖10展示了抽稀力度為5的情況下,軌跡的整體圖,可以看出這個力度已經(jīng)喪心病狂到了連縮略圖的效果都不能滿足的地步。
圖10(vacuate_grade=5時的軌跡整體圖)
總結(jié)
通過上文略顯繁瑣的演示,我們對不同抽稀力度下對軌跡的影響有了一個較為全面的了解。最后我們給出一些建議:
絕大多數(shù)情況下,使用vacuate_grade=1或2就可以保證很好的效果,如果你希望比較準(zhǔn)確地還原車輛行駛的原貌,并在放大后的局部也能保存軌跡中的關(guān)鍵細(xì)節(jié),那么你應(yīng)當(dāng)只在1和2這兩個力度中選擇,由于力度1下已經(jīng)大幅減少了軌跡點的數(shù)量,一般情況下設(shè)置vacuate_grade=1即可,如果你要查詢很多量車的歷史軌跡,或者對網(wǎng)絡(luò)帶寬的成本非常敏感,那么設(shè)置vacuate_grade=2也有不錯的效果,是最高性價比的選擇,因此也作為鷹眼抽稀的默認(rèn)級別。
如果查詢軌跡是為了繪制縮略圖,那么設(shè)置vacuate_grade=3或4是個明智的選擇,一般選擇3就可以。在各種常見的場景下都不推薦vacuate_grade=5這種力度的抽稀。
總結(jié)
以上是生活随笔為你收集整理的api实现鹰眼轨迹 php,技术教程| 百度鹰眼历史轨迹查询:轨迹抽稀功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flex布局实现div内容垂直居中
- 下一篇: AIR32F103CBT6还原DAP L