From 97d2bfb5085c045ea8be19aafc34d349b887cfee Mon Sep 17 00:00:00 2001 From: Al Date: Mon, 23 May 2016 12:51:28 -0400 Subject: [PATCH] [osm] venue names --- scripts/geodata/addresses/components.py | 4 ++-- scripts/geodata/osm/formatter.py | 14 +++++--------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/scripts/geodata/addresses/components.py b/scripts/geodata/addresses/components.py index c51e15a6..2a49c47d 100644 --- a/scripts/geodata/addresses/components.py +++ b/scripts/geodata/addresses/components.py @@ -269,10 +269,10 @@ class AddressComponents(object): key = ''.join((raw_key, suffix)) if ':' not in raw_key else raw_key return key, raw_key - def all_names(self, props, languages): + def all_names(self, props, languages, keys=ALL_OSM_NAME_KEYS): names = set() for k, v in six.iteritems(props): - if k in self.ALL_OSM_NAME_KEYS: + if k in keys: names.add(v) elif ':' in k: k, qual = k.split(':', 1) diff --git a/scripts/geodata/osm/formatter.py b/scripts/geodata/osm/formatter.py index 53d2cbf2..eefe295e 100644 --- a/scripts/geodata/osm/formatter.py +++ b/scripts/geodata/osm/formatter.py @@ -192,7 +192,7 @@ class OSMAddressFormatter(object): return True return False - def venue_names(self, props): + def venue_names(self, props, languages): ''' Venue names ----------- @@ -201,12 +201,7 @@ class OSMAddressFormatter(object): With a certain probability, add None to the list so we drop the name ''' - venue_names = [] - for key in ('name', 'alt_name', 'loc_name', 'int_name', 'old_name'): - venue_name = props.get(key) - if venue_name: - venue_names.append(venue_name) - return venue_names + return self.components.all_names(props, languages, keys=('name', 'alt_name', 'loc_name', 'int_name', 'old_name')) def formatted_addresses_with_venue_names(self, address_components, venue_names, country, language=None, tag_components=True, minimal_only=False): # Since venue names are only one-per-record, this wrapper will try them all (name, alt_name, etc.) @@ -326,8 +321,6 @@ class OSMAddressFormatter(object): returned. ''' - venue_names = self.venue_names(tags) or [] - try: latitude, longitude = latlon_to_decimal(tags['lat'], tags['lon']) except Exception: @@ -342,6 +335,9 @@ class OSMAddressFormatter(object): if not address_components: return None, None, None + languages = country_languages[country].keys() + venue_names = self.venue_names(tags, languages) or [] + # Abbreviate the street name with random probability street_name = address_components.get(AddressFormatter.ROAD)