diff --git a/mbta_finder.py b/mbta_finder.py index 3ce9df8..03071f7 100755 --- a/mbta_finder.py +++ b/mbta_finder.py @@ -10,6 +10,7 @@ import urllib # urlencode function import urllib2 # urlopen function (better than urllib version) import json +from pprint import pprint # Useful URLs (you need to add the appropriate parameters for your requests) @@ -17,7 +18,6 @@ MBTA_BASE_URL = "http://realtime.mbta.com/developer/api/v2/stopsbylocation" MBTA_DEMO_API_KEY = "wX9NwuHnZU2ToO7GmGR9uw" - # A little bit of scaffolding if you want to use it def get_json(url): @@ -25,8 +25,10 @@ def get_json(url): Given a properly formatted URL for a JSON web API request, return a Python JSON object containing the response to that request. """ - pass - + f = urllib2.urlopen(url) + response_text = f.read() + response_data = json.loads(response_text) + return response_data def get_lat_long(place_name): """ @@ -36,7 +38,11 @@ def get_lat_long(place_name): See https://developers.google.com/maps/documentation/geocoding/ for Google Maps Geocode API URL formatting requirements. """ - pass + url='https://maps.googleapis.com/maps/api/geocode/json?address='+urllib.quote_plus(place_name,',') + response_data=get_json(url) + latitude=response_data["results"][0]["geometry"]['location']['lat'] + longitude=response_data["results"][0]["geometry"]['location']['lng'] + return latitude , longitude def get_nearest_station(latitude, longitude): @@ -47,7 +53,9 @@ def get_nearest_station(latitude, longitude): See http://realtime.mbta.com/Portal/Home/Documents for URL formatting requirements for the 'stopsbylocation' API. """ - pass + url='http://realtime.mbta.com/developer/api/v2/stopsbylocation?api_key=GcnnA_0FvUy3GiSjKqLIYw&lat={}&lon={}&format=json'.format(latitude,longitude) + response_data=get_json(url) + return response_data['stop'][0]['stop_name'],response_data['stop'][0]['distance'] def find_stop_near(place_name): @@ -55,5 +63,9 @@ def find_stop_near(place_name): Given a place name or address, print the nearest MBTA stop and the distance from the given place to that stop. """ - pass + latitude,longitude=get_lat_long(place_name) + return get_nearest_station(latitude,longitude) + +response=find_stop_near('Wellesley College, Wellesley, MA') +print response