[polygons] Aliasing names for various polygons types
This commit is contained in:
@@ -43,62 +43,68 @@ class ReverseGeocoder(RTreePolygonIndex):
|
|||||||
|
|
||||||
sort_levels = {k: i for i, k in enumerate(sorted_levels)}
|
sort_levels = {k: i for i, k in enumerate(sorted_levels)}
|
||||||
|
|
||||||
|
NAME = 'name'
|
||||||
|
CODE = CODE
|
||||||
|
LEVEL = 'level'
|
||||||
|
GEONAMES_ID = 'geonames_id'
|
||||||
|
WOE_ID = 'woe_id'
|
||||||
|
|
||||||
polygon_properties = {
|
polygon_properties = {
|
||||||
COUNTRIES_FILENAME: {
|
COUNTRIES_FILENAME: {
|
||||||
'qs_a0': safe_decode,
|
NAME: ('qs_a0', safe_decode),
|
||||||
'qs_iso_cc': safe_decode,
|
CODE: ('qs_iso_cc', safe_decode),
|
||||||
'qs_level': safe_decode,
|
LEVEL: ('qs_level', safe_decode),
|
||||||
'qs_gn_id': str_id,
|
GEONAMES_ID: ('qs_gn_id', str_id),
|
||||||
'qs_woe_id': str_id,
|
WOE_ID: ('qs_woe_id', str_id),
|
||||||
},
|
},
|
||||||
ADMIN1_FILENAME: {
|
ADMIN1_FILENAME: {
|
||||||
'qs_a1': safe_decode,
|
NAME: ('qs_a1', safe_decode),
|
||||||
'qs_a1_lc': safe_decode,
|
CODE: ('qs_a1_lc', safe_decode),
|
||||||
'qs_level': safe_decode,
|
LEVEL: ('qs_level', safe_decode),
|
||||||
'qs_gn_id': str_id,
|
GEONAMES_ID: ('qs_gn_id', str_id),
|
||||||
'qs_woe_id': str_id,
|
WOE_ID: ('qs_woe_id', str_id),
|
||||||
},
|
},
|
||||||
ADMIN1_REGION_FILENAME: {
|
ADMIN1_REGION_FILENAME: {
|
||||||
'qs_a1r': safe_decode,
|
NAME: ('qs_a1r', safe_decode),
|
||||||
'qs_a1r_lc': safe_decode,
|
CODE: ('qs_a1r_lc', safe_decode),
|
||||||
'qs_level': safe_decode,
|
LEVEL: ('qs_level', safe_decode),
|
||||||
'qs_gn_id': str_id,
|
GEONAMES_ID: ('qs_gn_id', str_id),
|
||||||
'qs_woe_id': str_id,
|
WOE_ID: ('qs_woe_id', str_id),
|
||||||
},
|
},
|
||||||
ADMIN2_FILENAME: {
|
ADMIN2_FILENAME: {
|
||||||
'qs_a2': decode_latin1,
|
NAME: ('qs_a2', decode_latin1),
|
||||||
'qs_a2_lc': safe_decode,
|
CODE: ('qs_a2_lc', safe_decode),
|
||||||
'qs_level': safe_decode,
|
LEVEL: ('qs_level', safe_decode),
|
||||||
'qs_gn_id': str_id,
|
GEONAMES_ID: ('qs_gn_id', str_id),
|
||||||
'qs_woe_id': str_id,
|
WOE_ID: ('qs_woe_id', str_id),
|
||||||
},
|
},
|
||||||
ADMIN2_REGION_FILENAME: {
|
ADMIN2_REGION_FILENAME: {
|
||||||
'qs_a2r': safe_decode,
|
NAME: ('qs_a2r', safe_decode),
|
||||||
'qs_a2r_lc': safe_decode,
|
CODE: ('qs_a2r_lc', safe_decode),
|
||||||
'qs_level': safe_decode,
|
LEVEL: ('qs_level', safe_decode),
|
||||||
'qs_gn_id': str_id,
|
GEONAMES_ID: ('qs_gn_id', str_id),
|
||||||
'qs_woe_id': str_id,
|
WOE_ID: ('qs_woe_id', str_id),
|
||||||
},
|
},
|
||||||
LOCAL_ADMIN_FILENAME: {
|
LOCAL_ADMIN_FILENAME: {
|
||||||
'qs_la': safe_decode,
|
NAME: ('qs_la', safe_decode),
|
||||||
'qs_la_lc': safe_decode,
|
CODE: ('qs_la_lc', safe_decode),
|
||||||
'qs_level': safe_decode,
|
LEVEL: ('qs_level', safe_decode),
|
||||||
'qs_gn_id': str_id,
|
GEONAMES_ID: ('qs_gn_id', str_id),
|
||||||
'qs_woe_id': str_id,
|
WOE_ID: ('qs_woe_id', str_id),
|
||||||
},
|
},
|
||||||
LOCALITIES_FILENAME: {
|
LOCALITIES_FILENAME: {
|
||||||
'qs_loc': safe_decode,
|
NAME: ('qs_loc', safe_decode),
|
||||||
'qs_loc_alt': safe_decode,
|
CODE: ('qs_loc_alt', safe_decode),
|
||||||
'qs_level': safe_decode,
|
LEVEL: ('qs_level', safe_decode),
|
||||||
'qs_gn_id': str,
|
GEONAMES_ID: ('qs_gn_id', str),
|
||||||
'qs_woe_id': str,
|
WOE_ID: ('qs_woe_id', str),
|
||||||
},
|
},
|
||||||
NEIGHBORHOODS_FILENAME: {
|
NEIGHBORHOODS_FILENAME: {
|
||||||
'name': safe_decode,
|
NAME: (NAME, safe_decode),
|
||||||
'name_en': safe_decode,
|
CODE: ('name_en', safe_decode),
|
||||||
'qs_level': safe_decode,
|
LEVEL: ('qs_level', safe_decode),
|
||||||
'woe_id': str_id,
|
GEONAMES_ID: (WOE_ID, str_id),
|
||||||
'gn_id': str_id,
|
WOE_ID: ('gn_id', str_id),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,18 +136,17 @@ class ReverseGeocoder(RTreePolygonIndex):
|
|||||||
|
|
||||||
if include_props:
|
if include_props:
|
||||||
have_all_props = False
|
have_all_props = False
|
||||||
for k, func in include_props.iteritems():
|
for k, (prop, func) in include_props.iteritems():
|
||||||
v = properties.get(k, None)
|
v = properties.get(prop, None)
|
||||||
if v is not None:
|
if v is not None:
|
||||||
try:
|
try:
|
||||||
properties[k] = func(v)
|
properties[k] = func(v)
|
||||||
except Exception:
|
except Exception:
|
||||||
print properties
|
|
||||||
break
|
break
|
||||||
|
|
||||||
else:
|
else:
|
||||||
have_all_props = True
|
have_all_props = True
|
||||||
if not have_all_props:
|
if not have_all_props or not properties.get(NAME):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
poly_type = rec['geometry']['type']
|
poly_type = rec['geometry']['type']
|
||||||
|
|||||||
Reference in New Issue
Block a user