Проблема
Я хотел бы знать, как определить расстояние и направление между двумя точками GPS.
Я исследовал хаверсинусное расстояние. Кто-то сказал мне, что я также могу найти направление, используя те же данные.
Все работает нормально, но подшипник пока работает не совсем правильно. Подшипник выдает отрицательный сигнал, но он должен находиться в диапазоне от 0 до 360 градусов.
Заданные данные должны соответствовать горизонтальному направлению 96.02166666666666 и это:
Начальная точка: 53.32055555555556, -1.7297222222222221 Подшипник: 96.02166666666666 Расстояние: 2 км Пункт назначения: 53.31861111111111, -1.6997222222222223. Конечный подшипник: 96.04555555555555 Вот мой новый код:
из математического импорта * Высота = 2000 Напротив = 20000 lat1 = 53,32055555555556 lat2 = 53,31861111111111 lon1 = -1,7297222222222221 lon2 = -1,6997222222222223 lon1, lat1, lon2, lat2 = map(радианы, [lon1, lat1, lon2, lat2]) дллон = лон2 - лон1 dlat = широта2 - широта1 a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 c = 2 * atan2(sqrt(a), sqrt(1-a)) База = 6371*с Азимут = atan2(cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1), sin(lon2-lon1)*cos(lat2)) Подшипник = градусы (Подшипник) Распечатать "" Распечатать "" Распечатать "--------------------" напечатайте «Горизонтальное расстояние:» распечатать базу Распечатать "--------------------" напечатать "Подшипник: " печать подшипник Распечатать "--------------------" База2 = База * 1000 расстояние = База * 2 + Противоположная точка * 2/2 Калтитуда = Противоположная сторона - Высота над уровнем моря а = Противоположный/Основной б = атан(а) с = градусы (б) расстояние = расстояние / 1000 print "Градус вертикального угла равен: " распечатать с Распечатать "--------------------" print "Расстояние между воздушным шаром GPS и антенной GPS составляет: " расстояние печати Распечатать "--------------------"
Формула гаверсинуса в Python (азимут и расстояние между двумя точками GPS) ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение