def from_geojson(cls, data):
        properties = data.get('properties')
        properties = {k: safe_decode(v) if k in cls.field_map.aliases else v for k, v in six.iteritems(properties)}
        fields = cls.field_map.replace(properties)
        lon, lat = data.get('geometry', {}).get('coordinates', (None, None))
        try:
            lat, lon = latlon_to_decimal(lat, lon)
        except ValueError:
            lat = lon = None

        if lat is not None:
            fields[Coordinates.LATITUDE] = lat
        if lon is not None:
            fields[Coordinates.LONGITUDE] = lon

        return fields