Lepsi stahovani informaci o pocasi

This commit is contained in:
Michal Kváček
2024-09-30 06:43:11 +02:00
parent 186dbd0720
commit ca3f6ef07c
14 changed files with 198 additions and 96 deletions
+31
View File
@@ -0,0 +1,31 @@
from datetime import datetime, timedelta
from fastapi import BackgroundTasks
from background_jobs.weather import download_weather_for_plan_marker
from database import models
from utils.gps import get_distance
async def refresh_markers_weather_info(
planned_takeoff_datetime: datetime, planned_speed: float,
markers: list[models.FlightPlanMarker], background_tasks: BackgroundTasks
):
if not planned_takeoff_datetime:
return
marker_date_time = planned_takeoff_datetime
previous_marker = markers[0] if markers else None
for marker in markers:
if marker_date_time:
# TODO: tohle by se melo volat i v pripade zmeny planovaneho casu vzletu i planovane rychlosti
distance_from_prev = get_distance(
a=(previous_marker.gps_latitude, previous_marker.gps_longitude),
b=(marker.gps_latitude, marker.gps_longitude)
)
time_from_prev_sec = distance_from_prev / planned_speed * 3600 # pracuji v km/h
marker_date_time = marker_date_time + timedelta(seconds=time_from_prev_sec)
background_tasks.add_task(
download_weather_for_plan_marker,
marker_id=marker.id, date_time=marker_date_time
)
previous_marker = marker