我正在尝试创建一个Android应用程序,它为我每移动2米我的位置更改更新。我正在使用的Api是:
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, (float)2, locationListener);
我可以用半正弦公式计算两个坐标之间的距离
我想知道我在纬度和纵向上移动了多远。
我的意思是,我想知道前一个位置的delta(x)
和delta(y)
米。我和我一起currentLat
,currentLong
,previousLat
,previousLong
。
例如:我在我的应用中获得了以下GPS坐标:
Latitude: 12.9812007 Longitude: 77.74348163
Latitude: 12.98119122 Longitude: 77.74348192
Latitude: 12.98118058 Longitude: 77.74348131
Latitude: 12.9812041 Longitude: 77.74350371
Latitude: 12.98119337 Longitude: 77.74350154
Latitude: 12.98117935 Longitude: 77.74350156
Latitude: 12.9811742 Longitude: 77.74349111
Latitude: 12.98116478 Longitude: 77.74348577
Latitude: 12.98114454 Longitude: 77.7434776
Latitude: 12.98113244 Longitude: 77.74347141
Latitude: 12.98112247 Longitude: 77.74346629
Latitude: 12.98111381 Longitude: 77.74347568<br/>
Latitude: 12.98112889 Longitude: 77.74348118
Latitude: 12.9811384 Longitude: 77.74348133
Latitude: 12.98114325 Longitude: 77.74346866
Latitude: 12.9811306 Longitude: 77.74345533
Latitude: 12.98112043 Longitude: 77.74344925
Latitude: 12.98110867 Longitude: 77.74344979
Latitude: 12.98109571 Longitude: 77.74345256
Latitude: 12.98110153 Longitude: 77.74346184
Latitude: 12.98111135 Longitude: 77.74346482
Latitude: 12.98112283 Longitude: 77.74346764
Latitude: 12.98113165 Longitude: 77.74347133
Latitude: 12.98114311 Longitude: 77.74347645
Latitude: 12.98115332 Longitude: 77.74348057
答案 0 :(得分:0)
如果您想分别了解两个位置之间的纬度差和纵向差异,那么您应该尝试下面给出的解决方案。
如果你有
currentLat = 12.98119122 currentLong = 77.74348192
和
previousLat = 12.9812007 previousLong = 77.74348163
然后找到latDifference
使用,
haversine(double currentLat, double previousLong, double previousLat, double previousLong)
这将为您提供两个位置之间的纬度差异,并查找longDifference
使用
haversine(double previousLat, double currentLong, double previousLat, double previousLong)
我假设你已经知道了你在问题中所说的半正式公式。
修改强>
要查找latDifference,请为当前经度和上一个经度使用相同的值
并找到longDifference在当前公式中使用当前纬度和先前纬度的相同值。