Jeg ønsker at forespørge dynamisk på Google Maps via Google Directions API. Som eksempel beregner denne anmodning ruten fra Chicago, IL til Los Angeles, CA via to waypoints i Joplin, MO og Oklahoma City, OK:
Det returnerer et resultat i JSON-format.
Hvordan kan jeg gøre dette i Python? Jeg vil sende en sådan anmodning, modtage resultatet og analysere det.
Jeg anbefaler, at du bruger det fantastiske requests bibliotek:
import requests
url = 'http://maps.googleapis.com/maps/api/directions/json'
params = dict(
origin='Chicago,IL',
destination='Los+Angeles,CA',
waypoints='Joplin,MO|Oklahoma+City,OK',
sensor='false'
)
resp = requests.get(url=url, params=params)
data = resp.json() # Check the JSON Response Content documentation below
JSON Response Content: http://docs.python-requests.org/en/latest/user/quickstart/#json-response-content
Brug requests-biblioteket, udskriv resultaterne ret fint, så du bedre kan finde de nøgler/værdier, du ønsker at udtrække, og brug derefter indlejrede for-løkker til at analysere dataene. I eksemplet udtrækker jeg trin for trin kørselsvejledning.
import json, requests, pprint
url = 'http://maps.googleapis.com/maps/api/directions/json?'
params = dict(
origin='Chicago,IL',
destination='Los+Angeles,CA',
waypoints='Joplin,MO|Oklahoma+City,OK',
sensor='false'
)
data = requests.get(url=url, params=params)
binary = data.content
output = json.loads(binary)
# test to see if the request was valid
#print output['status']
# output all of the results
#pprint.pprint(output)
# step-by-step directions
for route in output['routes']:
for leg in route['legs']:
for step in leg['steps']:
print step['html_instructions']