From 6163dbae395245b1592d1d496b537fd08064e50e Mon Sep 17 00:00:00 2001 From: Al Date: Tue, 27 Dec 2016 03:37:15 -0500 Subject: [PATCH] [osm/places] adding option to only format place tags for city and smaller admins, using for polygons as larger polys should be included elsewhere anyway --- scripts/geodata/osm/formatter.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/geodata/osm/formatter.py b/scripts/geodata/osm/formatter.py index 0fb7536d..68d2d817 100644 --- a/scripts/geodata/osm/formatter.py +++ b/scripts/geodata/osm/formatter.py @@ -544,7 +544,7 @@ class OSMAddressFormatter(object): return postal_codes - def node_place_tags(self, tags): + def node_place_tags(self, tags, city_or_below=False): try: latitude, longitude = latlon_to_decimal(tags['lat'], tags['lon']) except Exception: @@ -582,6 +582,9 @@ class OSMAddressFormatter(object): return (), None component_index = self.boundary_component_priorities.get(component_name) + if city_or_below and (not component_index or component_index <= self.boundary_component_priorities[AddressFormatter.CITY]): + return (), None + if component_index: revised_osm_components = [] @@ -1255,7 +1258,7 @@ class OSMAddressFormatter(object): lon = point.x tags['lat'] = lat tags['lon'] = lon - place_tags, country = self.node_place_tags(tags) + place_tags, country = self.node_place_tags(tags, city_or_below=True) for address_components, language, is_default in place_tags: addresses = self.formatted_places(address_components, country, language) if language is None: