def get_latlng(address): extra_data = { 'address': address, } params = { 'sensor': 'false', 'address': address, } key = get_server_api_key(use_pool=True) if key: params['key'] = key response = requests.get(GOOGLE_GEOCODING_API_URL, params=params) if response.status_code == requests.codes.okay: # initialize latitude, longitude to None latitude = None longitude = None data = json.loads(response.text) try: extra_data['response_data'] = data #location = data['results'][0]['geometry']['location'] results = data.get('results', []) if data.get('status') != 'OK': _report_message('Geocode address failure', level='error', extra_data=extra_data) elif len(results) > 0: result = results[0] location = result.get('geometry', {}).get('location', None) if location is None: # address could not be geocoded _report_message( 'Geocode address failure: Address could not be geocoded', level='info', extra_data=extra_data) else: latitude = location['lat'] longitude = location['lng'] else: _report_message('Geocode address failure: No results found', level='info', extra_data=extra_data) except ValueError, e: # likely to be caused by invalid JSON extra_data['error'] = '%s' % e _report_exc_info(extra_data=extra_data) except KeyError, e: # likely to be caused by location missing 'lat' or 'lng' extra_data['error'] = '%s' % e _report_exc_info(extra_data=extra_data)
def reverse_geocode(latitude, longitude): params = { 'sensor' : 'false', 'latlng' : '%s,%s' % (latitude, longitude,) } key = get_server_api_key() if key: params['key'] = key response = requests.get(GOOGLE_GEOCODING_API_URL, params=params) data = json.loads(response.text) try: location = data['results'][0] address = location['formatted_address'] except KeyError, k: address = None
def get_latlng(address): extra_data = { 'address' : address, } params = { 'sensor' : 'false', 'address' : address, } key = get_server_api_key(use_pool=True) if key: params['key'] = key response = requests.get(GOOGLE_GEOCODING_API_URL, params=params) if response.status_code == requests.codes.okay: # initialize latitude, longitude to None latitude = None longitude = None data = json.loads(response.text) try: extra_data['response_data'] = data #location = data['results'][0]['geometry']['location'] results = data.get('results', []) if data.get('status') != 'OK': _report_message('Geocode address failure', level='error', extra_data=extra_data) elif len(results) > 0: result = results[0] location = result.get('geometry', {}).get('location', None) if location is None: # address could not be geocoded _report_message('Geocode address failure: Address could not be geocoded', level='info', extra_data=extra_data) else: latitude = location['lat'] longitude = location['lng'] else: _report_message('Geocode address failure: No results found', level='info', extra_data=extra_data) except ValueError, e: # likely to be caused by invalid JSON extra_data['error'] = '%s' % e _report_exc_info(extra_data=extra_data) except KeyError, e: # likely to be caused by location missing 'lat' or 'lng' extra_data['error'] = '%s' % e _report_exc_info(extra_data=extra_data)
def reverse_geocode(latitude, longitude): params = { 'sensor': 'false', 'latlng': '%s,%s' % ( latitude, longitude, ) } key = get_server_api_key(use_pool=True) if key: params['key'] = key response = requests.get(GOOGLE_GEOCODING_API_URL, params=params) data = json.loads(response.text) try: location = data['results'][0] address = location['formatted_address'] except KeyError, k: address = None
def get_latlng(address): params = { 'sensor' : 'false', 'address' : address, } key = get_server_api_key() if key: params['key'] = key response = requests.get(GOOGLE_GEOCODING_API_URL, params=params) if response.status_code == requests.codes.okay: data = json.loads(response.text) try: location = data['results'][0]['geometry']['location'] latitude = location['lat'] longitude = location['lng'] except KeyError, k: latitude = None longitude = None except IndexError: # address could not be geocoded # most likely did not have data['results'][0] latitude = None longitude = None
def get_latlng(address): params = { 'sensor': 'false', 'address': address, } key = get_server_api_key(use_pool=True) if key: params['key'] = key response = requests.get(GOOGLE_GEOCODING_API_URL, params=params) if response.status_code == requests.codes.okay: data = json.loads(response.text) try: location = data['results'][0]['geometry']['location'] latitude = location['lat'] longitude = location['lng'] except KeyError, k: latitude = None longitude = None except IndexError: # address could not be geocoded # most likely did not have data['results'][0] latitude = None longitude = None