我需要计算图像中用户位置到位置B的距离。我有订户的GPS坐标和" B"位置。我该如何计算距离?
答案 0 :(得分:0)
简单情况:以十进制形式表示纬度和长值,如果用户距离位置B小于100英里,则使用标准几何距离公式。距离= sqrt((lat1-lat2)^ 2 - (long1-long2)^ 2)。
更一般的情况:如果位置B可能是一个大陆或两个远离用户的大陆,则使用大圆圈使用半正公式来计算球体上点的距离,以便进行更精确的测量。让我们调用用户位置A并说出他在lat [a],long [a],而固定点B在lat [b],long [b]。设r代表地球的半径(约3961英里)。
距离= 2 * r * arcsin(sqrt(sin ^ 2((lat [b] -lat [a])/ 2)+ cos(lat [a])* cos(lat [b])* sin ^ 2((长并[b] - 长[A])/ 2)))
如果您以英里为单位指定r,您的答案将以英里为单位。如果你使用公里使用6373作为地球半径的好数字,当然答案将以公里为单位。
确切的情况:由于地球不是一个完美的球体,因此不会提供完美的答案。即使远离山脉和峡谷,地球在赤道处的半径也比在极地处的半径大。赤道半径为赤道约3963英里,极点约为3950英里。所以你真的需要设计自己的查找表(或者从谷歌地图中借一个),如果你在全球范围内测量距离并且你必须准确。
半胱氨酸配方精确到不到一半的百分点。在1000英里内,您的答案将精确到5英里内。
Haversine公式:https://en.wikipedia.org/wiki/Haversine_formula