X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/7a964efb3a104e304be7620dc18fa123559f05c8..e305182ae4641a8ffe602a5d8cee3005c4ed0eeb:/lib/template/search-geocodejson.php diff --git a/lib/template/search-geocodejson.php b/lib/template/search-geocodejson.php index 25299716..29bfe0bf 100644 --- a/lib/template/search-geocodejson.php +++ b/lib/template/search-geocodejson.php @@ -9,8 +9,8 @@ foreach ($aSearchResults as $iResNum => $aPointDetails) { ) ); - if (isset($aPlace['place_id'])) $aPlace['properties']['geocoding']['place_id'] = $aPointDetails['place_id']; - $sOSMType = formatOSMType($aPlace['osm_type']); + if (isset($aPointDetails['place_id'])) $aPlace['properties']['geocoding']['place_id'] = $aPointDetails['place_id']; + $sOSMType = formatOSMType($aPointDetails['osm_type']); if ($sOSMType) { $aPlace['properties']['geocoding']['osm_type'] = $sOSMType; $aPlace['properties']['geocoding']['osm_id'] = $aPointDetails['osm_id']; @@ -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['aAddress'][$sFrom])) { - $aPlace['properties']['geocoding'][$sTo] = $aPointDetails['aAddress'][$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']);