Получение широты и долготы от широты, длины, пеленга и расстояния
Я пытаюсь получить значения широты и долготы по значениям широты и долготы, а также по азимуту и расстоянию, но я не могу заставить его работать (метод ниже для добавления заголовков, чтобы они не превышали 360 или меньше 0):
public static double[] LocWithBearingAndDistance(double lat, double lon, double bearing, double distanceM)
{
double distance = distanceM * (360.0 / 40075000.0);
double x = (Math.Cos(bearing) * distance) + lat;
double y = (Math.Sin(bearing) * distance) + lon;
return new double[2] {x, y};
}
public static double AddHeading(double initialHeading, double valueToAdd) { return (initialHeading + valueToAdd + 360) % 360; }
Если бы кто-то мог найти уравнение для этого на трехмерной сфере, это также было бы очень ценно.
Любая помощь будет оценена.