HarmonyOS鸿蒙Next中计算两个位置的距离,已知两个位置的经纬度

HarmonyOS鸿蒙Next中计算两个位置的距离,已知两个位置的经纬度 计算两个位置的距离,已知两个位置的经纬度, 请问用哪个方法可以实现

我现在有两个位置,

一个是接口下发的一个位置(经度1,纬度1),

另一个是通过华为的LocationKit获取的当前的位置(经度2,纬度2),

如果想要计算两个位置的距离, 请问需要将(经纬2,纬度2)通过map.convertCoordinate转换一下吗?

3 回复

请参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/map-map-V5#section1962210347237

需要调用map.convertCoordinate方法转化后在计算。

更多关于HarmonyOS鸿蒙Next中计算两个位置的距离,已知两个位置的经纬度的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,计算两个位置的距离可以使用GeolocationManager类中的方法来获取经纬度,并结合Location类中的distanceBetween方法来计算距离。以下是一个简化的代码示例:

import geolocation from '@ohos.geolocation';

// 假设已知两个位置的经纬度
let lat1 = 39.9042; // 位置1的纬度
let lon1 = 116.4074; // 位置1的经度
let lat2 = 31.2304; // 位置2的纬度
let lon2 = 121.4737; // 位置2的经度

// 用于存储计算结果的数组
let results = new Array(1);

// 使用distanceBetween方法计算距离
geolocation.Location.distanceBetween(lat1, lon1, lat2, lon2, results);

// 输出结果,results[0]即为两个位置的距离,单位为米
console.log('Distance between the two locations: ' + results[0] + ' meters');

distanceBetween方法通过传入两个位置的经纬度,计算出它们之间的直线距离,并将结果存储在results数组中。距离的单位为米。该方法使用了Haversine公式来计算地球表面两点之间的距离,考虑了地球的曲率。

在HarmonyOS鸿蒙Next中,计算两个位置的距离可以使用Location库中的geodeticDistance方法。该方法基于Haversine公式,通过两点的经纬度计算地球表面上的大圆距离。示例代码如下:

import ohos.location.Location;

// 经纬度1
double lat1 = 39.9042;
double lon1 = 116.4074;

// 经纬度2
double lat2 = 31.2304;
double lon2 = 121.4737;

// 计算距离
float distance = Location.geodeticDistance(lat1, lon1, lat2, lon2);

System.out.println("Distance: " + distance + " meters");

该方法返回的距离单位为米。

回到顶部