比较Marker.getPosition()和LatLang

时间:2016-12-05 14:59:13

标签: android google-maps gps

我的应用会定期更新GPS坐标,我在地图上使用标记显示。如果新的GPS坐标与Marker当前显示的坐标不同,我需要将标记移动到新位置。

问题是比较Marker.getPosition()更准确而LatLang不是,因此有时甚至当它们相同时,我的逻辑说它们是不同的。

enter image description here

如何解决这个问题? 请注意,同样的LatLang i指定给Marker。

1 个答案:

答案 0 :(得分:1)

如果它们之间的距离小于给定的容差,您可以认为两个LatLng实际上是相同的。

您可以使用Google Maps Android API Utility Library

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