【发布时间】:2011-04-04 12:18:29
【问题描述】:
是否可以使用从 google 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 返回的值到底是什么!我的意思是不是 deg-min-sec 吗?
谢谢...
【问题讨论】:
-
google 'great distance' - 您应该能够将这些 lat long 值传递给标准化函数以获取沿地球表面的距离。
-
在两极附近,经度的行为很有趣。在 +/-90 度纬度,经度 == 0 距离。所以我想毕达哥拉斯的方式不会在任何地方都有效。
-
如果您只是在最接近的位置之后,请不要在计算中进行平方根。如果 aa b (假设您保持一切积极)。保存根直到你真正需要距离值。
标签: google-maps distance latitude-longitude