From cd9fe4eb7b1c048dd8d8499a0b83623991a0d748 Mon Sep 17 00:00:00 2001 From: Al Date: Sat, 24 Sep 2016 15:35:54 -0400 Subject: [PATCH] [boundaries] Adding option to still check for global overrides but only if nothing else was found using admin_level, etc. Updating South Korea and adding this option to Luxembourg. --- resources/boundaries/osm/kr.yaml | 2 +- resources/boundaries/osm/lu.yaml | 2 ++ scripts/geodata/osm/components.py | 11 ++++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/resources/boundaries/osm/kr.yaml b/resources/boundaries/osm/kr.yaml index 4741e54c..b7e41a60 100644 --- a/resources/boundaries/osm/kr.yaml +++ b/resources/boundaries/osm/kr.yaml @@ -14,7 +14,7 @@ "6": "city_district" "7": "suburb" "8": "suburb" - no_global_overrides: true + global_overrides_last: true overrides: id: diff --git a/resources/boundaries/osm/lu.yaml b/resources/boundaries/osm/lu.yaml index 691fa34b..979e9c4d 100644 --- a/resources/boundaries/osm/lu.yaml +++ b/resources/boundaries/osm/lu.yaml @@ -14,6 +14,8 @@ "407489": admin_level: "9": "city_district" + global_overrides_last: true + use_admin_center: - id: 407489 # Luxembourg City diff --git a/scripts/geodata/osm/components.py b/scripts/geodata/osm/components.py index a2e09629..8750f37b 100644 --- a/scripts/geodata/osm/components.py +++ b/scripts/geodata/osm/components.py @@ -139,8 +139,10 @@ class OSMAddressComponents(object): values = [(k.lower(), v.lower()) for k, v in six.iteritems(properties) if isinstance(v, six.string_types)] + global_overrides_last = config.get('global_overrides_last', False) + # place=city, place=suburb, etc. override per-country boundaries - if not config.get('no_global_overrides', False): + if not global_overrides_last: for k, v in values: containing_component = self.global_keys_override.get(k, {}).get(v, None) @@ -162,6 +164,13 @@ class OSMAddressComponents(object): if containing_component is not None: return containing_component + if global_overrides_last: + for k, v in values: + containing_component = self.global_keys_override.get(k, {}).get(v, None) + + if containing_component is not None: + return containing_component + return None osm_address_components = OSMAddressComponents()