Angle entre 2 Coordonnées GPS
-
25-09-2019 - |
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!
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;
}