使用 GPS 坐标计算道路距离
Road Distance Calculation using GPS Co-ordinate
我需要计算从用户位置到图像中位置 B 的距离。我有订户的 GPS 坐标和 "B" 位置。如何计算距离?
简单情况:如果用户距离位置 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 作为地球半径的一个很好的数字,当然答案会以公里为单位。
具体情况:haversine 公式不会提供完美的答案,因为地球不是一个完美的球体。即使除去高山和峡谷,地球赤道的半径也比两极大。赤道的半径是赤道大约 3963 英里,两极大约是 3950 英里。所以你真的需要设计自己的查找 table(或从 google 地图中借用一张)如果你要测量半个地球的距离并且你必须精确。
haversine 公式将精确到不到半个百分点。在 1000 英里内,您的答案将精确到 5 英里以内。
Haversine 公式:https://en.wikipedia.org/wiki/Haversine_formula
我需要计算从用户位置到图像中位置 B 的距离。我有订户的 GPS 坐标和 "B" 位置。如何计算距离?
简单情况:如果用户距离位置 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 作为地球半径的一个很好的数字,当然答案会以公里为单位。
具体情况:haversine 公式不会提供完美的答案,因为地球不是一个完美的球体。即使除去高山和峡谷,地球赤道的半径也比两极大。赤道的半径是赤道大约 3963 英里,两极大约是 3950 英里。所以你真的需要设计自己的查找 table(或从 google 地图中借用一张)如果你要测量半个地球的距离并且你必须精确。
haversine 公式将精确到不到半个百分点。在 1000 英里内,您的答案将精确到 5 英里以内。
Haversine 公式:https://en.wikipedia.org/wiki/Haversine_formula