En partant d'un point de départ (origLat, origLon), d'un point de terminaison (destLat, destlon) et d'un% de déclenchement terminé. Comment calculer la position actuelle (curLat, curLon)?Comment calculer la position actuelle sur une trajectoire de grand cercle
Répondre
Aviation Formulary est une excellente ressource qui couvre cette question et plus encore.
Gardez juste à l'esprit que ces formules supposent un modèle sphérique. Des formules existent pour les ellipsoïdes (WGS84 et autres), mais elles seront beaucoup plus compliquées. Tout dépend de vos exigences de presicion. – Stefan
Fonctionne bien. Bien que Lawnmower dit que c'est une estimation basée sur la sphère. Si quelqu'un peut fournir un lien vers le même algorithme pour un modèle WGS84, je l'apprécierais vraiment. – Anthony
Il n'y a plus de formules simples lors du déplacement vers des ellipsoïdes, mais vous devez utiliser des approximations itératives. Commencez par http://geographiclib.sourceforge.net/html/geodesic.html et voyez les références qui y sont liées. Peut-être que vous pouvez utiliser la bibliothèque directement ou regarder le code. – hfs
Dans ce cas, il devrait être très simple:
curLat = origLat + percentageOfTripCompleted*(destLat-origLat);
curLon = origLon + percentageOfTripCompleted*(destLon-origLon);
* Le fait que la terre est une sphère n'a vraiment aucune incidence sur ce problème.
Ce n'est pas un grand cercle. – Stefan
C'est incorrect. Regardez le lien dans la réponse de @ hfs. Souvenez-vous que les chemins de cercle ne sont pas des lignes droites. – Jonathan
penser à celui-ci un peu plus, c'est certainement vrai. ma faute. – nosirrahcd
MTL fournit un bon contenu sur les calculs de grand cercle et quelques applets de travail que vous pouvez utiliser pour vérifier votre implémentation.
De quel cercle parlez-vous? – Gumbo