JS de Google Maps API v3 Animer Marqueur Entre les Coordonnées
J'ai un simple javascript de l'application cartes sur lequel je travaille qui m'oblige à animer le mouvement de plusieurs marqueurs entre les différentes coordonnées. Chaque marqueur est libre de se déplacer sur son propre et tous les marqueurs sont stockées dans un tableau la liste. Cependant, j'ai eu du mal à les amener à la transition endroits.
J'ai fait une tonne de recherches et d'essai/erreur, mais pas de chance, quelqu'un a une chance avec cette?
OriginalL'auteur John Snow | 2012-06-05
Vous devez vous connecter pour publier un commentaire.
Mon quick-and-dirty approche n'implique pas une tonne de recherche 🙁
Voici la démo: http://jsfiddle.net/yV6xv/4/ Cliquez sur un marqueur pour commencer à bouger, après qu'il s'arrête, vous pouvez cliquez à nouveau pour revenir à son point initial. En cliquant tout en mouvement donne des résultats étranges.
De démarrage et les paramètres sont prédéfinis dans
initialize()
. L'animation est défini en divisant le départ et les points de terminaison dans 100 segments, et en plaçant le marqueur au niveau de ces points avec un intervalle défini. De sorte que le temps de l'animation est fixe: les marqueurs de parcourir de plus longues distances "plus vite" que les plus courtes distances.Je n'ai pas fait beaucoup d'essais, je sais cliquant sur un mouvement du repère de donner des résultats inattendus (de début et de points de terminaison de les perdre)
C'est "intéressant" partie de la démo:
OriginalL'auteur Tina CG Hoehr
Vous pouvez utiliser le marqueur d'animation discrète de la bibliothèque pour faire des marqueurs
transition d'un lieu à un autre.
Vous pourriez initialiser votre marqueur comme ça:
Avec cette définition, le marqueur se fera en douceur déplacer vers une nouvelle position dans un délai de 1 seconde, il suffit d'appeler le marqueur.setPosition().
Si vous souhaitez animer un marqueur de va-et-vient, tout bascule setPosition chaque seconde.
P. S. je suis l'auteur de la bibliothèque.
C'est l'idée d'être 'discrète', agréable à entendre, il a travaillé pour vous.
OriginalL'auteur viskin
Je ne suis pas sûr si c'est ce que vous cherchez, mais je partage quand même : j'ai écrit ce code à de simuler le mouvement d'une voiture avec une vitesse en km/h. Vous avez juste besoin de spécifier les coordonnées de chaque point que vous voulez le marqueur/voiture (alors qu'il va animer le marqueur entre les coordonnées).
J'ai modifié rcravens réponse pour obtenir ceci:
jsfiddle - DÉMO
Notez que vous devez ajouter de la "géométrie" de la bibliothèque lorsque vous incluez les cartes google pour être en mesure d'utiliser
google.maps.geometry.spherical.computeDistanceBetween
:http://maps.google.com/maps/api/js?sensor=true&les bibliothèques=géométrie
Espère que cela aide!
Les coordonnées sont dynamiques en sorte que le marqueur sera animé à partir d'une coordonnée à la suivante. Si vous voulez obtenir les directions à partir d'un point à un autre, utiliser les developers.google.com/maps/documentation/javascript/directions et dans la réponse, avoir un regard sur
response.routes[0].overview_path
qui serait l'équivalent decoords
dans ceanimateMarker
méthode. Espérons que cela aide.OriginalL'auteur pmrotule
Une alternative est d'utiliser les transitions CSS. L'important est d'identifier les DIVs, Google Maps est l'aide de votre marqueur (Il y a 2 l'un est transparent pour les événements tactiles) L'enquête a été fait pour vous et vous n'avez qu'à le comprendre une fois.
Un exemple complet peut être trouvé ici Voir comment en douceur Hansel et Gretel se déplacer autour de la carte! Et les délais de transition fusionnent si il n'y a aucun retard.
Tout le code de mon Brotkrumen Ultime Application Web peut être trouvé ici vous sera surtout intéressé par l'HandleMap.js fichier mais il y a un aaa_readme.txt
Voici une partie du code: -
OriginalL'auteur McMurphy