gpt4 book ai didi

javascript - 如何在谷歌地图中获取经纬度和纬度的总距离

转载 作者:行者123 更新时间:2023-11-30 13:19:14 26 4
gpt4 key购买 nike

我每 5-7 秒将 gps 信号保存到数据库中。当我从数据库中“求和”所有 lat 和 lng 值时,我如何才能看到我已经走了多远。我怎样才能每天看到这个结果?

例如。当我在实时预览中跟踪汽车时,我希望有一段距离可以作为当天的实时数据。例如,当我在寻找某辆卡车的一个月公里数时?

我在看 THIS链接,但我不知道如何动态填充数据,因为数组中已有数据。

如果你已经实现了同样的事情,你能给我一些想法和例子吗?

既然轮子已经造好了,为什么还要造轮子:)

谢谢

最佳答案

一些三 Angular 函数会让你到达那里。

我希望 Lat/Lng 像二维表面上的 X/Y 坐标一样简单。不幸的是,由于我们生活在一个称为地球的(非常美妙的)球体上,纬度和经度指的是三 Angular 形相对于地球中心(纬度)或我们在地球上绘制的假想线(经度)的 Angular 。 History stuff is neat ,但这不是重点。

我已经使用 Haversine forumla 计算球体上的距离,您可以 read more about如果你愿意的话。

为了简单起见,我将在此处发布代码。我用 Javascript 编写的,所以这就是你得到的 :) 给定两个纬度/经度点 A 和 B,然后:

// units can be english (miles) or metric (km)
var units = "english";
function calculate_distance(a, b) {
var R = (units == "english") ? 3958.7558 : 6371;

var dLat = (a.lat - b.lat) * Math.PI / 180;
var dLon = (a.lng - b.lng) * Math.PI / 180;
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(a.lat * Math.PI / 180) * Math.cos(b.lat * Math.PI / 180) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return R * c;
}

如果您在点对之间迭代应用此函数并对距离求和...宾果游戏。

function get_distance(list_of_points) {
if (list_of_points.length == 0) return 0;

var sum = 0;
var last_point = list_of_points.shift();
while (list_of_points.length > 0) {
var next_point = list_of_points.shift();
sum += calculate_distance(last_point, next_point);
last_point = next_point;
}

return sum;
}

关于javascript - 如何在谷歌地图中获取经纬度和纬度的总距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10873984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com