如何计算两个经纬度之间的距离[重复]
Posted
技术标签:
【中文标题】如何计算两个经纬度之间的距离[重复]【英文标题】:How to calculate distance between two latitude and longitude [duplicate] 【发布时间】:2017-01-26 20:02:18 【问题描述】:我想计算我读过的关于 Haversine Formula 和 Spherical Law of Cosines 的 2 个纬度和经度点之间的距离,用于计算两点之间的距离,但我的主要动机是在米中获得 2 点之间的最佳位置差异。
例如两台设备并排放置,安卓设备正在向服务器发送位置,因此我们需要获取每台设备的位置并计算这两个设备之间的最小距离(以米为单位) .设备并排放置时,位置差异应为 2-3 米
那么当设备彼此相邻时,计算两个设备之间的最小距离(以米为单位)的可能方法是什么
编辑 1: 我需要计算以公里或英里为单位的距离,这在设备彼此相邻时差异很大。 Haversine Formula 和 Spherical Law of Cosines 是我找到的最佳计算方法,但我需要在这些公式中做更多的工作才能获得 2 个设备之间的最小差异。不在 android 设备上。此问题与This Question无关
【问题讨论】:
@VladMatvienko 我需要使用上面的公式来计算和结果需要以米为单位,只能以几米为单位。阅读两个不同的问题 如果您不计算 Android 中两个经纬度点之间的距离,则不应将您的问题标记为“android”或“google-maps”,因为它们不相关。 你说的“两个设备之间的最小距离”是什么意思?两点之间的距离只是一个值,那么最小值是什么意思?请在您的问题中解释。 私人浮动距离(双纬1,双纬1,双纬2,双lon2)浮动[]距离=新浮动[2]; Location.distanceBetween(lat1, lon1, lat2, lon2, 距离);返回距离[0]; 【参考方案1】:可以计算两个经纬度的距离
Location loc1 = new Location("");
loc1.setLatitude(lat1);
loc1.setLongitude(lon1);
Location loc2 = new Location("");
loc2.setLatitude(lat2);
loc2.setLongitude(lon2);
float distanceInMeters = loc1.distanceTo(loc2);
【讨论】:
以上是关于如何计算两个经纬度之间的距离[重复]的主要内容,如果未能解决你的问题,请参考以下文章