Разница в географической длине пути с использованием VB.NET
У меня есть набор кодов, который вычисляет линии полета, начиная с lat/lon, начального направления, направления поворота,длины трека, ширины трека и количества линий.
Все переменные определяются как десятичные
Используя 135 градусов и 315 градусов, 100-мильную трассу, я получаю 2 разных результата. На трассе "юго-восток" 100.5671 миль друг от друга, и северо-западной точки 99.23002 миль друг от друга. Это искажает начало и конец моих линий полета, но линии параллельны
При тестировании с заголовками 90/270, с более длинными линиями, пары lat/lon, по-видимому, вызывают отклонение в заголовках на 1,1 градуса, но вычисляются с одинаковыми длинами пути и долготой, но с разными долготами, поэтому линии полета не параллельны
Вот несколько формул
Вызов GetNextLineStart(EndLatRadians, EndLonRadians, TrackWidthKM, connectingCourseRadians)
LineStartLatDD = rad2deg(EndLatRadians)
LineStartLonDD = rad2deg(EndLonRadians)
LineCourseRadians = deg2rad (LineCourseDD)вызов GetNextLineStart(EndLatRadians, EndLonRadians, TrackLengthKM, LineCourseRadians)
LineEndLatDD = rad2deg(EndLatRadians)
LineEndLonDD = rad2deg(EndLonRadians)
И
Sub GetNextLineStart(Lat1, Lon1, Dist, Курс)
'широта долгота в радианах, дистанция в км, естественно в радианах
Вызов GetNewlat(Lat1, Lon1, Dist, Курс)
Вызов GetNewlon(Lat1, Lon1, Dist, Course)
NewEndLatDD = RadToDeg(EndLatRadians)
NewEndLonDD = RadToDeg(EndLonRadians)
Конец Подводной Лодки
И настоящее мясо
Sub GetNewlat(Lat1, Lon1, Dist, Подшипник)
Dim R As Decimal = 6378,1
EndLatRadians = Математика.Асин(Математика.Грех(Lat1) * Математика.Потому Что(Р / Р) + Математика.В COS(Lat1) * Математика.Грех(Р / Р) * Математика.Потому Что(Подшипник))
Конец Подводной Лодки
Sub GetNewlon(Lat1, Lon1, Dist, Подшипник)
Dim R As Decimal = 6378,1
EndLonRadians = Lon1 + Математика.Инструмент Atan2(Математика.Грех(Подшипник) * Математика.Грех(Р / Р) * Математика.В COS(Lat1), Математика.Потому Что(Р / Р) - Математика.Грех(Lat1) * Математика.Грех(Lat1))
Конец Подводной Лодки
Что я уже пробовал:
Я изменил переменные на десятичные-никаких изменений,