版權聲明:轉載請註明作者(獨孤尚良dugushangliang)出處:https://blog.csdn.net/dugushangliang/article/details/102821219
先看看我們要處理的數據。
首先根據點的經緯度數值,做成點,串成線。這個過程八仙過海各顯神通。若有人束手無策,可以看看鄙人的相關文章。
言歸正傳。
打開串成的線,整體上看,效果不錯吧,如果你這麼想,那你還是太嫩了。
但放大看局部,如下圖所示。崩潰吧?
遇到問題,首先應該是找找有沒有前人的經驗。
嗯嗯,不錯不錯,搜到了搜到了。都打開看看,嗯嗯呢,這個,呃呃,看不懂啊……文字是半懂不懂,公式是一竅不通。
但問題還是要解決的,怎麼破?
——————————我是分割線——————————
經觀察,這種一般在10米之內,所以鄙人猜測這是由於GPS終端在停止狀態時由於各種原因導致的漂移。這怎麼處理?點距在10米內的都給去了。即:根據時間順序排序後,A點爲起始點,如果A點下一個B點在10米內則去掉這個B點並繼續獲取下一個點作爲B點進行判斷,直到有一個點不在10米內,然後把這個點作爲A點繼續判斷。
很好,效果好了很多,但還是有問題。
想了好久,寤寐思服,輾轉反側,終於……
咳咳……來人吶!把狗頭鍘請來……哦……不……把向量請來。
這種漂移點都是尖角,用向量判斷這個點的取捨。於是,我結合這個實際情況,提出兩個凡是的方針。
凡是距離在10米內的一律去掉。
凡是構成尖角的一律不留。
至於具體效果?
再驗吧,至少相比之前提升了很多,但可以肯定的是還有很多優化空間。
這就是二八定律——二成的操作去掉八成的問題。
(特別叮囑:要活學活用,理論與實際相結合,提出並實踐個人特色軌跡漂移點去除辦法)
進一步優化的操作是:尖角剔除30°以內的,如果是30°-60°則結合實際判斷取捨。
來看看第一次優化效果圖,紅線是取了開頭一部分數據做優化處理的結果。
在第一次優化基礎上進行第二次優化的結果,其中紅線是優化後結果,黑線是第一次優化的開頭區域的局部。
爲什麼還要留着向左向右的線段呢?爲什麼不直接從上到下呢?因爲車要掉頭啊,如果車輛在某一條路掉頭,形成尖角是很正常的。
獨孤尚良dugushangliang——著