]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/template/search-json.php
search/reverse/lookup with geojson,geocodejson output
[nominatim.git] / lib / template / search-json.php
index 50009bc375023e70982331bee7808844456ef900..30817c04025114210eb49e0649d6bf123d07ca68 100644 (file)
@@ -1,72 +1,66 @@
 <?php
-header("content-type: application/json; charset=UTF-8");
 
 $aFilteredPlaces = array();
-foreach($aSearchResults as $iResNum => $aPointDetails)
-{
+foreach ($aSearchResults as $iResNum => $aPointDetails) {
     $aPlace = array(
-            'place_id'=>$aPointDetails['place_id'],
-            'licence'=>"Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright",
-        );
+               'place_id'=>$aPointDetails['place_id'],
+               'licence'=>'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright',
+              );
     
     $sOSMType = formatOSMType($aPointDetails['osm_type']);
-    if ($sOSMType)
-    {
+    if ($sOSMType) {
         $aPlace['osm_type'] = $sOSMType;
         $aPlace['osm_id'] = $aPointDetails['osm_id'];
     }
 
-    if (isset($aPointDetails['aBoundingBox']))
-    {
+    if (isset($aPointDetails['aBoundingBox'])) {
         $aPlace['boundingbox'] = $aPointDetails['aBoundingBox'];
 
-        if (isset($aPointDetails['aPolyPoints']))
-        {
+        if (isset($aPointDetails['aPolyPoints'])) {
             $aPlace['polygonpoints'] = $aPointDetails['aPolyPoints'];
         }
     }
 
-    if (isset($aPointDetails['zoom']))
-    {
+    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'];
+    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'])
-    {
+    if (isset($aPointDetails['icon']) && $aPointDetails['icon']) {
         $aPlace['icon'] = $aPointDetails['icon'];
     }
 
-    if (isset($aPointDetails['address']))
-    {
+    if (isset($aPointDetails['address']) && !empty($aPointDetails['address'])) {
         $aPlace['address'] = $aPointDetails['address'];
     }
 
-    if (isset($aPointDetails['asgeojson']))
-    {
+    if (isset($aPointDetails['asgeojson'])) {
         $aPlace['geojson'] = json_decode($aPointDetails['asgeojson']);
     }
 
-    if (isset($aPointDetails['assvg']))
-    {
+    if (isset($aPointDetails['assvg'])) {
         $aPlace['svg'] = $aPointDetails['assvg'];
     }
 
-    if (isset($aPointDetails['astext']))
-    {
+    if (isset($aPointDetails['astext'])) {
         $aPlace['geotext'] = $aPointDetails['astext'];
     }
 
-    if (isset($aPointDetails['askml']))
-    {
+    if (isset($aPointDetails['askml'])) {
         $aPlace['geokml'] = $aPointDetails['askml'];
     }