Google 地图 URL 防止航路点重新排序

Google Maps URL prevent waypoint reorder

问题: Whosebug 上有一些关于构建 google 地图 url 以在浏览器中打开和显示路线的答案。参数说明如here

现在我有以下案例。我的起始地址和目标地址是相同的,并且之间有一些 waypoints。该路线由汽车行驶。 URL 看起来像:

https://www.google.ch/maps?saddr=Bern&daddr=Bern+to:Paris+to:Berlin+to:Rome+to:&dirflg=d

如果你点击这些 link 你会看到 google 重新排序了整个路线的点。先是起点,然后是终点,然后是所有的waypoints。而不是开始 -> waypoints -> 结束。发生这种重新排序是因为(且仅当)起始地址和目标地址相同时。

有人知道防止这种重新排序的方法(或参数)吗?谢谢 ;)

可能的解决方案或修改后的问题: 如果有另一种(官方记录的)方法来构建 URL 问题就可以解决。如果你点击link上方,手动将第二个Bern(结束地址)拖到最后执行请求,那么你会看到一个新的URL,格式如下:

https://www.google.ch/maps/dir/Bern/Paris,+Frankreich/Berlin,+Deutschland/Rom,+Italien/Bern(...剪切数据=等)

这 URL 将是我问题的答案,但我不知道我会如何影响例如出行方式(汽车、步行、公共交通、自行车)。这种 URL 格式是否记录在某处?

这些参数用于 "old" google 地图。新的 google 地图有所不同。现在有用于创建嵌入式地图的记录 API:

Google Maps Embed API

需要以下 URL 个参数:

  • origin 定义显示路线的起点。该值可以是地名或地址。该字符串应该是 URL 转义的,因此像 "City Hall, New York, NY" 这样的地址应该被转换为 City+Hall,New+York,NY。 (Google Maps Embed API 在转义空格时同时支持 + 和 %20。)
  • 目的地定义方向的终点。

以下URL参数是可选的:

  • waypoints 指定一个或多个中间地点以在起点和终点之间路由方向。多个 waypoints 可以通过使用竖线字符 (|) 分隔位置来指定(例如柏林,德国|巴黎,法国)。您最多可以指定 20 个 waypoints.
  • 模式定义了旅行的方式。选项包括驾车、步行(更喜欢人行道和人行道,如果可用)、骑自行车(通过自行车道和首选街道(如果可用))、公交或飞行。如果未指定模式,嵌入 API 将显示与指定路线最相关的一种或多种模式。
  • avoid 告诉 Google 地图避开收费站、轮渡 and/or 高速公路。使用竖线字符分隔多个值(例如 avoid=tolls|highways)。请注意,这并不排除包含受限功能的路线;它只是将结果偏向更有利的路线。
  • units 在结果中显示距离时指定公制或英制单位。如果未指定单位,则查询的来源国家/地区确定要使用的单位。

Your example using the Embed API

感谢 geocodezip 的示例,我意识到我在 url 中犯的错误。

以下无效: https://www.google.ch/maps?saddr=Bern&daddr=Bern+to:Paris+to:Berlin+to:Rome&dirflg=d

以下作品: https://www.google.ch/maps?saddr=Bern&daddr=Paris+to:Berlin+to:Rome+to:Bern&dirflg=d

我将 saddr = 源地址、daddr = 目标地址和 +to 误解为 waypoints。但事实上 daddr 必须是路线中的第二个点。路线的终点是最后的 +to 部分。