軌跡系列14——一條優美的軌跡線的誕生日記

文章版權由做者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/前端

此篇爲跨度兩年的軌跡系列文章總結之一。算法

1.軌跡,爲何須要「裝扮」

       得益於移動設備的普及性,在缺乏其餘監管手段的狀況下,城市管理中基於移動設備實現對人員、車輛的管理是十分行之有效的方法。其中軌跡的管理方案囊括了軌跡里程統計、工做狀態監管、實時位置查看、歷史軌跡回溯等等,而這一切方案可以真正的行之有效則必須依賴於一條足夠「優美」的軌跡線。只有軌跡線「優美」,統計纔會更精確、展現纔會更直觀。微信

      

       可是想把一條軌跡線處理到足夠優美,並非一件容易的事情,它受到太多太多的外部影響。這裏,我直接列出影響軌跡展現效果的主要因子,但願你們可以帶着這些問題一塊兒探討解決思路,瞭解原來一條優美的軌跡線後面有這麼多的故事:大數據

       a.座標採集頻率問題:軌跡線是由軌跡點鏈接組成,而軌跡點必定都是離散的,離散程度取決於座標獲取的頻率。頻率高,設備耗電,軌跡存儲增大,可是軌跡特徵明顯;頻率低,軌跡線特徵容易丟失。如何可以比較智能的調整座標上報頻率?優化

       b.座標採集保活問題:移動設備廣泛具備省電模式、息屏功能等,這些場景均容易致使GPS採集程序被系統清除,從而致使座標在某段時間忽然沒法採集、信號中斷。而互聯網APP卻每每早已被設備添加至白名單(與廠商有合做關係等),並不會有此問題。動畫

       c.軌跡座標轉換問題:GPS是WGS84座標,北斗是CGCS2000座標,而軌跡展現依託的地圖每每是各類不一樣座標系的地圖,二者直接須要進行座標轉換。並且不一樣於互聯網應用只採用一種地圖,只需解決一種座標類型的轉換,城市管理中須要解決的座標轉換具備地圖類型多、地圖精度不可控(如脫密地圖)等問題。而座標轉換的準確度將直接影響軌跡展現的效果。設計

       d.座標準確度問題:衛星定位最少要求4顆星同時觀測(因爲其三球定位原理,再加上把時間做爲變量,因此至少須要4顆星來觀測),而在很多狀況下,移動設備並不能知足同時接收到4顆以上衛星的信號(好比:室內、高層建築遮擋等),這將致使此時的衛星定位偏差很大。如何能夠提升衛星定位的準確度?blog

       e.軌跡座標去噪問題:座標準確度問題是一個不可避免的問題,在此狀況下,須要一套能夠對座標異常點進行去除的方法,從而保證軌跡展現的效果不受異常點的影響。遊戲

       f.軌跡線鏈接問題:軌跡線的逐點鏈接必然會致使線和線之間過渡不平滑,而且單純的軌跡點直連,還容易出現軌跡線「穿牆」問題(A點和B點分別在十字路口不一樣地方,AB直連將致使線條穿越中間的非路面建築)。進程

       g.軌跡播放問題:軌跡自然是動態的,僅僅以軌跡線描述不能真實展示軌跡的時空特徵。如何優美的展現軌跡動態,讓用戶具備看動畫片同樣的觀感?

   

2.優化,從座標採集開始

         在上述的各類軌跡展現影響因子中,GPS採集頻率、GPS採集保活、GPS準確度優化均屬於GPS獲取環節需解決的問題,而且是影響權重最大的問題,如下對此三點的解決作一個簡單的描述。

2.1座標採集頻率優化

        

       如前文所述,座標採集頻率直接關係到軌跡點的密度,理論上軌跡點是越密越好,可是實際中要考慮設備的耗電量、存儲的大小和有效值。舉以下幾個例子,能夠更好的理解軌跡採集頻率的調整策略:

       a.某監督員在一條筆直的道路上緩行,此時軌跡每隔20秒採一個軌跡點和每隔60秒採一個軌跡點的效果是同樣的,並不會對軌跡的展現有很大的影響。

       b.某監督員進入室內辦公,此時的場景與筆直路上緩行是同樣的。

       c.某監督員緩行時,忽然開始跑步,此時軌跡點每隔20秒與每隔60秒採集將有很大區別,由於此時間段內的直線距離會有較大區別,容易出現特徵點遺漏。

       基於以上三種情形,座標採集頻率的自動調整方案即可以作一個簡單的概括:

       a.系統有設置的默認採集頻率,針對人員和車輛是不一樣的。

       b.當連續多個採集點爲靜止或相差不大時(在閾值範圍內),此時能夠將座標採集頻率適當調慢。

       c.當連續多個採集點的距離大於閾值範圍時,此時能夠將座標採集頻率適當調快。

