Проблема:
Ви маєте дві точки, представлені рядками координат у Python:
input_coords.py
a = "N 48° 06.112' E 11° 44.113'"
b = "N 48° 06.525' E 11° 44.251'"і ви хочете обчислити як азимут, так і відстань між ними
Рішення
Це можна зробити, використовуючи комбінацію двох наших попередніх постів:
- Як парсити будь-який lat/lon рядок у Python за допомогою GeoPy та
- Як обчислити відстань та азимут між двома lat/lon точками у Python
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 # °Якщо ця стаття допомогла вам, будь ласка, подумайте про те, щоб купити мені каву або зробити пожертву через PayPal на підтримку досліджень та публікації нових статей на TechOverflow