2个小数点之间的距离[重复]
Posted
技术标签:
【中文标题】2个小数点之间的距离[重复]【英文标题】:Distance between 2 decimal points [duplicate] 【发布时间】:2016-01-18 22:10:23 【问题描述】:我有问题。如果我有一个点的纬度和经度(一辆带 GPS 的汽车),我如何在 C++ 中进行测试,并且我需要确定该点是否在圆的区域内。我的圆心是经纬度,半径是公里。
例如:
我是重点:
52.51523649714909 13.18586926568004
而圆心位置为:
48.147763 11.563454 半径:50公里
我从需要解决的项目中获得了这些值。
【问题讨论】:
参考本页:movable-type.co.uk/scripts/latlong.html 【参考方案1】:在这里查看Haversine 公式:Calculate distance between two latitude-longitude points? (Haversine formula)
【讨论】:
链接很好,但是前面的链接对OP没有用。 为什么?他仍然必须知道该点是否在正确的区域内,加上前面的内容将帮助他考虑一般需要做什么,除了公式 他需要点到圆心的距离。将 lat/log 值转换为 (x,y) 对并不能真正帮助他计算距离,尤其是在您靠近两极的情况下。 好吧,如果你在赤道,这会有所帮助:),另外,正如我所说,我不相信盲目地给出公式,一些逻辑(虽然可能是微不足道的)在很长的路要走帮助人们理解 是的,这可能是一个很好的近似值,具体取决于您在全球的哪个位置。另一方面,假设您的用户和您一样是错误的,并且将 Euclidean-approximation-that-works-near-me 应用于您的用户本质上是该错误的一种形式。宣传这个错误不是一个好主意。想出一个无论您的全局位置如何都能很好地工作的 Euclian 近似比直接使用 Haversine 复杂得多,因此没有充分的理由这样做。【参考方案2】:查看大圆距离 (https://en.wikipedia.org/wiki/Great-circle_distance) 和 Haversine 公式,这是计算该距离的一种方法 (https://en.wikipedia.org/wiki/Haversine_formula)
一旦您决定使用哪个公式来计算两点之间的距离,只需输入您的纬度和经度,您就会知道距离。如果那是
M
【讨论】:
以上是关于2个小数点之间的距离[重复]的主要内容,如果未能解决你的问题,请参考以下文章
计算由 lat,long 表示的两点之间的距离,精度高达 15 英尺