Backup automatico script del 2026-07-19 07:00
This commit is contained in:
@@ -388,21 +388,37 @@ def calculate_route_points(lat1: float, lon1: float, lat2: float, lon2: float,
|
||||
|
||||
|
||||
def get_coordinates_from_city(city_name: str) -> Optional[Tuple[float, float, str]]:
|
||||
"""Ottiene coordinate da nome città usando Open-Meteo Geocoding API."""
|
||||
# Gestione caso speciale "Casa"
|
||||
"""Ottiene coordinate da città, POI, coordinate Google Maps o Plus Code."""
|
||||
if not city_name or city_name.lower() == "casa":
|
||||
# Coordinate fisse per Casa (San Marino)
|
||||
return (43.9356, 12.4296, "Casa")
|
||||
|
||||
|
||||
q = city_name.strip()
|
||||
try:
|
||||
from loogle_core.geo_parse import resolve_place_query
|
||||
except ImportError:
|
||||
try:
|
||||
from geo_parse import resolve_place_query
|
||||
except ImportError:
|
||||
resolve_place_query = None
|
||||
if resolve_place_query:
|
||||
place = resolve_place_query(q)
|
||||
if place:
|
||||
return (
|
||||
place["lat"],
|
||||
place["lon"],
|
||||
place.get("name") or f"{place['lat']:.5f}, {place['lon']:.5f}",
|
||||
)
|
||||
return None
|
||||
|
||||
url = "https://geocoding-api.open-meteo.com/v1/search"
|
||||
params = {"name": city_name, "count": 1, "language": "it"}
|
||||
params = {"name": q, "count": 1, "language": "it"}
|
||||
try:
|
||||
resp = open_meteo_get(url, params=params, timeout=(5, 10))
|
||||
if resp.status_code == 200:
|
||||
data = resp.json()
|
||||
if data.get("results"):
|
||||
result = data["results"][0]
|
||||
return (result["latitude"], result["longitude"], result.get("name", city_name))
|
||||
return (result["latitude"], result["longitude"], result.get("name", q))
|
||||
except Exception as e:
|
||||
LOGGER.warning(f"Errore geocoding per {city_name}: {e}")
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user