【问题标题】:Directions API returns different directions compared to google maps与谷歌地图相比,Directions API 返回不同的方向
【发布时间】:2026-01-31 07:00:01
【问题描述】:

我正在使用 Google Directions API 来查找起点和终点之间的路线,在这种情况下,起点是酒店,而终点是地铁站。

我获取路线的代码是

var request = {
    origin: start,
    destination: end,
    travelMode: 'DRIVING'
};
directionsService.route(request, function (result, status) {
    if (status == 'OK') {
        directionsDisplay.setDirections(result);
    }
});

获取路线后,地图显示不包含步行的路线,仅通过“驾驶”模式向用户显示路线,如here

sample application 表示对当前情况的了解 ....

但是,在谷歌地图中获取从同一起点到目的地的路线会显示一条更短且不同的路线,即尽可能使用驾驶和一些额外的步行来缩短路线,如here

如果有人可以帮助我弄清楚如何通过多种旅行模式实现从 A 点到 B 点的方向,我的情况是“驾驶”和“步行”模式以获得更短的路线.

谢谢

【问题讨论】:

  • 看起来您提供的代码使用的是 DIrectionsService,而不是标题中所述的 DistanceMatrix。它是哪一个?一般来说,Google Maps 和 Google Maps Javascript API 是不同的东西,虽然它们通常会返回相似或相同的结果,但不能保证它们会如此。请提供一个 minimal reproducible example 来证明您的问题,以及您要与之比较的 Google 地图的链接(而不是图片)
  • @geocodezip 谢谢,我已经编辑了这个问题。问题是谷歌地图使用“驾驶+步行”作为到达目的地的模式,但是在谷歌地图 JavaScript API 中,我只找到了仅使用单一模式的获取路线的方法,最终找不到更短的路线,这是可能的如果我们开车到目的地附近,然后步行一点。在 Google Maps JavaScript API 中查找路线时如何使用多种模式?

标签: javascript google-maps google-distancematrix-api google-directions-api


【解决方案1】:

我检查了您提供的demo 并注意到您使用LatLng 作为origindestination 参数的值。您用于原始参数的 LatLng 值是 25.1866073,55.2803321,而目标是 25.2013981,55.2694649。如果我们使用与 Google 地图相同的坐标,您会注意到您将获得same result

您可能会在上面提供的链接中注意到,您使用的目标坐标解析为名为@9​​87654329@ 的位置。这可能是您获得不同路线集的原因。

要获得与 Google 地图结果相同的所需路线,您可以使用不同的坐标集作为目标参数的值,例如 25.201270、55.269799,或者您也可以选择对两个起点都使用字符串值和请求的目标参数。这是一个示例fiddle

我希望这会有所帮助!

【讨论】: