Венгрия, расположенная в Центральной Европе, предлагает богатое культурное наследие, потрясающие пейзажи и яркие города. Однако, если вы ищете приключение, которое приведет вас в самые дальние уголки мира из Венгрии, эта статья для вас. Мы рассмотрим различные методы и примеры кода, чтобы определить самые дальние места от Венгрии и подарить вам незабываемые впечатления от путешествия. Давайте отправимся в виртуальное путешествие за пределы границ!
Метод 1: формула гаверсинуса
Формула гаверсинуса вычисляет расстояние по большому кругу между двумя точками на сфере, учитывая их долготу и широту. Применяя эту формулу ко всем возможным направлениям, мы можем определить самое дальнее место от Венгрии.
from math import radians, sin, cos, sqrt, asin
def haversine(lon1, lat1, lon2, lat2):
# Convert degrees to radians
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
# Haversine formula
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)2 + cos(lat1) * cos(lat2) * sin(dlon/2)2
c = 2 * asin(sqrt(a))
r = 6371 # Earth's radius in km
distance = c * r
return distance
# Example: Budapest, Hungary to Sydney, Australia
budapest = (19.0402, 47.4979)
sydney = (151.2093, -33.8688)
distance = haversine(budapest[0], budapest[1], sydney[0], sydney[1])
print(f"The distance between Budapest and Sydney is {distance} km.")
Метод 2: API матрицы расстояний Карт Google
Использование API матрицы расстояний Карт Google позволяет нам рассчитать расстояние и время в пути между несколькими местоположениями. Запрашивая расстояния от Венгрии до различных пунктов мира, мы можем определить самое дальнее место.
import requests
def calculate_distance(origin, destination, api_key):
url = f"https://maps.googleapis.com/maps/api/distancematrix/json?origins={origin}&destinations={destination}&key={api_key}"
response = requests.get(url).json()
distance = response['rows'][0]['elements'][0]['distance']['value'] / 1000 # Distance in km
return distance
# Example: Budapest, Hungary to New York, USA
origin = "Budapest, Hungary"
destination = "New York, USA"
api_key = "YOUR_GOOGLE_MAPS_API_KEY"
distance = calculate_distance(origin, destination, api_key)
print(f"The distance between Budapest and New York is {distance} km.")
Метод 3: расчет геодезического расстояния с помощью GeoPy
GeoPy — это библиотека Python, предоставляющая услуги геокодирования и геолокации. Мы можем использовать GeoPy для расчета геодезического расстояния между двумя точками на поверхности Земли.
from geopy.distance import geodesic
# Example: Budapest, Hungary to Tokyo, Japan
budapest = (47.4979, 19.0402)
tokyo = (35.6895, 139.6917)
distance = geodesic(budapest, tokyo).km
print(f"The distance between Budapest and Tokyo is {distance} km.")
Метод 4: расчет расстояния полета с помощью AviationStack API
AviationStack API предоставляет данные, связанные с полетом, включая маршруты полета и расстояния. Запрашивая API для рейсов из Венгрии в различные пункты назначения, мы можем определить самое дальнее место на основе расстояния полета.
import requests
def calculate_flight_distance(origin, destination, access_key):
url = f"http://api.aviationstack.com/v1/flights?access_key={access_key}&dep_iata={origin}&arr_iata={destination}"
response = requests.get(url).json()
flight_distance = response['data'][0]['flight']['distance']
return flight_distance
# Example: Budapest, Hungary to Los Angeles, USA
origin = "BUD" # Budapest Ferenc Liszt International Airport
destination = "LAX" # Los Angeles International Airport
access_key = "YOUR_AVIATIONSTACK_API_ACCESS_KEY"
distance = calculate_flight_distance(origin, destination, access_key)
print(f"The flight distance between Budapest and Los Angeles is {distance} km.")