schon/geo/utils/nominatim.py
Egor fureunoir Gorbunov 564ce0706b Features: Full Geo rework.
Fixes: 1) Address redundant migration logic by dropping stale migrations; 2) Cleanup swapper-based dependencies in Geo models;

Extra: Streamlined database initialization by resetting all previous migrations.
2025-05-19 14:45:53 +03:00

34 lines
887 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 = {
'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