我需要使用 Python 获取两组坐标之间的行驶时间。我能找到的唯一的 Google Maps API 包装器要么使用 Google Maps API V2(已弃用),要么没有提供驾驶时间的功能。我在本地应用程序中使用它,不想被绑定到使用 Google Maps API V3 可用的 JavaScript。
问问题
32987 次
4 回答
29
使用对 Google Distance Matrix API 和 json 解释器的 URL 请求,您可以执行以下操作:
import simplejson, urllib
orig_coord = orig_lat, orig_lng
dest_coord = dest_lat, dest_lng
url = "http://maps.googleapis.com/maps/api/distancematrix/json?origins={0}&destinations={1}&mode=driving&language=en-EN&sensor=false".format(str(orig_coord),str(dest_coord))
result= simplejson.load(urllib.urlopen(url))
driving_time = result['rows'][0]['elements'][0]['duration']['value']
于 2013-06-24T20:14:48.690 回答
18
import googlemaps
from datetime import datetime
gmaps = googlemaps.Client(key='YOUR KEY')
now = datetime.now()
directions_result = gmaps.directions("18.997739, 72.841280",
"18.880253, 72.945137",
mode="driving",
avoid="ferries",
departure_time=now
)
print(directions_result[0]['legs'][0]['distance']['text'])
print(directions_result[0]['legs'][0]['duration']['text'])
这是从这里获取的 ,或者您可以相应地更改参数。
于 2017-11-07T09:21:01.907 回答
3
更新了接受的答案以包含 API 密钥并使用字符串作为地址。
import simplejson, urllib
KEY = "xxxxxxxxxxxxxx"
orig = "Street Address 1"
dest = "Street Address 2"
url = "https://maps.googleapis.com/maps/api/distancematrix/json?key={0}&origins={1}&destinations={2}&mode=driving&language=en-EN&sensor=false".format(KEY,str(orig),str(dest))
result= simplejson.load(urllib.urlopen(url))
#print(result)
driving_time = result['rows'][0]['elements'][0]['duration']['text']
print(driving_time)
于 2020-07-29T00:03:09.417 回答
2
查看此链接: https ://developers.google.com/maps/documentation/distancematrix/#unit_systems
阅读“可选参数”部分。本质上,您将参数添加到您的 url 中的请求中。所以如果你想骑自行车,那就是“mode=bicycling”。查看链接底部的示例并使用一些参数。祝你好运!
于 2015-02-08T10:07:59.457 回答