]> git.openstreetmap.org Git - nominatim.git/blob - nominatim/api/v1/constants.py
add output formatters for ReverseResults
[nominatim.git] / nominatim / api / v1 / constants.py
1 # SPDX-License-Identifier: GPL-3.0-or-later
2 #
3 # This file is part of Nominatim. (https://nominatim.org)
4 #
5 # Copyright (C) 2023 by the Nominatim developer community.
6 # For a full list of authors see the git log.
7 """
8 Constants shared by all formats.
9 """
10
11 import nominatim.api as napi
12
13 # pylint: disable=line-too-long
14 OSM_ATTRIBUTION = 'Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright'
15
16 OSM_TYPE_NAME = {
17     'N': 'node',
18     'W': 'way',
19     'R': 'relation'
20 }
21
22 NODE_EXTENT = [25, 25, 25, 25,
23                7,
24                2.6, 2.6, 2.0, 1.0, 1.0,
25                0.7, 0.7, 0.7,
26                0.16, 0.16, 0.16, 0.16,
27                0.04, 0.04,
28                0.02, 0.02,
29                0.01, 0.01, 0.01, 0.01, 0.01,
30                0.015, 0.015, 0.015, 0.015,
31                0.005]
32
33
34 def bbox_from_result(result: napi.ReverseResult) -> napi.Bbox:
35     """ Compute a bounding box for the result. For ways and relations
36         a given boundingbox is used. For all other object, a box is computed
37         around the centroid according to dimensions dereived from the
38         search rank.
39     """
40     if (result.osm_object and result.osm_object[0] == 'N') or result.bbox is None:
41         return napi.Bbox.from_point(result.centroid, NODE_EXTENT[result.rank_search])
42
43     return result.bbox