gpt4 book ai didi

javascript - 如何根据 kml 路线获取两个 lat lng 坐标之间的距离?

转载 作者:行者123 更新时间:2023-12-03 09:41:45 26 4
gpt4 key购买 nike

我有一个从 Google 地球导出的 kml 文件,它本质上是伦敦泰晤士河部分的路径。我已使用 Javascript 将其作为 KmlLayer 放入 Google map 中。

我需要找到一种方法来计算路线上的一点与路线终点之间的距离。显然,它不能只是直线距离,因为路线向上、向下、向后、向前等。

我想不出使用 kml 文件和 Google map 来执行此操作的方法,因此任何其他建议或方法都可以。我也许可以从 kml 文件中收集坐标并在 map 上以另一种方式使用它们?但我不知道从哪里开始。

如果这个问题在其他地方得到了回答,我一如既往地道歉,但我已经看过了,但没有运气。

提前致谢,

亚当

the route, generated in google earth

最佳答案

我找到了一个解决方案,那就是将 kml 坐标提取到 JavaScript 对象数组中。

然后,我迭代该数组,并使用半正弦公式获取路线上每个点之间的距离,并为每个对象分配一个距离值(从路线的起点开始)。

从那里,我可以通过使用距离值计算出路线上每个点距离起点和终点的距离。

views.string = '-1.692525715111287,51.692324976351,0 -1.691353785046965,51.69214295521361,0 -1.690097310611129,51.69205100316109,0...//etc etc';

var array = views.string.split(',0 ');

map.route = [];

$.each(array, function (i, e) {
if ((i + 1) == array.length) {
e = e.replace(',0', '');
}
var coords = e.split(',');
map.route.push({ lat: parseFloat(coords[1]), lng: parseFloat(coords[0]) });
});

var distance = 0;
$.each(map.route, function (i, e) {
if (map.route[i - 1] != undefined) {
var d = map.getDistance(map.route[i - 1], e);
distance += d;
e.distance = distance;
}
else {
e.distance = distance;
}
});

关于javascript - 如何根据 kml 路线获取两个 lat lng 坐标之间的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31165659/

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