gpt4 book ai didi

google-maps - 在 Google Maps API v3 中计算折线(路线)和标记之间的距离

转载 作者:行者123 更新时间:2023-12-04 06:59:32 26 4
gpt4 key购买 nike

是否有任何方便的方法来计算折线(由谷歌方向生成的路线)和不在该折线上的标记之间的直接(最短)距离?

我发现的唯一方法是循环浏览 Polyline.getPath()顶点手动计算最短距离,但似乎有点苛刻:

var path = routes[0].overview_path;

for (var i = 0; i < data.points.length; i++) {
var latLngA = new LatLng(data.points[i].lat, data.points[i].lng);
var shortest_distance = null;

for (var j = 0; j < path.length; j++) {
var distance = google.maps.geometry.spherical.computeDistanceBetween(latLngA, path[i]);

if (shortest_distance == null || distance < shortest_distance) {
shortest_distance = distance;
}
}

console.log(data.points[i].point_title, shortest_distance);
}

提前致谢!

最佳答案

据我所知,Google Maps API 并没有为您提供轻松做到这一点的方法。不幸的是,您使用的算法不会给出准确的答案,因为它给出了从标记到路径上最近顶点的距离,而不是折线本身上的最近点,这通常不是点之一。

如果您真的需要精确计算,我知道的最佳选择是使用 Javascript 拓扑套件 (JSTS)。 JSTS 有大量的地理公式来计算这类事情。这意味着将从路线 API 返回的折线转换为 JSTS 对象并调用正确的实用程序函数。不是微不足道的,但也不是太难。

关于google-maps - 在 Google Maps API v3 中计算折线(路线)和标记之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13750122/

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