Навигация с использованием math и datetime
На этом этапе вам предстоит составить маршрут для вашего предстоящего путешествия. Вычислите лучший маршрут с использованием модуля math
и оцените время прибытия с помощью модуля datetime
.
Сначала откройте скрипт под названием chart_course.py
в директории ~/project
. Этот скрипт будет вычислять расстояние до вашей следующей цели на основе координат широты и долготы.
import math
## Координаты вашего текущего местоположения и назначения (в градусах)
current_location = (0, 0)
destination = (10, 10)
def calculate_distance(loc1, loc2):
## Преобразуйте градусы в радианы
lat1, lon1 = map(math.radians, loc1)
lat2, lon2 = map(math.radians, loc2)
## Формула Гаверсинуса
dlon = lon2 - lon1
dlat = lat2 - lat1
a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2
c = 2 * math.asin(math.sqrt(a))
r = 6371 ## Радиус Земли в километрах
return c * r
## Оцените расстояние
distance = calculate_distance(current_location, destination)
print(f"Расстояние до назначения составляет {distance:.2f} километров.")
Теперь оцените время прибытия с использованием datetime
:
from datetime import datetime, timedelta
## Предположим, что средняя скорость корабля составляет 10 км/ч
average_speed = 10
## Вычислите время прибытия
time_to_destination = timedelta(hours=distance / average_speed)
arrival_time = datetime.now() + time_to_destination
print(f"Предполагаемое время прибытия: {arrival_time.strftime('%Y-%m-%d %H:%M:%S')}")
Запустите свой скрипт, выполнив следующую команду в терминале:
python ~/project/chart_course.py
На вашем терминале должны быть отображены следующие сведения:
Расстояние до назначения составляет 1568.52 километров.
Предполагаемое время прибытия: 2024-01-04 09:40:36