Пример #1
0
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)
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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