Question

J'ai un ensemble de points à partir de (0,0,0) traçant en 3D la trajectoire d'un véhicule, chaque point étant la distance parcourue dans sa dimension respective. J'ai besoin de faire 2 choses

  1. Soit (0,0,0) une latitude et une longitude. Comment convertir mon ensemble de points en 3D en équivalents en latitude et en longitude?
  2. Tracez-le image par image (avec un délai afin de pouvoir l'utiliser pour une vidéo) sur Google Maps / Earth / quel que soit

Des suggestions?

EDIT: Maintenant, le traçage est faisable et la conversion n’est plus possible grâce à David

Était-ce utile?

La solution

Il serait facile d’utiliser JavaScript pour animer des points se déplaçant sur une carte Google dans votre navigateur. Je ne suis toutefois pas sûr du type de vidéo que vous essayez d'obtenir.

Google Maps a même une méthode API qui rendra une carte avec votre chemin tracé sur la carte. Vous pouvez consulter cette ici au bas de la page.

Autres conseils

Pour Google Earth, voici un excellent exemple: ici . : faites défiler jusqu'à "Exemple: affichage du mouvement d'un point le long d'un chemin"

Pour l'API Google Maps, cet exemple se trouvait dans le Galerie de démonstration de Google Maps . C'est un peu dur, mais vous avez une idée de ce que vous pourriez faire.

Vous avez donc un point de départ (0,0) dans un système de coordonnées (arbitraire) et un point correspondant (latitude, longitude) dans un autre système de coordonnées (géocentrique). Votre problème est, étant donné un ensemble de décalages connus (x, y) par rapport à votre origine, comment trouvez-vous les points correspondants (latitude, longitude)? (Si j'ai bien compris votre question jusqu'à présent?)

La réponse simple consiste simplement à utiliser la formule suivante:

lat2 = asin(sin(lat1)*cos(d/R) + cos(lat1)*sin(d/R)*cos(θ))
lon2 = lon1 + atan2(sin(θ)*sin(d/R)*cos(lat1), cos(d/R)−sin(lat1)*sin(lat2))
d/R is the angular distance (in radians), where d is the distance travelled and R is the earth’s radius

Tiré de ce lien: http: //www.movable-type. co.uk/scripts/latlong.html

Éditer 2: (Oh, j’ai oublié de mentionner: cette formule suppose que vous avez des coordonnées polaires (R, & # 952;) au lieu de coordonnées cartésiennes (x, y). Mais convertir entre celles-ci est pas trop difficile .)

La réponse un peu plus longue est que si vous effectuez cette opération sur un espace suffisamment grand, le calcul devient très compliqué, en raison de la mesure de la hauteur et de la manière dont la surface de la Terre est façonnée. Vous voulez probablement lire sur les systèmes de coordonnées géographiques; cet article de Wikipedia est un bon point de départ. Vous pouvez également trouver la bibliothèque PROJ.4 utile.

Modifier:

Si vous devez prendre en compte les mesures de hauteur (z), le calcul devient encore plus complexe. La solution facile (ier) consiste à effectuer un calcul mathématique en 2,5 dimensions, c'est-à-dire à calculer la coordonnée (x, y) avec un ensemble de formules, puis à effectuer la coordonnée (z) séparément. Cela ne fonctionne que sur une surface suffisamment petite, car vous supposez essentiellement que la surface de la terre est plate pour l'espace dans lequel vous travaillez. Toutefois, cela peut suffire à votre application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top