Як обчислити відстань та азимут двох точок, представлених рядками координат, у Python

Проблема:

Ви маєте дві точки, представлені рядками координат у Python:

input_coords.py
a = "N 48° 06.112' E 11° 44.113'"
b = "N 48° 06.525' E 11° 44.251'"

і ви хочете обчислити як азимут, так і відстань між ними

Рішення

Це можна зробити, використовуючи комбінацію двох наших попередніх постів:

compute_from_strings.py
from geographiclib.geodesic import Geodesic
from geopy.geocoders import ArcGIS

geolocator = ArcGIS()

a = geolocator.geocode("N 48° 06.112' E 11° 44.113'")
b = geolocator.geocode("N 48° 06.525' E 11° 44.251'")

result = Geodesic.WGS84.Inverse(a.latitude, a.longitude, b.latitude, b.longitude)
distance = result["s12"] # у [м] (метрах)
bearing = result["azi1"] # у [°] (градусах)

Результат для нашого прикладу:

result_summary.py
distance = 784.3069649126435 # m
bearing = 12.613924599757134 # °

Дивіться схожі статті за категоріями: Географія Python