mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-14 10:27:57 +00:00
lookup endpoint supports jsonv2 and geocodejson output now
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user