0
我的應用程序定期更新GPS座標,我在地圖上使用Marker顯示。如果新的GPS座標不同於標記目前顯示的位置,我需要將標記移動到新的位置。比較Marker.getPosition()和LatLang
問題是,比較Marker.getPosition()更準確,而LatLang不是,因此有時甚至當它們是相同的,我的邏輯說他們是不同的。
如何解決這個問題? 請注意,我分配給標記的LatLang也一樣。
我的應用程序定期更新GPS座標,我在地圖上使用Marker顯示。如果新的GPS座標不同於標記目前顯示的位置,我需要將標記移動到新的位置。比較Marker.getPosition()和LatLang
問題是,比較Marker.getPosition()更準確,而LatLang不是,因此有時甚至當它們是相同的,我的邏輯說他們是不同的。
如何解決這個問題? 請注意,我分配給標記的LatLang也一樣。
如果它們之間的距離小於給定的容差,則可以認爲兩個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
方法