From 9b92bb301002c63ecf0fc5b838127a505d51e774 Mon Sep 17 00:00:00 2001 From: Anatoly Serdtcev Date: Fri, 19 Jul 2019 18:51:10 +0300 Subject: [PATCH] [generator:regions] Relax suburb marker rules --- generator/regions/admin_suburbs_marker.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/generator/regions/admin_suburbs_marker.cpp b/generator/regions/admin_suburbs_marker.cpp index 154d592bae..9c75e2f988 100644 --- a/generator/regions/admin_suburbs_marker.cpp +++ b/generator/regions/admin_suburbs_marker.cpp @@ -29,13 +29,14 @@ void AdminSuburbsMarker::MarkLocality(Node::Ptr & tree) void AdminSuburbsMarker::MarkSuburbsInLocality(Node::Ptr & tree) { auto & region = tree->GetData(); - if (region.GetLevel() == PlaceLevel::Locality) + auto const level = region.GetLevel(); + if (level == PlaceLevel::Locality) { MarkLocality(tree); return; } - if (region.GetAdminLevel() != AdminLevel::Unknown) + if (level == PlaceLevel::Unknown && region.GetAdminLevel() != AdminLevel::Unknown) region.SetLevel(PlaceLevel::Suburb); for (auto & subtree : tree->GetChildren()) @@ -54,7 +55,7 @@ void AdminSuburbsMarker::MarkUnderLocalityAsSublocalities(Node::Ptr & tree) if (level == PlaceLevel::Suburb) region.SetLevel(PlaceLevel::Sublocality); - else if (level == PlaceLevel::Unknown && region.GetAdminLevel() != AdminLevel::Unknown) + else if (level == PlaceLevel::Unknown) region.SetLevel(PlaceLevel::Sublocality); for (auto & subtree : tree->GetChildren())