纬度和经度距离分开了半身方法

时间:2015-06-22 19:42:45

标签: android google-maps

有谁知道在两个谷歌标记之间可以找到单独的纬度和经度距离?我可以使用这样的hasrsine方法得到总距离: Find distance between two points on map using Google Map API V2

我怎样才能获得每个价值?

由于

1 个答案:

答案 0 :(得分:0)

Marker类有Position属性,所以

double latitudeDifferenceInDegrees = marker1.getPosition().latitude - marker2.getPosition().latitude;
double longitudeDifferenceInDegrees = marker1.getPosition().longitude - marker2.getPosition().longitude;

您可以将纬度差转换为以米为单位的距离 - 每个度数等于110.574 kilometers

double latitudeDifferenceInMeters = latitudeDifferenceInDegrees * 110574;

你不能为经度做同样的事情。在赤道上,经度约为111公里,但在极点附近,它的数量要少得多。如果您只是短距离使用它,我会去

double longitudeDifferenceInMeters = longitudeDifferenceInDegrees * 111320 * Math.cos((marker1.getPosition().latitude + marker2.getPosition().latitude) / 2);

请注意,如果第一个标记位于第二个标记的南边或西边,则两者都可以给出负值。如果您只对正值感兴趣,请应用Math.abs()