X-Git-Url: https://git.openstreetmap.org/nominatim.git/blobdiff_plain/2338d04e9f0cd8f0ca294a1f6664d641d1522b25..a624f8b5994a4de5bb0752b3b118bf411f8cf9fc:/lib/template/address-json.php diff --git a/lib/template/address-json.php b/lib/template/address-json.php index ff245e14..691d6a74 100644 --- a/lib/template/address-json.php +++ b/lib/template/address-json.php @@ -1,30 +1,62 @@ <?php - $aFilteredPlaces = array(); - - if (!sizeof($aPlace)) - { - if (isset($sError)) - $aFilteredPlaces['error'] = $sError; - else - $aFilteredPlaces['error'] = 'Unable to geocode'; - } - else - { - if (isset($aPlace['place_id'])) $aFilteredPlaces['place_id'] = $aPlace['place_id']; - $aFilteredPlaces['licence'] = "Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright"; - $sOSMType = ($aPlace['osm_type'] == 'N'?'node':($aPlace['osm_type'] == 'W'?'way':($aPlace['osm_type'] == 'R'?'relation':''))); - if ($sOSMType) - { - $aFilteredPlaces['osm_type'] = $sOSMType; - $aFilteredPlaces['osm_id'] = $aPlace['osm_id']; - } - if (isset($aPlace['lat'])) $aFilteredPlaces['lat'] = $aPlace['lat']; - if (isset($aPlace['lon'])) $aFilteredPlaces['lon'] = $aPlace['lon']; - $aFilteredPlaces['display_name'] = $aPlace['langaddress']; - if (isset($aPlace['aAddress'])) $aFilteredPlaces['address'] = $aPlace['aAddress']; - if (isset($aPlace['sExtraTags'])) $aFilteredPlaces['extratags'] = $aPlace['sExtraTags']; - if (isset($aPlace['sNameDetails'])) $aFilteredPlaces['namedetails'] = $aPlace['sNameDetails']; - } - - javascript_renderData($aFilteredPlaces); +$aFilteredPlaces = array(); + +if (empty($aPlace)) { + if (isset($sError)) + $aFilteredPlaces['error'] = $sError; + else $aFilteredPlaces['error'] = 'Unable to geocode'; +} else { + if (isset($aPlace['place_id'])) $aFilteredPlaces['place_id'] = $aPlace['place_id']; + $aFilteredPlaces['licence'] = 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright'; + $sOSMType = formatOSMType($aPlace['osm_type']); + if ($sOSMType) { + $aFilteredPlaces['osm_type'] = $sOSMType; + $aFilteredPlaces['osm_id'] = $aPlace['osm_id']; + } + if (isset($aPlace['lat'])) $aFilteredPlaces['lat'] = $aPlace['lat']; + if (isset($aPlace['lon'])) $aFilteredPlaces['lon'] = $aPlace['lon']; + + if ($sOutputFormat == 'jsonv2' || $sOutputFormat == 'geojson') { + $aFilteredPlaces['place_rank'] = $aPlace['rank_search']; + + $aFilteredPlaces['category'] = $aPlace['class']; + $aFilteredPlaces['type'] = $aPlace['type']; + + $aFilteredPlaces['importance'] = $aPlace['importance']; + + $aFilteredPlaces['addresstype'] = strtolower($aPlace['addresstype']); + + $aFilteredPlaces['name'] = $aPlace['placename']; + } + + $aFilteredPlaces['display_name'] = $aPlace['langaddress']; + + if (isset($aPlace['address'])) { + $aFilteredPlaces['address'] = $aPlace['address']->getAddressNames(); + } + if (isset($aPlace['sExtraTags'])) $aFilteredPlaces['extratags'] = $aPlace['sExtraTags']; + if (isset($aPlace['sNameDetails'])) $aFilteredPlaces['namedetails'] = $aPlace['sNameDetails']; + + if (isset($aPlace['aBoundingBox'])) { + $aFilteredPlaces['boundingbox'] = $aPlace['aBoundingBox']; + } + + if (isset($aPlace['asgeojson'])) { + $aFilteredPlaces['geojson'] = json_decode($aPlace['asgeojson']); + } + + if (isset($aPlace['assvg'])) { + $aFilteredPlaces['svg'] = $aPlace['assvg']; + } + + if (isset($aPlace['astext'])) { + $aFilteredPlaces['geotext'] = $aPlace['astext']; + } + + if (isset($aPlace['askml'])) { + $aFilteredPlaces['geokml'] = $aPlace['askml']; + } +} + +javascript_renderData($aFilteredPlaces);