如何计算 Google 地图上两点之间的距离(以米为单位)

How can I calculate distance (in meters) between two points on Google map

我将 L80 GPS 模块与我的 8 位处理器一起使用。 GPS 模块以 NMEA 格式的消息响应,给我有关日期、时间、纬度、经度、高度(如果可能)、卫星数量等的信息。

NMEA的纬度和经度信息以度和分的形式表示(DD°MM.mmm')。 我只能将它们转换为度数表示法 (DD.dddddd°)。

我有以下问题:给定一个特定的位置(例如48.858125,2.294398)和安全半径,比方说,50米(不超过300米),如何确定天气(a,b)点是否在安全圈内? 你能帮我算出隐藏在背后的数学吗?

简而言之,我希望您能帮助我确定 angular 坐标系中表示的地球上两点之间的距离(以米为单位)。有没有数学大师愿意帮助我? 请注意,我的计算点是我的处理器。

我知道,以度为单位的纬度和经度,我的点在 angular 坐标系中表示,而不是笛卡尔坐标系(线性)one.I 也知道通用转移墨卡托 (UTM) 表示法地球上的点在笛卡尔坐标系中。将度数符号 (DD.dddddd°) 转换为 UTM 符号是否更容易?我知道有一些在线工具可以进行转换。但是,我不懂数学。

非常感谢您花时间和精力帮助我。

此致,

博扬

只需使用半正弦公式计算地球上两点之间的距离即可。 搜索术语 "haversine" 和您的编程语言的名称。

Is it, maybe, easier to transform to UTM

不肯定不会。它非常复杂,当两点位于不同的UTM区域时,它变得非常复杂。

你可以简单地通过经纬度求出两点的距离b/w。

您可以在 this link.

上找到参考代码

希望对您有所帮助。