X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/e427712cb04baf001d41e34af46bb9fd083202a1..2ca83efc36a96cfa070be61c7422d255044130f3:/nominatim/data/place_info.py diff --git a/nominatim/data/place_info.py b/nominatim/data/place_info.py index ab895352..1bfd512c 100644 --- a/nominatim/data/place_info.py +++ b/nominatim/data/place_info.py @@ -8,7 +8,7 @@ Wrapper around place information the indexer gets from the database and hands to the tokenizer. """ -from typing import Optional, Mapping, Any +from typing import Optional, Mapping, Any, Tuple class PlaceInfo: """ This data class contains all information the tokenizer can access @@ -62,6 +62,15 @@ class PlaceInfo: return self._info.get('rank_address', 0) + @property + def centroid(self) -> Optional[Tuple[float, float]]: + """ A center point of the place in WGS84. May be None when the + geometry of the place is unknown. + """ + x, y = self._info.get('centroid_x'), self._info.get('centroid_y') + return None if x is None or y is None else (x, y) + + def is_a(self, key: str, value: str) -> bool: """ Set to True when the place's primary tag corresponds to the given key and value.