[neighborhoods] adding some of the pure Quattroshapes neighborhoods (not matched to OSM) to be classified as city_district, starting with districts of Prague

This commit is contained in:
Al
2016-12-22 17:58:34 -05:00
parent 5461e195c0
commit 80c404899c

View File

@@ -223,8 +223,15 @@ class NeighborhoodReverseGeocoder(RTreePolygonIndex):
regex_replacements = [
# Paris arrondissements, listed like "PARIS-1ER-ARRONDISSEMENT" in Quqttroshapes
(re.compile('^paris-(?=[\d])', re.I), ''),
(re.compile('^prague(?= [\d]+$)', re.I), 'Praha'),
]
quattroshapes_city_district_patterns = [
six.u('Praha [\d]+'),
]
quattroshapes_city_district_regex = re.compile('|'.join([six.u('^\s*{}\s*$').format(p) for p in quattroshapes_city_district_patterns]), re.I | re.U)
@classmethod
def count_words(cls, s):
doc = defaultdict(int)
@@ -425,7 +432,20 @@ class NeighborhoodReverseGeocoder(RTreePolygonIndex):
continue
props['source'] = source
if idx is cth or props.get(QuattroshapesReverseGeocoder.LEVEL, None) == 'neighborhood':
props['component'] = AddressFormatter.SUBURB
component = AddressFormatter.SUBURB
if source == 'quattroshapes':
name = props.get('name')
if not name:
continue
for pattern, repl in cls.regex_replacements:
name = pattern.sub(repl, name)
props['name'] = name
if cls.quattroshapes_city_district_regex.match(name):
component = AddressFormatter.CITY_DISTRICT
props['component'] = component
props['polygon_type'] = 'neighborhood'
else:
# We don't actually care about local admin polygons unless they match OSM