高德可以根据一组连续的 gps 位置信息计算距离吗

2020-04-13 08:52:56 +08:00
 honglei92

高德可以根据一组连续的 gps 位置信息计算距离吗?我本地连续记录当前 gps 位置信息 可以换算距离吗?

11578 次点击
所在节点    Android
17 条回复
CloudnuY
2020-04-13 08:58:07 +08:00
sunjiayao
2020-04-13 09:05:38 +08:00
曾经弄过,但记不太清了。当时好像是通过路径导航+必经点 api 返回里是有距离的。如果只计算直线距离的话,用楼上发的「两点间的直线距离计算」就能实现了。
LaughingCat
2020-04-13 09:10:19 +08:00
opengps
2020-04-13 09:13:17 +08:00
我这里有工具,参考我的 json 模板替换下你的参数 https://www.opengps.cn/Map/Path/Index.aspx?from=v2ex
hws8033856
2020-04-13 10:30:43 +08:00
两坐标直线距离计算的算法网上大把,不需要高德提供 api 吧?
hugee
2020-04-13 10:34:27 +08:00
@opengps opengps 大佬,有没有什么可靠的 app 可以记录每天轨迹,可以导出 kml 的?
xuanbg
2020-04-13 10:42:08 +08:00
路径规划接口,传入途经点。
princelai
2020-04-13 10:46:56 +08:00
为什么非要用高德呢,Python 自己写,搜 haversine 距离或球面距离,或者直接用 geopy 包,自己写的话配合 numba 也很快,我就这么干的
ixx
2020-04-13 11:42:15 +08:00
看你怎么计算了 直接算两点距离有误差 还要看取点的频率 想要准确的话要保证取点频率不能太低
realpg
2020-04-13 11:44:51 +08:00
@hugee #6
随便一款自行车骑行软件
l0wkey
2020-04-13 12:06:00 +08:00
l0wkey
2020-04-13 12:07:42 +08:00
jorneyr
2020-04-13 12:12:36 +08:00
使用经纬度计算 2 点之间的距离

```java
/**
* 根据经纬度计算两点之间的距离 (m)
*/
public class LBSUtils {
public static final double EARTH_RADIUS = 6378137; // 地球的半径 (m)

/**
* 根据经纬度计算两点之间的距离 (m)
*
* @param lng1 位置 1 的经度
* @param lat1 位置 1 的纬度
* @param lng2 位置 2 的经度
* @param lat2 位置 2 的纬度
* @return 返回距离
*/
public static double getDistance(double lng1, double lat1, double lng2, double lat2) {
double radLat1 = radian(lat1);
double radLat2 = radian(lat2);

double a = radLat1 - radLat2;
double b = radian(lng1) - radian(lng2);
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
+ Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
s = s * EARTH_RADIUS;
s = Math.round(s * 100) / 100.0;

return s;
}

private static double radian(double d) {
return d * Math.PI / 180.0;
}

public static void main(String[] args) {
double lat1 = 39.964145, lng1 = 116.384996, lat2 = 39.964533, lng2 = 116.385243;
double distance = LBSUtils.getDistance(lat1, lng1, lat2, lng2);
System.out.println("Distance: " + distance + " 米");
}
}
```
opengps
2020-04-13 12:20:43 +08:00
@hugee 考虑下佳明之类的专用设备。尽量避免使用 app 来定位,如果唤起 GPS 模块工作,耗电很厉害的
duwan
2020-04-13 12:25:27 +08:00
jts 就可以计算,用不到高德
honglei92
2020-05-17 10:31:05 +08:00
@duwan 什么 jts
duwan
2020-05-18 10:14:01 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/661809

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX