schon/core/utils/nominatim.py
Egor fureunoir Gorbunov 328ccaa615 Features: 1) 2.8.9 update
Fixes: 1) wtf go read diff;

Extra: ???
2025-06-18 15:05:58 +03:00

33 lines
933 B
Python

from typing import Dict, List
import requests
from constance import config
from django.utils.translation import gettext as _
def fetch_address_suggestions(query: str, limit: int = 5) -> List[Dict]:
if not config.NOMINATIM_URL:
raise ValueError(_("NOMINATIM_URL must be configured."))
url = config.NOMINATIM_URL.rstrip("/") + "/search"
params: dict[str, str | int] = {
"format": "json",
"addressdetails": 1,
"q": query,
"limit": limit,
}
response = requests.get(url, params=params)
response.raise_for_status()
results = response.json()
suggestions = []
for item in results:
suggestions.append(
{
"display_name": item.get("display_name"),
"lat": item.get("lat"),
"lon": item.get("lon"),
"address": item.get("address", {}),
}
)
return suggestions