HarmonyOS 鸿蒙Next如何获取两个经纬度之间的距离

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next如何获取两个经纬度之间的距离

如何根据两个地理位置的经纬度,来获取两点之前的距离呢?   
 

2 回复

更多关于HarmonyOS 鸿蒙Next如何获取两个经纬度之间的距离的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,要获取两个经纬度之间的距离,你可以使用Haversine公式。这是一种常用于计算球面上两点间最短距离的公式。以下是一个简洁的实现思路:

  1. 定义函数:创建一个函数,接收两个经纬度点作为参数(每个点包含纬度和经度)。

  2. 地球半径:设定地球半径(一般取6371公里或3959英里)。

  3. 角度转弧度:将纬度和经度差转换为弧度。

  4. Haversine公式

    • 计算两点间纬度差的半角正弦平方和经度差的半角正弦平方。
    • 将上述值相加,乘以2,然后取平方根。
    • 使用反三角函数计算得到的值,再乘以地球半径,即得到两点间的距离。

以下是一个简化的伪代码实现:

double haversineDistance(double lat1, double lon1, double lat2, double lon2) {
    double R = 6371; // 地球半径,单位公里
    double dLat = toRadians(lat2 - lat1);
    double dLon = toRadians(lon2 - lon1);
    double a = sin(dLat / 2) * sin(dLat / 2) + cos(toRadians(lat1)) * cos(toRadians(lat2)) * sin(dLon / 2) * sin(dLon / 2);
    double c = 2 * atan2(sqrt(a), sqrt(1 - a));
    return R * c;
}

注意:上述代码中的toRadians函数用于将角度转换为弧度。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部