mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-11-30 12:22:10 +03:00
223 lines
8.6 KiB
Markdown
223 lines
8.6 KiB
Markdown
|
# Place Output
|
||
|
|
||
|
The [\reverse](Reverse.md), [\search](Search.md) and [\lookup](Lookup.md)
|
||
|
API calls produce very similar output which is explained in this section.
|
||
|
There is one section for each format which is selectable via the `format`
|
||
|
parameter.
|
||
|
|
||
|
## Formats
|
||
|
|
||
|
### JSON
|
||
|
|
||
|
The JSON format returns an array of places (for search and lookup) or
|
||
|
a single place (for reverse) of the following format:
|
||
|
|
||
|
```
|
||
|
{
|
||
|
"place_id": "100149",
|
||
|
"licence": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright",
|
||
|
"osm_type": "node",
|
||
|
"osm_id": "107775",
|
||
|
"boundingbox": ["51.3473219", "51.6673219", "-0.2876474", "0.0323526"],
|
||
|
"lat": "51.5073219",
|
||
|
"lon": "-0.1276474",
|
||
|
"display_name": "London, Greater London, England, SW1A 2DU, United Kingdom",
|
||
|
"class": "place",
|
||
|
"type": "city",
|
||
|
"importance": 0.9654895765402,
|
||
|
"icon": "https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png",
|
||
|
"address": {
|
||
|
"city": "London",
|
||
|
"state_district": "Greater London",
|
||
|
"state": "England",
|
||
|
"postcode": "SW1A 2DU",
|
||
|
"country": "United Kingdom",
|
||
|
"country_code": "gb"
|
||
|
},
|
||
|
"extratags": {
|
||
|
"capital": "yes",
|
||
|
"website": "http://www.london.gov.uk",
|
||
|
"wikidata": "Q84",
|
||
|
"wikipedia": "en:London",
|
||
|
"population": "8416535"
|
||
|
}
|
||
|
},
|
||
|
```
|
||
|
|
||
|
The possible fields are:
|
||
|
|
||
|
* `place_id` - reference to the Nominatim internal database ID
|
||
|
* `osm_type`, `osm_id` - reference to the OSM object
|
||
|
* `boundingbox` - area of corner coordinates
|
||
|
* `lat`, `lon` - latitude and longitude of the centroid of the object
|
||
|
* `display_name` - full comma-separated address
|
||
|
* `class`, `type` - key and value of the main OSM tag
|
||
|
* `importance` - computed importance rank
|
||
|
* `icon` - link to class icon (if available)
|
||
|
* `address` - dictionary of address details (only with `addressdetails=1`)
|
||
|
* `extratags` - dictionary with additional useful tags like website or maxspeed
|
||
|
(only with `extratags=1`)
|
||
|
* `namedetails` - dictionary with full list of available names including ref etc.
|
||
|
* `geojson`, `svg`, `geotext`, `geokml` - full geometry
|
||
|
(only with the appropriate `polygon_*` parameter)
|
||
|
|
||
|
### JSONv2
|
||
|
|
||
|
This is the same as the JSON format with two changes:
|
||
|
|
||
|
* `class` renamed to `category`
|
||
|
* additional field `place_rank` with the search rank of the object
|
||
|
|
||
|
### GeoJSON
|
||
|
|
||
|
This format follows the [RFC7946](http://geojson.org). Every feature includes
|
||
|
a bounding box (`bbox`).
|
||
|
|
||
|
The feature list has the following fields:
|
||
|
|
||
|
* `place_id` - reference to the Nominatim internal database ID
|
||
|
* `osm_type`, `osm_id` - reference to the OSM object
|
||
|
* `category`, `type` - key and value of the main OSM tag
|
||
|
* `display_name` - full comma-separated address
|
||
|
* `place_rank` - class search rank
|
||
|
* `importance` - computed importance rank
|
||
|
* `icon` - link to class icon (if available)
|
||
|
* `address` - dictionary of address details (only with `addressdetails=1`)
|
||
|
* `extratags` - dictionary with additional useful tags like website or maxspeed
|
||
|
(only with `extratags=1`)
|
||
|
* `namedetails` - dictionary with full list of available names including ref etc.
|
||
|
|
||
|
Use `polygon_geojson` to output the full geometry of the object instead
|
||
|
of the centroid.
|
||
|
|
||
|
### GeocodeJSON
|
||
|
|
||
|
The GeocodeJSON format follows the
|
||
|
[GeocodeJSON spec 0.1.0](https://github.com/geocoders/geocodejson-spec).
|
||
|
The following feature attributes are implemented:
|
||
|
|
||
|
* `osm_type`, `osm_id` - reference to the OSM object (unofficial extension)
|
||
|
* `type` - value of the main tag of the object (e.g. residential, restaurant, ...)
|
||
|
* `label` - full comma-separated address
|
||
|
* `name` - localised name of the place
|
||
|
* `housenumber`, `street`, `locality`, `postcode`, `city`,
|
||
|
`district`, `county`, `state`, `country` -
|
||
|
provided when it can be determined from the address
|
||
|
(see [this issue](https://github.com/openstreetmap/Nominatim/issues/1080) for
|
||
|
current limitations on the correctness of the address) and `addressdetails=1`
|
||
|
was given
|
||
|
* `admin` - list of localised names of administrative boundaries (only with `addressdetails=1`)
|
||
|
|
||
|
Use `polygon_geojson` to output the full geometry of the object instead
|
||
|
of the centroid.
|
||
|
|
||
|
### XML
|
||
|
|
||
|
The XML response returns one or more place objects in slightly different
|
||
|
formats depending on the API call.
|
||
|
|
||
|
#### Reverse
|
||
|
|
||
|
```
|
||
|
<reversegeocode timestamp="Sat, 11 Aug 18 11:53:21 +0000"
|
||
|
attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright"
|
||
|
querystring="lat=48.400381&lon=11.745876&zoom=5&format=xml">
|
||
|
<result place_id="179509537" osm_type="relation" osm_id="2145268" ref="BY"
|
||
|
lat="48.9467562" lon="11.4038717"
|
||
|
boundingbox="47.2701114,50.5647142,8.9763497,13.8396373">
|
||
|
Bavaria, Germany
|
||
|
</result>
|
||
|
<addressparts>
|
||
|
<state>Bavaria</state>
|
||
|
<country>Germany</country>
|
||
|
<country_code>de</country_code>
|
||
|
</addressparts>
|
||
|
<extratags>
|
||
|
<tag key="place" value="state"/>
|
||
|
<tag key="wikidata" value="Q980"/>
|
||
|
<tag key="wikipedia" value="de:Bayern"/>
|
||
|
<tag key="population" value="12520000"/>
|
||
|
<tag key="name:prefix" value="Freistaat"/>
|
||
|
</extratags>
|
||
|
</reversegeocode>
|
||
|
```
|
||
|
|
||
|
The attributes of the outer `reversegeocode` element return generic information
|
||
|
about the query, including the time when the response was sent (in UTC),
|
||
|
attribution to OSM and the original querystring.
|
||
|
|
||
|
The place information can be found in the `result` element. The attributes of that element contain:
|
||
|
|
||
|
* `place_id` - reference to the Nominatim internal database ID
|
||
|
* `osm_type`, `osm_id` - reference to the OSM object
|
||
|
* `ref` - content of `ref` tag if it exists
|
||
|
* `lat`, `lon` - latitude and longitude of the centroid of the object
|
||
|
* `boundingbox` - comma-separated list of corner coordinates
|
||
|
|
||
|
The full address address of the result can be found in the content of the
|
||
|
`result` element as a comma-separated list.
|
||
|
|
||
|
Additional information requested with `addressdetails=1`, `extratags=1` and
|
||
|
`namedetails=1` can be found in extra elements.
|
||
|
|
||
|
#### Search and Lookup
|
||
|
|
||
|
```
|
||
|
<searchresults timestamp="Sat, 11 Aug 18 11:55:35 +0000"
|
||
|
attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright"
|
||
|
querystring="london" polygon="false" exclude_place_ids="100149"
|
||
|
more_url="https://nominatim.openstreetmap.org/search.php?q=london&addressdetails=1&extratags=1&exclude_place_ids=100149&format=xml&accept-language=en-US%2Cen%3Bq%3D0.7%2Cde%3Bq%3D0.3">
|
||
|
<place place_id="100149" osm_type="node" osm_id="107775" place_rank="15"
|
||
|
boundingbox="51.3473219,51.6673219,-0.2876474,0.0323526" lat="51.5073219" lon="-0.1276474"
|
||
|
display_name="London, Greater London, England, SW1A 2DU, United Kingdom"
|
||
|
class="place" type="city" importance="0.9654895765402"
|
||
|
icon="https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png">
|
||
|
<extratags>
|
||
|
<tag key="capital" value="yes"/>
|
||
|
<tag key="website" value="http://www.london.gov.uk"/>
|
||
|
<tag key="wikidata" value="Q84"/>
|
||
|
<tag key="wikipedia" value="en:London"/>
|
||
|
<tag key="population" value="8416535"/>
|
||
|
</extratags>
|
||
|
<city>London</city>
|
||
|
<state_district>Greater London</state_district>
|
||
|
<state>England</state>
|
||
|
<postcode>SW1A 2DU</postcode>
|
||
|
<country>United Kingdom</country>
|
||
|
<country_code>gb</country_code>
|
||
|
</place>
|
||
|
</searchresults>
|
||
|
```
|
||
|
|
||
|
The attributes of the outer `searchresults` or `lookupresults` element return
|
||
|
generic information about the query:
|
||
|
|
||
|
* `timestamp` - UTC time when the response was sent
|
||
|
* `attribution` - OSM licensing information
|
||
|
* `querystring` - original query
|
||
|
* `polygon` - true when extra geometry information was requested
|
||
|
* `exclude_place_ids` - IDs of places that should be ignored in a follow-up request
|
||
|
* `more_url` - search call that will yield additional results for the query
|
||
|
just sent
|
||
|
|
||
|
The place information can be found in the `place` elements, of which there may
|
||
|
be more than one. The attributes of that element contain:
|
||
|
|
||
|
* `place_id` - reference to the Nominatim internal database ID
|
||
|
* `osm_type`, `osm_id` - reference to the OSM object
|
||
|
* `ref` - content of `ref` tag if it exists
|
||
|
* `lat`, `lon` - latitude and longitude of the centroid of the object
|
||
|
* `boundingbox` - comma-separated list of corner coordinates
|
||
|
* `place_rank` - class search rank
|
||
|
* `display_name` - full comma-separated address
|
||
|
* `class`, `type` - key and value of the main OSM tag
|
||
|
* `importance` - computed importance rank
|
||
|
* `icon` - link to class icon (if available)
|
||
|
|
||
|
When `addressdetails=1` is requested, the localised address parts appear
|
||
|
as subelements with the type of the address part.
|
||
|
|
||
|
Additional information requested with `extratags=1` and `namedetails=1` can
|
||
|
be found in extra elements as sub-element of each place.
|
||
|
|