我的应用会定期更新GPS坐标,我在地图上使用标记显示。如果新的GPS坐标与Marker当前显示的坐标不同,我需要将标记移动到新位置。
问题是比较Marker.getPosition()更准确而LatLang不是,因此有时甚至当它们相同时,我的逻辑说它们是不同的。
如何解决这个问题? 请注意,同样的LatLang i指定给Marker。
答案 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
}