// static size_t RegionsBuilder::GetWeight(Region const & region) { switch (region.GetPlaceType()) { case PlaceType::City: case PlaceType::Town: case PlaceType::Village: case PlaceType::Hamlet: return 3; case PlaceType::Suburb: case PlaceType::Neighbourhood: return 2; case PlaceType::Locality: case PlaceType::IsolatedDwelling: return 1; case PlaceType::Unknown: break; } switch (region.GetAdminLevel()) { case AdminLevel::Two: return 6; case AdminLevel::Four: return 5; case AdminLevel::Six: return 4; default: break; } return 0; }
// static PlaceLevel RegionsBuilder::GetLevel(Region const & region) { switch (region.GetPlaceType()) { case PlaceType::City: case PlaceType::Town: case PlaceType::Village: case PlaceType::Hamlet: return PlaceLevel::Locality; case PlaceType::Suburb: case PlaceType::Neighbourhood: return PlaceLevel::Suburb; case PlaceType::Locality: case PlaceType::IsolatedDwelling: return PlaceLevel::Sublocality; case PlaceType::Unknown: break; } switch (region.GetAdminLevel()) { case AdminLevel::Two: return PlaceLevel::Country; case AdminLevel::Four: return PlaceLevel::Region; case AdminLevel::Six: return PlaceLevel::Subregion; default: break; } return PlaceLevel::Unknown; }