| import requests | |
| UA = {"User-Agent": "HF-Space-Trip-Planner/1.0 (contact: example@example.com)"} | |
| def geocode_city(city: str): | |
| url = "https://nominatim.openstreetmap.org/search" | |
| params = {"q": city, "format": "json", "limit": 1} | |
| try: | |
| r = requests.get(url, params=params, headers=UA, timeout=20) | |
| r.raise_for_status() | |
| data = r.json() | |
| if not data: | |
| return None | |
| j = data[0] | |
| return {"lat": float(j["lat"]), "lon": float(j["lon"])} | |
| except Exception: | |
| return None | |