Obtenir les coordonnées d'un événement de clic ou de glisser dans l'API Google Maps?

  • J'ai fait un géocodeur Google Version 3, je veux être capable de récupérer les coordonnées du marqueur lorsqu'il est glissé ou cliqué. Voici mon code:

    
    
    
    
    Exemple d'API JavaScript Google Maps v3: géocodage simple
    
    
    
    var géocodeur;
    var map;
    function initialize () {
    geocoder = nouveau google.maps.Geocoder ();
    var latlng = nouveau google.maps.LatLng (-34,397, 150,644);
    var myOptions = {
      zoom: 8,
      centre: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map (document.getElementById ("map_canvas"), mesOptions);
    }
    
    
    function codeAddress () {
    var adresse = document.getElementById ("adresse"). valeur;
    geocoder.geocode ({'adresse': adresse}, fonction (résultats, état) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter (résultats [0] .geometry.location);
        var marker = new google.maps.Marker ({
            carte: carte,
            draggable: vrai,
            position: résultats [0] .geometry.location
    
        });
      } autre {
        alert ("Le géocodage n'a pas réussi pour la raison suivante:" + état);
      }
    });
    }
    
    
    
    #les contrôles {
    position: absolue;
    bas: 1em;
    gauche: 100px;
    largeur: 400px;
    indice z: 20000;
    rembourrage: 0 0.5em 0.5em 0.5em;
    }
     html, corps, #map_canvas {
                marge: 0;
                largeur: 100%;
                hauteur: 100%;
            }
    
    
    
    
    
    
    
    
    
    
    
    

    J'ai essayé d'utiliser le code suivant pour ce faire, mais cela ne semble pas fonctionner.

           // Javascript //
           google.maps.event.addListener (marqueur, 'dragend', function (evt) {
           document.getElementById ('current'). innerHTML = 'Marqueur déposé: Current Lat:' + evt.latLng.lat (). toFixed (3) + 'Current Lng:' + evt.latLng.lng (). toFixed (3 ) + '';
           });
    
           google.maps.event.addListener (marqueur, 'dragstart', function (evt) {
           document.getElementById ('current'). innerHTML = 'En cours de déplacement du marqueur ...';
           });
    
     map.setCenter (marker.position);
     marker.setMap (carte);
    
     // HTML //
     
     Rien pour le moment...
    

    Un peu flou sur ce que vous essayez de faire, mais dans une fonction de gestionnaire d'événements, vous pouvez utiliser `evt.latLng` pour saisir les coordonnées

    Hey @Roy je, je veux entrer une adresse puis obtenir les coordonnées dans une popup, comme mon exemple. Dans mon exemple, vous pouvez accéder à une adresse via la saisie de texte puis faire glisser le point, je veux faire apparaître les coordonnées lorsque je fais glisser le point. L'exemple ci-dessous est bon mais je veux saisir une adresse? Pouvez-vous m'aider?

    L'exemple de Mapperz semble plutôt bon. Je n'ai pas utilisé l'API GM depuis un moment, vous pourriez obtenir une réponse plus rapide sur StackOverflow.

    Un blog détaillé: http: //goo.gl/pDD6Q8

  • J'ai mis en place une fonction simple pour vous:

    function markerCoords(markerobject){
        google.maps.event.addListener(markerobject, 'dragend', function(evt){
            infoWindow.setOptions({
                content: '

    Marker dropped: Current Lat: ' + evt.latLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '

    ' }); infoWindow.open(map, markerobject); }); google.maps.event.addListener(markerobject, 'drag', function(evt){ console.log("marker is being dragged"); }); }

    Et insérez markerCoords (marker); sous la déclaration de marqueur!

Licence sous CC-BY-SA avec attribution


Contenu daté avant 26/06/2020 09:53