]> git.openstreetmap.org Git - nominatim.git/commitdiff
traverse address list backwards when computing admin levels
authorSarah Hoffmann <lonvia@denofr.de>
Thu, 6 Dec 2018 20:18:47 +0000 (21:18 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Thu, 6 Dec 2018 20:18:47 +0000 (21:18 +0100)
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.

lib/AddressDetails.php

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