94 votes

Obtenir Lat/Lng à partir de Google Marker

J'ai fait une carte Google Maps avec un marqueur glissable. Lorsque l'utilisateur fait glisser le marqueur, j'ai besoin de connaître la nouvelle latitude et longitude, mais je ne comprends pas quelle est la meilleure approche pour le faire.

Comment puis-je récupérer les nouvelles coordonnées ?

45voto

var lat = marker.getPosition().lat();
var lng = marker.getPosition().lng();

Plus d'informations peuvent être trouvées sur Google Maps API - LatLng

32voto

no.good.at.coding Points 13542

Vous pourriez simplement appeler getPosition() sur le Marker - avez-vous essayé cela ?

Si vous êtes sur la v2 obsolète de l'API JavaScript, vous pouvez appeler getLatLng() sur GMarker.

21voto

rolc Points 23

essayez ceci

var latlng = new google.maps.LatLng(51.4975941, -0.0803232);
var map = new google.maps.Map(document.getElementById('map'), {
    center: latlng,
    zoom: 11,
    mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
    position: latlng,
    map: map,
    title: 'Set lat/lon values for this property',
    draggable: true
});

google.maps.event.addListener(marker, 'dragend', function (event) {
    document.getElementById("latbox").value = this.getPosition().lat();
    document.getElementById("lngbox").value = this.getPosition().lng();
});

8voto

Thiago Mata Points 51
// show the marker position //

console.log( objMarker.position.lat() );
console.log( objMarker.position.lng() );

// create a new point based into marker position //

var deltaLat = 1.002;
var deltaLng = -1.003;

var objPoint = new google.maps.LatLng( 
  parseFloat( objMarker.position.lat() ) + deltaLat, 
  parseFloat( objMarker.position.lng() ) + deltaLng
);

// now center the map using the new point //

objMap.setCenter( objPoint );

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X