【问题标题】:Using Google maps api how to cmpare GPS coordinates(latti , longi) of two locations使用 Google maps api 如何比较两个位置的 GPS 坐标(纬度,经度)
【发布时间】:2015-10-17 09:50:09
【问题描述】:

在一个 Android 应用程序中,我遇到了一个问题,任何人都可以从地图中获取有关 GPS 坐标的信息,请帮助。

问题是如果我在地图上有两个不同点的坐标(纬度和经度),

我想检查这些点是否在地图上的同一位置 其次是根据任何标准,这两个点彼此更接近

例如..如果该点位于另一个点的 100m 半径内,它似乎更近。

【问题讨论】:

  • Location1.distanceTo(location2)

标签: android google-maps google-maps-api-3 gps


【解决方案1】:

你可以使用haversine公式计算两个点,

 public static void main(String[] args) {
    // TODO Auto-generated method stub
    final int R = 6371; // Radious of the earth
    Double lat1 = Double.parseDouble(args[0]);
    Double lon1 = Double.parseDouble(args[1]);
    Double lat2 = Double.parseDouble(args[2]);
    Double lon2 = Double.parseDouble(args[3]);
    Double latDistance = toRad(lat2-lat1);
    Double lonDistance = toRad(lon2-lon1);
    Double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2) + 
               Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) * 
               Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
    Double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    Double distance = R * c;

    System.out.println("The distance between two lat and long is::" + distance);

}

您可以比较这个距离。这将完成您的工作。

【讨论】:

  • 感谢您的回答...我得到了您的建议...这似乎是解决方案...但我对这个公式有点困惑...您能告诉我有关 hasrsine 的信息吗公式
  • 当然。实际上,代码本身就说明了一切。无论如何,关于这个公式你还想知道什么?
猜你喜欢
  • 2013-02-23
  • 2013-08-12
  • 2015-12-25
  • 2010-09-07
  • 2018-10-06
  • 1970-01-01
  • 2011-10-31
  • 2016-04-07
  • 1970-01-01
相关资源
最近更新 更多