traverse address list backwards when computing admin levels

By starting with the lowest address level, when collecting
administrative boundaries by level, there is a better chance
to actually get the boundary when the capital of the
administrative boundary is tagged with the level of the
boundary as well.

This is just a heuristics adaption to make the best out of
the imprecise admin_level definition for place nodes.

Fixes #1261.
This commit is contained in:
Sarah Hoffmann 2018-12-06 21:18:47 +01:00
parent e080bdff0f
commit 411f361fcb

View File

@ -103,7 +103,7 @@ class AddressDetails
public function getAdminLevels() public function getAdminLevels()
{ {
$aAddress = array(); $aAddress = array();
foreach ($this->aAddressLines as $aLine) { foreach (array_reverse($this->aAddressLines) as $aLine) {
if (self::isAddress($aLine) if (self::isAddress($aLine)
&& isset($aLine['admin_level']) && isset($aLine['admin_level'])
&& $aLine['admin_level'] < 15 && $aLine['admin_level'] < 15