Prise en Lat/Lng de marqueur Google
J'ai fait une carte Google Maps avec un déplaçable marqueur. Lorsque l'utilisateur fait glisser le marqueur, j'ai besoin de savoir les nouvelles de la latitude et de la longitude, mais je ne comprends pas quelle est la meilleure approche pour le faire.
Comment puis-je récupérer les nouvelles coordonnées?
Vous devez vous connecter pour publier un commentaire.
Ici est la JSFiddle Démo. Dans l'API Google Maps V3 c'est assez simple à suivre la lat et de gnl d'une déplaçable marqueur. Commençons par ce qui suit HTML et CSS que notre base.
Voici notre code JavaScript initial de l'initialisation de la carte google. Nous avons créer un marqueur que nous voulons faire glisser et de définir c'est déplaçable true à la propriété. Bien sûr, gardez à l'esprit qu'il doit être attaché à un événement onload de votre fenêtre pour qu'il soit chargé, mais je vais ignorer le code:
Ici nous attacher deux événements
dragstart
pour suivre le début de son déplacement etdragend
à drack lorsque le marqueur d'arrêt s'enlise, et la façon dont nous joindre, il est à utilisergoogle.maps.event.addListener
. Ce que nous faisons ici, c'est le réglage de la divcurrent
s'contenu lorsque le marqueur est s'enlise et ensuite définir le marqueur de la lat et de gnl lorsque cesse de glisser. Google événement de souris est un nom de propriété 'latlng" qui renvoie sur google.cartes.LatLng " objet lorsque l'événement se déclenche. Donc, ce que nous faisons ici, c'est essentiellement l'aide de l'identificateur de cet auditeur qui revient par lagoogle.maps.event.addListener
et obtenir la propriétélatLng
pour extraire le dragend position actuelle. Une fois que l'on Lat Gnl lorsque le déplacement s'arrête, nous allons l'afficher au sein de votrecurrent
div:Enfin, nous allons centrer notre marqueur et de l'afficher sur la carte:
Laissez-moi savoir si vous avez des questions au sujet de ma réponse.
Vous pourrait simplement appeler
getPosition()
sur leMarqueur
- avez-vous essayé?Si vous êtes sur le obsolète, v2 de l'API JavaScript, vous pouvez appeler
getLatLng()
àGMarker
.getPosition()
renvoie un objet, afin d'obtenir plus précisément la latitude/longitude, vous aurez à appelerlat()
etlng()
respectivement à partir de cela.Plus d'informations peuvent être trouvées à L'API Google Maps - LatLng
essayer cette
Vous devez ajouter un listener sur le marqueur et d'écouter pour la faire glisser ou dragend événement, et demander à l'événement sa position lorsque vous recevez cet événement.
Voir http://code.google.com/intl/fr/apis/maps/documentation/javascript/reference.html#Marker pour la description des événements déclenchés par le marqueur. Et voir http://code.google.com/intl/fr/apis/maps/documentation/javascript/reference.html#MapsEventListener pour les méthodes permettant d'ajouter des écouteurs d'événement.
JS:
CSS:
HTML:
Il y a beaucoup de réponses à cette question, qui n'a jamais fonctionné pour moi (y compris ce qui suggère getPosition() qui ne semble pas être une méthode disponible pour les marqueurs d'objets). La seule méthode qui a fonctionné pour moi dans les cartes V3 est (tout simplement) :
marker.position.lat()
etmarker.position.lng()