]> git.openstreetmap.org Git - nominatim.git/commitdiff
lookup endpoint supports jsonv2 and geocodejson output now
authormarc tobias <mtmail@gmx.net>
Sun, 21 Jul 2019 21:20:48 +0000 (23:20 +0200)
committermarc tobias <mtmail@gmx.net>
Sun, 21 Jul 2019 21:20:48 +0000 (23:20 +0200)
docs/api/Lookup.md
test/bdd/api/lookup/simple.feature
test/bdd/steps/queries.py
website/lookup.php

index 84ebb5d8168d40a50e5c9f71e1b733e37516d001..2412be1eb0efb91f4091540defec58f9c542daf9 100644 (file)
@@ -19,7 +19,7 @@ Additional optional parameters are explained below.
 
 ### Output format
 
-* `format=[xml|json|geojson]`
+* `format=[xml|json|jsonv2|geojson|geocodejson]`
 
 See [Place Output Formats](Output.md) for details on each format. (Default: xml)
 
index 660598db17352acb962ae94c2d7de9025397f253..dc80c2353aa407c042301229f2519bf9f5407972 100644 (file)
@@ -4,14 +4,16 @@ Feature: Places by osm_type and osm_id Tests
 
     Scenario Outline: address lookup for existing node, way, relation
         When sending <format> lookup query for N3284625766,W6065798,,R123924,X99,N0
-        Then the result is valid <format>
+        Then the result is valid <outformat>
         And exactly 3 results are returned
 
     Examples:
-        | format  |
-        | xml     |
-        | json    |
-        | geojson |
+        | format      | outformat   |
+        | xml         | xml         |
+        | json        | json        |
+        | jsonv2      | json        |
+        | geojson     | geojson     |
+        | geocodejson | geocodejson |
 
     Scenario: address lookup for non-existing or invalid node, way, relation
         When sending xml lookup query for X99,,N0,nN158845944,ABC,,W9
index 76ce9810829f61ae2fb8bbb0b9d4ec2a15ee713f..3f0cffffb74cee1bc66414745a712bc8d36c1665 100644 (file)
@@ -455,8 +455,12 @@ def website_lookup_request(context, fmt, query):
 
     if fmt == 'json ':
         outfmt = 'json'
+    elif fmt == 'jsonv2 ':
+        outfmt = 'json'
     elif fmt == 'geojson ':
         outfmt = 'geojson'
+    elif fmt == 'geocodejson ':
+        outfmt = 'geocodejson'
     else:
         outfmt = 'xml'
 
index 20d06af0a1ceab059418a14b0329305341304533..e5f01232edf46dde05a56f144699080689705430 100644 (file)
@@ -9,7 +9,7 @@ ini_set('memory_limit', '200M');
 $oParams = new Nominatim\ParameterParser();
 
 // Format for output
-$sOutputFormat = $oParams->getSet('format', array('xml', 'json', 'geojson'), 'xml');
+$sOutputFormat = $oParams->getSet('format', array('xml', 'json', 'jsonv2', 'geojson', 'geocodejson'), 'xml');
 set_exception_handler_by_format($sOutputFormat);
 
 // Preferred language
@@ -49,8 +49,10 @@ foreach ($aOsmIds as $sItem) {
             $oResult = $oPlace;
             unset($oResult['aAddress']);
             if (isset($oPlace['aAddress'])) $oResult['address'] = $oPlace['aAddress'];
-            unset($oResult['langaddress']);
-            $oResult['name'] = $oPlace['langaddress'];
+            if ($sOutputFormat != 'geocodejson') {
+                unset($oResult['langaddress']);
+                $oResult['name'] = $oPlace['langaddress'];
+            }
             $aSearchResults[] = $oResult;
         }
     }