X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/75ec3326e1f10e72b9ce8e2a11a9c4d5db2c881d..6a4192d3d18e9db2dce7d8f9f1b229d5ae9f7c6f:/lib/template/search-json.php?ds=sidebyside diff --git a/lib/template/search-json.php b/lib/template/search-json.php index 8950f14c..4b896d08 100644 --- a/lib/template/search-json.php +++ b/lib/template/search-json.php @@ -1,65 +1,69 @@ - $aPointDetails) - { - $aPlace = array( - 'place_id'=>$aPointDetails['place_id'], - 'licence'=>"Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.", - ); - - $sOSMType = ($aPointDetails['osm_type'] == 'N'?'node':($aPointDetails['osm_type'] == 'W'?'way':($aPointDetails['osm_type'] == 'R'?'relation':''))); - if ($sOSMType) - { - $aPlace['osm_type'] = $sOSMType; - $aPlace['osm_id'] = $aPointDetails['osm_id']; - } - - if (isset($aPointDetails['aBoundingBox'])) - { - $aPlace['boundingbox'] = array( - $aPointDetails['aBoundingBox'][0], - $aPointDetails['aBoundingBox'][1], - $aPointDetails['aBoundingBox'][2], - $aPointDetails['aBoundingBox'][3]); - - if (isset($aPointDetails['aPolyPoints']) && $bShowPolygons) - { - $aPlace['polygonpoints'] = $aPointDetails['aPolyPoints']; - } - } - - if (isset($aPointDetails['zoom'])) - { - $aPlace['zoom'] = $aPointDetails['zoom']; - } - - $aPlace['lat'] = $aPointDetails['lat']; - $aPlace['lon'] = $aPointDetails['lon']; - $aPlace['display_name'] = $aPointDetails['name']; - - $aPlace['class'] = $aPointDetails['class']; - $aPlace['type'] = $aPointDetails['type']; - if ($aPointDetails['icon']) - { - $aPlace['icon'] = $aPointDetails['icon']; - } - - if (isset($aPointDetails['address'])) - { - $aPlace['address'] = $aPointDetails['address']; - } - - $aFilteredPlaces[] = $aPlace; - } - - if (isset($_GET['json_callback']) && preg_match('/^[-A-Za-z0-9:_.]+$/',$_GET['json_callback'])) - { - echo $_GET['json_callback'].'('.javascript_renderData($aFilteredPlaces).')'; - } - else - { - echo javascript_renderData($aFilteredPlaces); - } + $aPointDetails) { + $aPlace = array( + 'place_id'=>$aPointDetails['place_id'], + 'licence'=>'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright', + ); + + $sOSMType = formatOSMType($aPointDetails['osm_type']); + if ($sOSMType) { + $aPlace['osm_type'] = $sOSMType; + $aPlace['osm_id'] = $aPointDetails['osm_id']; + } + + if (isset($aPointDetails['aBoundingBox'])) { + $aPlace['boundingbox'] = $aPointDetails['aBoundingBox']; + } + + if (isset($aPointDetails['zoom'])) { + $aPlace['zoom'] = $aPointDetails['zoom']; + } + + $aPlace['lat'] = $aPointDetails['lat']; + $aPlace['lon'] = $aPointDetails['lon']; + + $aPlace['display_name'] = $aPointDetails['name']; + + if ($sOutputFormat == 'jsonv2' || $sOutputFormat == 'geojson') { + $aPlace['place_rank'] = $aPointDetails['rank_search']; + $aPlace['category'] = $aPointDetails['class']; + } else { + $aPlace['class'] = $aPointDetails['class']; + } + $aPlace['type'] = $aPointDetails['type']; + + $aPlace['importance'] = $aPointDetails['importance']; + + if (isset($aPointDetails['icon']) && $aPointDetails['icon']) { + $aPlace['icon'] = $aPointDetails['icon']; + } + + if (isset($aPointDetails['address'])) { + $aPlace['address'] = $aPointDetails['address']->getAddressNames(); + } + + if (isset($aPointDetails['asgeojson'])) { + $aPlace['geojson'] = json_decode($aPointDetails['asgeojson']); + } + + if (isset($aPointDetails['assvg'])) { + $aPlace['svg'] = $aPointDetails['assvg']; + } + + if (isset($aPointDetails['astext'])) { + $aPlace['geotext'] = $aPointDetails['astext']; + } + + if (isset($aPointDetails['askml'])) { + $aPlace['geokml'] = $aPointDetails['askml']; + } + + if (isset($aPointDetails['sExtraTags'])) $aPlace['extratags'] = $aPointDetails['sExtraTags']; + if (isset($aPointDetails['sNameDetails'])) $aPlace['namedetails'] = $aPointDetails['sNameDetails']; + + $aFilteredPlaces[] = $aPlace; +} + +javascript_renderData($aFilteredPlaces);