Question

Je travaille dans une autre application iPhone qui utilise AR, et je crée mon propre cadre, mais je vais avoir du mal à essayer d'obtenir l'angle d'une deuxième coordonnée par rapport à la position actuelle de l'appareil, tout le monde connaît une bonne ressource qui pourrait me aider?

Merci d'avance!

Était-ce utile?

La solution

Si les deux points sont suffisamment proches, et bien loin des pôles, vous pouvez utiliser une TRIG simple:

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

EDIT: J'ai oublié de mentionner que latN et longN - et donc dx et dy - peut être en degrés ou radians, tant que vous ne mélangez pas les unités. Cependant, angle, reviendra toujours en radians. Bien sûr, vous pouvez le récupérer à des degrés si vous multipliez par 180 / M_PI.

Autres conseils

Voici la version Android de ce code

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;
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top