]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib-php/AddressDetails.php
prefilter bad results before adding details and reranking
[nominatim.git] / lib-php / AddressDetails.php
index a1a2a636156e686843b4fcebc46f5a236383a85a..cfdd04167c259de142147e00846ff1b9546fd8e7 100644 (file)
@@ -93,8 +93,8 @@ class AddressDetails
             ) {
                 $aAddress[$sTypeLabel] = $sName;
 
-                if ('state' === $sTypeLabel && !empty($aLine['name'])) {
-                    $this->addStateCode($aAddress, $aLine['name']);
+                if (!empty($aLine['name'])) {
+                    $this->addSubdivisionCode($aAddress, $aLine['admin_level'], $aLine['name']);
                 }
             }
         }
@@ -179,17 +179,13 @@ class AddressDetails
         return $this->aAddressLines;
     }
 
-    /**
-     * Add `state_code` field to address details to represent second part of ISO 3166-2 country subdivision code
-     */
-    private function addStateCode(&$aAddress, $nameDetails)
+    private function addSubdivisionCode(&$aAddress, $iAdminLevel, $nameDetails)
     {
         if (is_string($nameDetails)) {
             $nameDetails = json_decode('{' . str_replace('"=>"', '":"', $nameDetails) . '}', true);
         }
-
-        if (!empty($nameDetails['ref'])) {
-            $aAddress['state_code'] = $nameDetails['ref'];
+        if (!empty($nameDetails['ISO3166-2'])) {
+            $aAddress["ISO3166-2-lvl$iAdminLevel"] = $nameDetails['ISO3166-2'];
         }
     }
 }