我正在项目中使用谷歌方向API现在我还需要两个地方之间的估计旅行时间,包括交通。所以我按照谷歌方向API文档传递出发时间Thursday 07-January-2016 time: 14:10 PM ( 1452175200 )
。
查看实时谷歌地图和谷歌方向API之间的区别,并建议我做错了什么。
Live google map response: (Thursday 07-January-2016 time: 14:10 PM )
https://www.google.com/maps/dir/Los+Angeles+International+Airport,+1+World+Way,+Los+Angeles,+CA+90045,+United+States/Beverly+Hills,+CA/@34.0077875,-118.4795875,12z/data=!3m1!4b1!4m17!4m16!1m5!1m1!1s0x80c2b0d213b24fb5:0x77a87b57698badf1!2m2!1d-118.40853!2d33.9415889!1m5!1m1!1s0x80c2bc04d6d147ab:0xd6c7c379fd081ed1!2m2!1d-118.4003563!2d34.0736204!2m3!6e0!7e2!8j1452175200
typically 28 min - 1 h 15 min
typically 35 min - 1 h 10 min
02:14 PM to 03:28 PM 1 h 14 min
****************************
Google direction API:
//Source address
$a = 'Los Angeles International Airport, 1 World Way, Los Angeles, CA 90045, United States';
//Destination address
$b = 'Beverly Wilshire, Beverly Hills (A Four Seasons Hotel), 9500 Wilshire Boulevard, Beverly Hills, CA 90212, United
States';
//Pass source and destination address in google map API for PESSIMISTIC
$url = 'https://maps.googleapis.com/maps/api/directions/xml?origin='. urlencode($a).'&destination='. urlencode($b).'&departure_time=1452175200&mode=driving&traffic_model=pessimistic&key=AIzaSyC7h7m5bRs-BZwk0XTXEQTB74dZujeLzZs';
//output: duration_in_traffic = 38 mins
//Pass source and destination address in google map API for OPTIMISTIC
$url = 'https://maps.googleapis.com/maps/api/directions/xml?origin='. urlencode($a).'&destination='. urlencode($b).'&departure_time=1452175200&mode=driving&traffic_model=optimistic&key=AIzaSyC7h7m5bRs-BZwk0XTXEQTB74dZujeLzZs';
//output: duration_in_traffic = 27 mins
//Pass source and destination address in google map API for BEST_GUESS
$url = 'https://maps.googleapis.com/maps/api/directions/xml?origin='. urlencode($a).'&destination='. urlencode($b).'&departure_time=1452175200&mode=driving&traffic_model=best_guess&key=AIzaSyC7h7m5bRs-BZwk0XTXEQTB74dZujeLzZs';
//output: duration_in_traffic = 30 mins
两种反应必须相同或近似,但在这里我们可以看到巨大的差异。谁能建议我?
答案 0 :(得分:5)
API采用UTC的departure_time。
似乎实时Google地图采用原点的时区,当'离开'被选中(也许是目的地,当选择“到达时”)。
您的假设是实时Google地图时间是IST。
您在2016年1月7日14:10 PM的实时谷歌地图回复实际上意味着洛杉矶时间下午2:10,相当于2016年1月7日星期四,22:00:00 UTC(以及departure_time = 1452204600)。
2016年1月7日下午2:10实时Google地图结果:
从API获得相应时间的结果(departure_time = 1452204600):
PS:要获取与您的API结果相对应的实时地图结果,请选择'离开时间= 6:00 AM。
答案 1 :(得分:0)
我没有机会尝试使用您的代码,但我怀疑问题可能出在departure_time
参数上。
1452175200
是1月7日。2016年 - 14:00:00 - 这是正确的
documentation指定您可以将自1970年1月1日午夜起的整数时间指定为整数。
目前还不是很清楚,但我认为API希望您将时间用作UTC。
由于洛杉矶是UTC-8,您应该相应调整时间戳。
试一试,让我知道!