mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-03-10 03:54:06 +00:00
add python implementation of reverse
This adds an additional layer parameter and slightly changes the queries to do more efficient lookups for large area features.
This commit is contained in:
@@ -19,7 +19,7 @@ import datetime as dt
|
||||
import sqlalchemy as sa
|
||||
|
||||
from nominatim.typing import SaSelect, SaRow
|
||||
from nominatim.api.types import Point, LookupDetails
|
||||
from nominatim.api.types import Point, Bbox, LookupDetails
|
||||
from nominatim.api.connection import SearchConnection
|
||||
from nominatim.api.logging import log
|
||||
|
||||
@@ -46,6 +46,8 @@ class AddressLine:
|
||||
names: Dict[str, str]
|
||||
extratags: Optional[Dict[str, str]]
|
||||
|
||||
local_name: Optional[str] = None
|
||||
|
||||
admin_level: Optional[int]
|
||||
fromarea: bool
|
||||
isaddress: bool
|
||||
@@ -136,6 +138,14 @@ class DetailedResult(BaseResult):
|
||||
indexed_date: Optional[dt.datetime] = None
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
class ReverseResult(BaseResult):
|
||||
""" A search result for reverse geocoding.
|
||||
"""
|
||||
distance: Optional[float] = None
|
||||
bbox: Optional[Bbox] = None
|
||||
|
||||
|
||||
def _filter_geometries(row: SaRow) -> Dict[str, str]:
|
||||
return {k[9:]: v for k, v in row._mapping.items() # pylint: disable=W0212
|
||||
if k.startswith('geometry_')}
|
||||
|
||||
Reference in New Issue
Block a user