Вопрос

Я работаю в другом приложении для iPhone, который использует AR, и я создаю свои собственные рамки, но у меня проблемы с попыткой получения угла второй координаты относительно текущего позиции устройства, кто может знать хороший ресурс, который мог Помоги мне с этим?

Заранее спасибо!

Это было полезно?

Решение

Если две точки достаточно близко друг к другу, и вдали от полюсов, вы можете использовать простые триг:

float dy = lat2 - lat1;
float dx = cosf(M_PI/180*lat1)*(long2 - long1);
float angle = atan2f(dy, dx);

Редактировать: я забыл упомянуть, что latN а также longN - и поэтому dx а также dy - Может быть в градусах или радианах, пока вы не смешиваете единицы. angle, Однако, однако, всегда вернется в радиане. Конечно, вы можете вернуть его к градусам, если вы умножаетесь на 180 / M_PI.

Другие советы

Вот версия Android этого кода

import com.google.android.maps.GeoPoint;
    public double calculateAngle(GeoPoint startPoint, GeoPoint endPoint) {
        double lat1 = startPoint.getLatitudeE6() / 1E6;
        double lat2 = endPoint.getLatitudeE6() / 1E6;
        double long2 = startPoint.getLongitudeE6() / 1E6;
        double long1 = endPoint.getLongitudeE6() / 1E6;
        double dy = lat2 - lat1;
        double dx = Math.cos(Math.PI / 180 * lat1) * (long2 - long1);
        double angle = Math.atan2(dy, dx);
        return angle;
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top