Вычисление расстояния — важный аспект различных приложений, включая картографирование, логистику и навигацию. В этой статье блога мы обсудим несколько методов расчета расстояний в Анкола-Манипале, красивом регионе Индии. Мы предоставим примеры кода для демонстрации каждого метода, что позволит вам понять и реализовать их в своих собственных проектах. Итак, приступим!
- Формула гаверсина.
Формула гаверсина обычно используется для расчета расстояний между двумя точками на сфере, например на Земле. Вот пример того, как рассчитать расстояние между двумя местами в Анкола-Манипале, используя их координаты широты и долготы:
import math
def haversine(lat1, lon1, lat2, lon2):
r = 6371 # Radius of the Earth in kilometers
dlat = math.radians(lat2 - lat1)
dlon = math.radians(lon2 - lon1)
a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) \
* math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
distance = r * c
return distance
# Example usage
ankola_lat = 14.6650
ankola_lon = 74.3000
manipal_lat = 13.3550
manipal_lon = 74.7905
distance = haversine(ankola_lat, ankola_lon, manipal_lat, manipal_lon)
print(f"The distance between Ankola and Manipal is approximately {distance} km.")
- Формула Винсенти.
Формула Винсенти обеспечивает более точный расчет расстояний на поверхности Земли по сравнению с формулой Хаверсина. Вот пример использования формулы Винсенти для расчета расстояний между двумя точками в Анкола-Манипале:
from geographiclib.geodesic import Geodesic
def vincenty(lat1, lon1, lat2, lon2):
geod = Geodesic.WGS84
result = geod.Inverse(lat1, lon1, lat2, lon2)
distance = result['s12'] / 1000 # Convert meters to kilometers
return distance
# Example usage
distance = vincenty(ankola_lat, ankola_lon, manipal_lat, manipal_lon)
print(f"The distance between Ankola and Manipal is approximately {distance} km.")
- Евклидово расстояние:
Если у вас есть декартовы координаты двух точек в Анкола-Манипале, вы можете вычислить евклидово расстояние, используя теорему Пифагора. Вот пример:
def euclidean(x1, y1, x2, y2):
distance = math.sqrt((x2 - x1)2 + (y2 - y1)2)
return distance
# Example usage
ankola_x = 10
ankola_y = 20
manipal_x = 30
manipal_y = 40
distance = euclidean(ankola_x, ankola_y, manipal_x, manipal_y)
print(f"The distance between Ankola and Manipal is approximately {distance} units.")