4

我正在尝试使用谷歌的方向服务 api 查找从起点到目的地的旅行时间。我需要根据交通状况找出旅行时长。我尝试使用 javascript 并返回流量值的持续时间。但是当我在java中尝试同样的问题时,它似乎没有返回流量值的持续时间。那么如何使用google的direction services api获取流量持续时间呢?

网址url = new URL ("http://maps.googleapis.com/maps/api/directions/json?origin=" + URLEncoder.encode(origin, "UTF-8") +"&destination="+ URLEncoder.encode(destination, "UTF-8") +"&waypoints=optimize:true|Bagbazar,Kathmandu|Thapathali,Kathmandu|Kamal+Pokhari,Kathmandu"+"&sensor=false");

上面我已经粘贴了我用来发送到谷歌服务器的网址。下面是java脚本代码,在下面的代码中我可以设置durationInTraffic: true,返回交通条件下行驶所需的时间。java中的等效过程是什么?

 var request = {

      origin:"Wollongong, Australia",
      destination:"Sydney,Australia",
      travelMode: google.maps.DirectionsTravelMode.DRIVING,
      provideRouteAlternatives: true,
      durationInTraffic: true
    };
4

3 回答 3

0

查看地图文档页面Legs部分下的 duration_in_traffic 定义:

  1. 路线请求包括一个设置为当前时间几分钟内的值的离开时间参数。
  2. 该请求包括有效的 Maps for Business 客户端和签名参数。
  3. 请求路线的交通状况可用。
  4. 路线请求不包括中途停留航点。

也许他们列出的四个条件都没有得到满足?

该页面上还有一个JSON示例,如果有帮助,您可以使用示例 url。

于 2013-08-08T21:39:08.183 回答
0

在 Google API URL 中添加 &departure_time=now 它返回 duration_in_traffic 时间。now 表示 currentTime 或者您可以用毫秒时间代替 now。

如果您添加航点,则不会返回 duration_in_traffic

因为 google Api 提到的路线请求不包括中途停留航点。

但是如果您使用 via:lat,long 添加航点,那么它将返回流量中的持续时间,因为谷歌 API 不会将航点视为中途停留

于 2016-09-27T11:18:18.987 回答
-1

如果您设置了离开时间,您可以获得每条腿的 duration_in_traffic,但如果您希望每个步骤都获得 duration_in_traffic,您应该使用 distance_matrix API,并将这两者合并。在距离谷歌 API 中,您需要设置离开时间。

于 2018-03-03T13:32:49.757 回答