两个lat,lon点之间的距离

时间:2011-04-04 12:18:30

标签: google-maps distance latitude-longitude

使用从谷歌apis返回的纬度和经度,没有任何转换为​​米或某事,可以比较经典方式的距离(2点之间的距离:d = sqrt(pow(lat2-lat1, 2) + pow(lon2-lon1, 2)))吗?我需要它只是为了比较,找到从一系列点到参考点的最近点。例如:

让我们说我们有两个(lat,lon)点:(40.2535425,22.88245345)和(40.2565795,22.8884539) 我们想找到最接近的女巫(40.2335425,22.83245345)。可以应用上面的代码来查找距离吗?或者我们需要找到距离,比如以米为单位(使用半径公式或其他),首先是参考点的每个点,然后比较这些值?

我问这个问题是因为我不知道google apis返回的值究竟是什么,因为lat,lon!我的意思是他们不是最低分 - 是吗?

...谢谢

2 个答案:

答案 0 :(得分:2)

不,因为经度线会聚到两极。如果您的点相对较近,则可以近似距离:

d = sqrt(pow(lat2-lat1, 2) + cos(lat1)*pow(lon2-lon1, 2))

如果你需要更长距离的准确度,有几个奇特的公式用于计算great-circle distances,但我发现在单位圆上转换为3D坐标更简单然后做一个简单的毕达哥拉斯距离,然后是2个罪 -1 d / 2)转换回一个角度(虽然我可以理解有些人可能会发现发现这个更简单,: - )。

答案 1 :(得分:1)

您还可以使用新几何图书馆中的computeDistanceBetween(),我认为这会以米为单位返回距离