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()