[polygons] Admin level constants, using transformed name as the sort key

This commit is contained in:
Al
2015-10-13 21:20:58 -04:00
parent d151445dc3
commit e7b1040a47

View File

@@ -31,14 +31,23 @@ class ReverseGeocoder(RTreePolygonIndex):
LOCALITIES_FILENAME = 'qs_localities.shp'
NEIGHBORHOODS_FILENAME = 'qs_neighborhoods.shp'
sorted_levels = ('adm0',
'adm1',
'adm1_region',
'adm2',
'adm2_region',
'localadmin',
'locality',
'neighborhood',
COUNTRY = 'adm0'
ADMIN1 = 'adm1'
ADMIN1_REGION = 'adm1_region'
ADMIN2 = 'adm2'
ADMIN2_REGION = 'adm2_region'
LOCAL_ADMIN = 'localadmin'
LOCALITY = 'locality'
NEIGHBORHOOD = 'neighborhood'
sorted_levels = (COUNTRY,
ADMIN1,
ADMIN1_REGION,
ADMIN2,
ADMIN2_REGION,
LOCAL_ADMIN,
LOCALITY,
NEIGHBORHOOD,
)
sort_levels = {k: i for i, k in enumerate(sorted_levels)}
@@ -108,6 +117,7 @@ class ReverseGeocoder(RTreePolygonIndex):
}
}
@classmethod
def create_from_shapefiles(cls,
input_files,
@@ -193,7 +203,7 @@ class ReverseGeocoder(RTreePolygonIndex):
def sort_level(self, i):
props, p = self.polygons[i]
return self.sort_levels.get(props['qs_level'], 0)
return self.sort_levels.get(props[self.LEVEL], 0)
def get_candidate_polygons(self, lat, lon):
candidates = OrderedDict.fromkeys(self.index.intersection((lon, lat, lon, lat))).keys()