Esempio n. 1
0
def create_address_field(geocoding):
    if not geocoding:
        return None
    coord = geocoding.get('coord', {})
    lat = str(coord.get('lat')) if coord and coord.get('lat') else None
    lon = str(coord.get('lon')) if coord and coord.get('lon') else None

    return {
        "id": geocoding.get('id'),
        "label": geocoding.get('label'),
        "name": geocoding.get('name'),
        "coord": {
            "lat": lat,
            "lon": lon
        },
        "house_number": get_house_number(geocoding.get('housenumber'))
    }
Esempio n. 2
0
    def output(self, key, obj):
        if not obj:
            return None

        lon, lat = get_lon_lat(obj)
        geocoding = obj.get('properties', {}).get('geocoding', {})

        return {
            "id": '{};{}'.format(lon, lat),
            "coord": {
                "lon": lon,
                "lat": lat,
            },
            "house_number": get_house_number(geocoding.get('housenumber')),
            "label": geocoding.get('label'),
            "name": geocoding.get('name'),
            "administrative_regions":
                create_administrative_regions_field(geocoding) or create_admin_field(geocoding) ,
        }
Esempio n. 3
0
def create_address_field(geocoding, poi_lat=None, poi_lon=None):
    if not geocoding:
        return None
    coord = geocoding.get('coord', {})
    lat = str(coord.get('lat')) if coord and coord.get('lat') else poi_lat
    lon = str(coord.get('lon')) if coord and coord.get('lon') else poi_lon
    address_id = '{lon};{lat}'.format(lon=lon, lat=lat)
    resp = {
        "id": address_id,
        "label": geocoding.get('label'),
        "name": geocoding.get('name'),
        "coord": {
            "lat": lat,
            "lon": lon
        },
        "house_number": get_house_number(geocoding.get('housenumber')),
    }

    admins = create_administrative_regions_field(
        geocoding) or create_admin_field(geocoding)
    if admins:
        resp['administrative_regions'] = admins
    return resp
Esempio n. 4
0
 def get_house_number(self, obj):
     geocoding = obj.get('properties', {}).get('geocoding', {})
     return get_house_number(geocoding.get('housenumber'))