mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
Merge pull request #1432 from mtmail/two-outputformats-for-lookup-endpoint
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
|
### 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)
|
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
|
Scenario Outline: address lookup for existing node, way, relation
|
||||||
When sending <format> lookup query for N3284625766,W6065798,,R123924,X99,N0
|
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
|
And exactly 3 results are returned
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
| format |
|
| format | outformat |
|
||||||
| xml |
|
| xml | xml |
|
||||||
| json |
|
| json | json |
|
||||||
| geojson |
|
| jsonv2 | json |
|
||||||
|
| geojson | geojson |
|
||||||
|
| geocodejson | geocodejson |
|
||||||
|
|
||||||
Scenario: address lookup for non-existing or invalid node, way, relation
|
Scenario: address lookup for non-existing or invalid node, way, relation
|
||||||
When sending xml lookup query for X99,,N0,nN158845944,ABC,,W9
|
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 ':
|
if fmt == 'json ':
|
||||||
outfmt = 'json'
|
outfmt = 'json'
|
||||||
|
elif fmt == 'jsonv2 ':
|
||||||
|
outfmt = 'json'
|
||||||
elif fmt == 'geojson ':
|
elif fmt == 'geojson ':
|
||||||
outfmt = 'geojson'
|
outfmt = 'geojson'
|
||||||
|
elif fmt == 'geocodejson ':
|
||||||
|
outfmt = 'geocodejson'
|
||||||
else:
|
else:
|
||||||
outfmt = 'xml'
|
outfmt = 'xml'
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ ini_set('memory_limit', '200M');
|
|||||||
$oParams = new Nominatim\ParameterParser();
|
$oParams = new Nominatim\ParameterParser();
|
||||||
|
|
||||||
// Format for output
|
// 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);
|
set_exception_handler_by_format($sOutputFormat);
|
||||||
|
|
||||||
// Preferred language
|
// Preferred language
|
||||||
@@ -49,8 +49,10 @@ foreach ($aOsmIds as $sItem) {
|
|||||||
$oResult = $oPlace;
|
$oResult = $oPlace;
|
||||||
unset($oResult['aAddress']);
|
unset($oResult['aAddress']);
|
||||||
if (isset($oPlace['aAddress'])) $oResult['address'] = $oPlace['aAddress'];
|
if (isset($oPlace['aAddress'])) $oResult['address'] = $oPlace['aAddress'];
|
||||||
unset($oResult['langaddress']);
|
if ($sOutputFormat != 'geocodejson') {
|
||||||
$oResult['name'] = $oPlace['langaddress'];
|
unset($oResult['langaddress']);
|
||||||
|
$oResult['name'] = $oPlace['langaddress'];
|
||||||
|
}
|
||||||
$aSearchResults[] = $oResult;
|
$aSearchResults[] = $oResult;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user