2.2座標採集程序保活優化

       咱們首先以研究「咕咚運動」的保活機制做爲例子來講明:

       (1)當"咕咚"處於中止狀態時,一鍵清理和黑屏狀態會被殺死,說明在沒有進入運動界面以前,其保活機制沒有被啓動(即沒有使運動界面切換到後臺等)。

       (2)當「咕咚」處於運動狀態時,一鍵清理和黑屏狀態沒有被殺死(滑動清理除外),說明已經啓動保活機制:

       a."咕咚"禁止了返回鍵,以保證運動Activity不被銷燬;

       b.不斷更新通知欄計時,以保證APP始終在前臺,防止被系統回收;

       c."咕咚"被清理後可以自動重啓,通知被刪除後自動彈出,說明可能有另一個東西(進程或Service)監聽器運動Service(或進程)存活狀態,當Service被銷燬時,立馬將其拉起來;

       d.「咕咚」被強制中止或清理殺死後,再次進入會直接顯示運動界面且可以保持殺死以前的運動狀態,說明其可能利用配置文件記錄了相關狀態;

       e.鎖屏/解鎖後,"咕咚"運動界面會自動彈出,說明其利用了廣播機制對鎖屏廣播進行監聽,彈出Activity以保證進程始終在前臺;
       總結「咕咚運動」的保活機制爲:常駐通知欄,雙進程守護,廣播鎖屏,自定義鎖屏。

       一樣,咱們也分別研究了「悅動力」、「悅動圈」這類運動APP,其保活機制大同小異,因此最終咱們將座標採集程序保活策略以如上分析進行了相關優化。

2.3座標準確度優化

       座標信號強度對定位準確度影響十分大,好比當設備在室內或者高樓下時,座標信號是明顯減弱的。此時咱們採用了以下優化策略:

       a.記錄信號強弱做爲後續軌跡奇異點(問題點)的篩選條件之一。

       b.當信號弱的超過必定閾值時,切換成百度定位方案。

3.擬合,讓軌跡點更有質量

       說完座標採集的系列優化方案,咱們接下來一塊兒探討從算法層面上對軌跡點進行優化的策略。依據實施條件不一樣,展現要求不一樣,這裏咱們前後從三個不一樣方向進行軌跡點擬合研究。

3.1 基於道路線的路網匹配擬合

         顧名思義,本方案必須有道路線數據,其原理爲將各軌跡點匹配至與道路垂直距離最近的節點上,而且將先後兩點沿道路順勢鏈接。

 

       優勢:軌跡所有在道路上,展現美觀。

       缺點:依賴於道路數據的完整性,而且展現有失真實。

3.2 基於時空聚類的去噪算法

       此算法的思路爲在儘可能不改變軌跡點的特徵狀況下,經過軌跡的時空聚類,將某些特徵類似的點聚在一處,從而減少因爲軌跡點打結致使的軌跡雜亂。可是本算法並不只僅是常規的空間聚類算法,因爲軌跡具備自然的時間屬性,不考慮軌跡的時間屬性進行聚類則會丟失軌跡的許多特徵信息。例如,雙行道道路,來回分別在不一樣的行道路上,若是不考慮時間維度,則會出現將雙行道上的軌跡點聚類到一個行道上。

       優勢:解決了軌跡點打結展現問題。

       缺點:對於軌跡點之間的鏈接並無平滑處理。

3.3 基於卡爾曼濾波的軌跡優化方案

       卡爾曼濾波(Kalman filtering)一種利用線性系統狀態方程,經過系統輸入輸出觀測數據,對系統狀態進行最優估計的算法。其在軌跡處理中,能夠達到經過預測軌跡點與實際軌跡點之間的誤差來進行軌跡位置的調整,實現軌跡的平滑。

 

       優勢:軌跡線變的曲線平滑,更加美觀。

       缺點:平滑度很難控制,致使軌跡有失真實,軌跡特徵變模糊,而且軌跡噪聲點對總體平滑效果影響很大。

3.4 最終擬合方案

         以上方案各有優劣,可是若是可以進行有效的綜合,而且再加上其餘的數據處理流程,軌跡點的質量將會提高更多。具體描述以下:

  1. 經過座標的準確度參數,去除一部分偏差特別大的軌跡點。
  2. 經過計算軌跡點速率異常變化,去除一部分「飛點」。
  3. 基於時空聚類算法,進行軌跡點聚合。
  4. 經過卡爾曼濾波進行軌跡平滑美化,且控制平滑度過大。
  5. 針對車輛軌跡,在存在無缺的道路線數據時,採用路網匹配算法。

 

4.動效,讓軌跡展現具備「觀影」感覺

4.1 平滑動起來的人(車)

       靜止的人(車)圖標沒法表示真實的變化,隨着位置座標的獲取而跳躍變化的人(車)圖標又頗顯突兀,若是能實時的、平滑的顯示人(車)位置變化將會使用戶具備更強的「參與」感。咱們以人的展現爲例,爲實現該目標,咱們設計了16個方向的人員圖標,根據座標點之間的角度計算來選擇不一樣的人員圖標,而且經過計算兩點距離和播放速度來計算人員前進時的圖標變化,最終實現諸如前進時人手的左右搖擺效果等。

                   

4.2 流動的軌跡箭頭

       軌跡箭頭的流動除了能夠增長總體軌跡展現的動效,更可以表示出軌跡的方向特徵。可是軌跡箭頭過於密集,也會影響軌跡的美觀。綜合設計,當地圖縮放到必定級別後,此時出現軌跡箭頭流動特效。

 

4.3 類「滴滴」的多軌跡展現效果

       「滴滴」這類互聯網軌跡展現方案已經愈來愈被大衆所接受,尤爲是多車輛(人員)的實時軌跡展現上。經過在軌跡大數據存儲、軌跡信息流、前端展現算法的不斷研究下,目前展現上基本可與之靠齊,而且也前後獲得了實際項目的驗證,其中某揚塵項目爲監控整個城市1.6萬輛車24小時的實時軌跡。

 

4.4二三維一體的軌跡展現特效

         在三維場景中實現對軌跡的展現,將更加具備視覺的直觀性、衝擊力。而且藉助遊戲場景展現的思路,將會讓用戶有更好的互動感。

 

 

                     -----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

                                                                           若是您以爲本文確實幫助了您,能夠微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

                           

相關文章
相關標籤/搜索