Android中關於軌跡定位點去噪演算法,使用簡單

2021-10-12 02:35:24 字數 1449 閱讀 2764

公司最近開發的專案需要在移動端進行軌跡點的去噪操作。本來吧,這個工作都是後台做的,基於能後台做移動端就不做的原則,一般這種演算法工作就交給後台了。但這次由於一些特殊情況需要移動端直接做了。於是有了下面的抽稀演算法,大家可以參考一下。我參考了如下文章,大家也可以看一下。

好了,現在開始說我的內容,首先這邏輯是這樣的,第乙個點我們記錄,第二個點和第乙個點距離要在合理範圍內,如果在,則第三個點直接可以記錄;如果不在合理範圍,第三個點和第二個點比較,如果第三個點和第二個點也不在合理範圍,說明第二個點不對。如果第三個點和第二個點在合理範圍,說明第乙個點不對。之後和上乙個點比較即可。

/**

* 根據兩點間經緯度座標(double值),計算兩點間距離,

* @param lat1

* @param lng1

* @param lat2

* @param lng2

* @return 距離:單位為公尺

*/public static double distanceoftwopoints(double lat1,double lng1,

double lat2,double lng2)

private static double rad(double d)

private static final double earth_radius = 6378137;

接著我們就要開始按照剛才的邏輯進行記錄了。我的記錄**如下

private static double mindistance = 1.4 * 5;//步行速度 1.39m/s

private static int maxdistance = 33 * 5;//開車速度(120km/h) 33m/s x 上傳間隔 5s

@override

public void onlocationchanged(amaplocation amaplocation) else if (listpoint.size() == 1){

//第二個點,要計算距離

listpoint.add(latlng);

//--計算距離

double distance = distanceoftwopoints(listpoint.get(0).getlatitude(),listpoint.get(0).getlontitude(),latlng.getlatitude(), latlng.getlontitude());

//判斷距離,如果符合,則直接加入,並開始繪製;如果不符合,計算第三個點

if (distance>mindistance && distancemindistance && distancemindistance && distancemindistance && distance這裡注意咱們最小和最大距離是按照5秒算的,也就是我的定位時常是5秒。這裡要靈活變化。

這樣就可以實現軌跡點去噪效果。服務端最後的顯示還可以用道格拉斯演算法實現一下抽稀。

android中判斷裝置定位狀態

boolean flag false locationmanager locationmanager locationmanager getsystemservice context.location service 通過gps衛星定位 boolean gps locationmanager.isp...

關於PHP爬蟲和Android定位的初步設想

利用php,對某天氣 爬蟲,每一小時爬一次。首先由使用者輸入指定城市。對 雨 雪 霧 風 等異常天氣做監控,如果某頁內容中含有關鍵字,則 1.向指定郵箱傳送郵件。可以是139 沃 天翼郵箱,以實現免費簡訊提醒。3.以某種方式實現ical檔案的輸出,輸出內容包括觸發警告的該日的所有天氣資訊,該檔案可匯...

關於css中的position定位

通常會提到的position有幾種 position static 就是標準流定位,是預設設定 position relative 是相對定位,這個相對是相對於標準流的,所以顯然元素不會脫離標準流。position absolute 是絕對定位,元素脫離標準流並且參照父元素進行定位。position...