是否有任何数学公式可以在不使用谷歌地图的情况下计算 2 个坐标之间的公里数。
所以等等。
FirstCoor = 33.45674,44.3453453 SecondCoor = 34.53434,45.345325
如何在这两个坐标之间获得公里?
是一个简单的公式还是复杂的?
是否有任何数学公式可以在不使用谷歌地图的情况下计算 2 个坐标之间的公里数。
所以等等。
FirstCoor = 33.45674,44.3453453 SecondCoor = 34.53434,45.345325
如何在这两个坐标之间获得公里?
是一个简单的公式还是复杂的?
你想要两点之间的所谓“大圆距离”。这基本上是球体表面两点之间的最短路径。(地球不是一个球体,但它足够接近。)
无论如何,重点是找到从球心到每个点的两条线之间的角度。乘以球体的半径,这就是你的距离。
最基本的公式之一是基于“余弦球面定律”。
(谢谢,维基百科!:))
φ 1和φ 2表示两点的纬度,Δλ是经度差。Δσ是两点之间的夹角;假设它是弧度,你可以将它乘以球体的半径,这样你就可以得到连接它们的弧的长度。
在 JavaScript 中:
function arc_distance(loc1, loc2) {
var rad = Math.PI / 180,
earth_radius = 6371.009, // close enough
lat1 = loc1.lat * rad,
lat2 = loc2.lat * rad,
dlon = Math.abs(loc1.lon - loc2.lon) * rad,
M = Math;
return earth_radius * M.acos(
(M.sin(lat1) * M.sin(lat2)) + (M.cos(lat1) * M.cos(lat2) * M.cos(dlon))
);
}
当这个公式第一次在计算机上使用时,它在短距离上真的很糟糕。但当时的数字也小了很多。由于 JS 中的数字是 64 位的,因此准确性比一些人警告的要好得多。它可以轻松处理不到一公里的距离,即使不到一米,它也可以合理地接近其他方法。
我认为您需要旅行距离。正确的?以下链接中的公式仅给出从一点到另一点的直线距离。
http://www.movable-type.co.uk/scripts/latlong.html
如果您需要从一个点到另一点的确切行程距离,请使用谷歌距离矩阵。您可以在https://developers.google.com/maps/documentation/distancematrix/上找到它
也参考这个答案。 使用谷歌地图api计算两点之间的距离?