google-maps - 两个经纬度点之间的距离

标签 google-maps distance latitude-longitude

可以使用从 google apis 返回的纬度和经度以经典方式比较距离(两点之间的距离: 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 是吗?

谢谢...

最佳答案

不,因为经线会向两极汇聚。如果您的点相对较近,您可以这样估算距离:

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

如果您需要在远距离上获得更高的精度,可以使用几个花哨的计算公式 great-circle distances ,但我发现在单位圆上转换为 3D 坐标更简单,然后做一个简单的毕达哥拉斯距离,然后是 2 sin-1(d/2) 转换回一个角度(尽管我可以理解有些人可能找不到这更简单,:-)。

关于google-maps - 两个经纬度点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5538324/

相关文章:

java - 当 location==null 时更改按钮的可见性

javascript - 从 Google Places API 调用中提取更多信息

Python嵌套循环和更新集

python - 找到图层中一个多边形到其他多边形的最小距离?

coordinates - 获取谷歌地图标记的像素坐标

android - Geocoder.getFromLocation grpc 在 Android 真机上失败

javascript - 将数组从 NodeJS 服务器传递到客户端?

javascript - 当复选框的容器还包含任何图像时,复选框会触发事件两次

java - 确定从给定位置到网格边缘的最短距离

mysql - 如何从表中获取 10 个最近的位置