Получение широты и долготы от широты, длины, пеленга и расстояния

Я пытаюсь получить значения широты и долготы по значениям широты и долготы, а также по азимуту и ​​расстоянию, но я не могу заставить его работать (метод ниже для добавления заголовков, чтобы они не превышали 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; }

Если бы кто-то мог найти уравнение для этого на трехмерной сфере, это также было бы очень ценно.

Любая помощь будет оценена.

0 ответов

Другие вопросы по тегам