]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/template/search-geocodejson.php
unify address details lookup
[nominatim.git] / lib / template / search-geocodejson.php
index 6f822799dbc0161eaacfc0ae3b5a956e3142f498..f3c577d95ac96c643d1f3b08c4e6ff9684739d76 100644 (file)
@@ -22,25 +22,29 @@ foreach ($aSearchResults as $iResNum => $aPointDetails) {
 
     $aPlace['properties']['geocoding']['name'] = $aPointDetails['placename'];
 
-    $aFieldMappings = array(
-                       'house_number' => 'housenumber',
-                       'road' => 'street',
-                       'locality' => 'locality',
-                       'postcode' => 'postcode',
-                       'city' => 'city',
-                       'district' => 'district',
-                       'county' => 'county',
-                       'state' => 'state',
-                       'country' => 'country'
-                      );
+    if (isset($aPointDetails['address'])) {
+        $aFieldMappings = array(
+                           'house_number' => 'housenumber',
+                           'road' => 'street',
+                           'locality' => 'locality',
+                           'postcode' => 'postcode',
+                           'city' => 'city',
+                           'district' => 'district',
+                           'county' => 'county',
+                           'state' => 'state',
+                           'country' => 'country'
+                          );
 
-    foreach ($aFieldMappings as $sFrom => $sTo) {
-        if (isset($aPointDetails['address'][$sFrom])) {
-            $aPlace['properties']['geocoding'][$sTo] = $aPointDetails['address'][$sFrom];
+        $aAddrNames = $aPointDetails['address']->getAddressNames();
+        foreach ($aFieldMappings as $sFrom => $sTo) {
+            if (isset($aAddrNames[$sFrom])) {
+                $aPlace['properties']['geocoding'][$sTo] = $aAddrNames[$sFrom];
+            }
         }
-    }
 
-    $aPlace['properties']['geocoding']['admin'] = $aPointDetails['aAddressAdminLevels'];
+        $aPlace['properties']['geocoding']['admin']
+            = $aPointDetails['address']->getAdminLevels();
+    }
 
     if (isset($aPointDetails['asgeojson'])) {
         $aPlace['geometry'] = json_decode($aPointDetails['asgeojson']);