2016-12-05 108 views
0

我的應用程序定期更新GPS座標,我在地圖上使用Marker顯示。如果新的GPS座標不同於標記目前顯示的位置,我需要將標記移動到新的位置。比較Marker.getPosition()和LatLang

問題是,比較Marker.getPosition()更準確,而LatLang不是,因此有時甚至當它們是相同的,我的邏輯說他們是不同的。

enter image description here

如何解決這個問題? 請注意,我分配給標記的LatLang也一樣。

回答

1

如果它們之間的距離小於給定的容差,則可以認爲兩個LatLng幾乎相同。

您可以從Google Maps Android API Utility Library

float YOUR_TOLERANCE = 1; // 1 meter 
if (SphericalUtil.computeDistanceBetween(pos, buslatLng) < YOUR_TOLERANCE) { 
    // Both locations are considered the same 
} 
使用 SphericalUtil.computeDistanceBetween方法