15. Расстояние между точками на Земле (в коде есть строки из следующих тем: "библиотеки").

(открыть в новой вкладке)

Условие:

Как известно, поверхность планеты Земля искривлена, и расстояние между точками, характеризующимися одинаковыми градусами по долготе, может быть разным в зависимости от широты. Таким образом, для вычисления расстояния между двумя точками на Земле одной лишь теоремой Пифагора не обойтись.
Допустим, (t1, g1) и (t2, g2) – координаты широты и долготы двух точек на поверхности Земли. Тогда расстояние в километрах между ними с учетом искривленности планеты можно найти по следующей формуле:
distance = 6371,01 * arccos(sin(t1) * sin(t2) + cos(t1) * cos(t2) * cos(g1 - g2)).
Число 6371,01 в этой формуле, конечно, было выбрано не случайно и представляет собой среднее значение радиуса Земли в километрах.
Напишите программу, в которой пользователь будет вводить координаты двух точек на Земле (широту и долготу) в градусах. На выходе мы должны получить расстояние между этими точками при следовании по кратчайшему пути по поверхности планеты.
Тригонометрические функции в Python оперируют радианами. Таким образом, вам придется введенные пользователем величины из градусов перевести в радианы, прежде чем вычислять расстояние между точками. В библиотеке math есть удобная функция с названием radians. Функция radians, нужна как раз для перевода градусов в радианы.

Код:

from math import acos, sin, cos, radians                                                                                                    # подключение дополнительных функций из библиотеки math
print()

latitude_1 = radians(float(input("%60s" % "Введите широту первой точки: ")))                                                                # с помощью дополнительной функции переводим градусы на входе в радианы
longitude_1 = radians(float(input("%60s" % "Введите долготу первой точки: ")))
latitude_2 = radians(float(input("%60s" % "Введите широту первой точки: ")))
longitude_2 = radians(float(input("%60s" % "Введите долготу первой точки: ")))
radius_middle = 6371.01                                                                                                                     # это среднее значение радиуса Земли

distance = radius_middle * acos(sin(latitude_1) * sin(latitude_2) + cos(latitude_1) * cos(latitude_2) * cos(longitude_1 - longitude_2))     # формула расстояния между двумя точками на планете Земля 
print("%59s" % "Расстояние между двумя координатами по прямой, в км.:", "%.2f" % distance)