forked from hans/Nominatim
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