Ottenere le coordinate dall'evento di clic o trascinamento nell'API di Google Maps?

  • Ho creato un geocodificatore di Google versione 3, voglio essere in grado di raccogliere le coordinate del marker quando viene trascinato o cliccato. Di seguito il mio codice:

    
    
    
    
    Esempio di API JavaScript di Google Maps v3: geocodifica semplice
    
    
    
    var geocoder;
    var map;
    function initialize () {
    geocoder = nuovo google.maps.Geocoder ();
    var latlng = nuovo google.maps.LatLng (-34.397, 150.644);
    var myOptions = {
      zoom: 8,
      centro: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map (document.getElementById ("map_canvas"), myOptions);
    }
    
    
    function codeAddress () {
    var address = document.getElementById ("address"). value;
    geocoder.geocode ({'address': address}, function (results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter (risultati [0] .geometry.location);
        var marker = new google.maps.Marker ({
            mappa: mappa,
            trascinabile: vero,
            posizione: risultati [0] .geometry.location
    
        });
      } altro {
        alert ("La geocodifica non è riuscita per il seguente motivo:" + status);
      }
    });
    }
    
    
    
    #controls {
    posizione: assoluta;
    in basso: 1em;
    sinistra: 100 px;
    larghezza: 400px;
    z-index: 20000;
    imbottitura: 0 0.5em 0.5em 0.5em;
    }
     html, body, #map_canvas {
                margine: 0;
                larghezza: 100%;
                altezza: 100%;
            }
    
    
    
    
    
    
    
    
    
    
    
    

    Ho provato a utilizzare il seguente codice per farlo, ma non sembra funzionare.

           // Javascript //
           google.maps.event.addListener (marker, 'dragend', function (evt) {
           document.getElementById ('current'). innerHTML = 'Marker drop: Current Lat:' + evt.latLng.lat (). toFixed (3) + 'Current Lng:' + evt.latLng.lng (). toFixed (3 ) + '';
           });
    
           google.maps.event.addListener (marker, 'dragstart', function (evt) {
           document.getElementById ('current'). innerHTML = 'Stai trascinando il marker ...';
           });
    
     map.setCenter (marker.position);
     marker.setMap (mappa);
    
     // HTML //
     
     Ancora niente...
    

    Un po 'confuso su ciò che stai cercando di fare, ma all'interno di una funzione di gestore di eventi puoi usare `evt.latLng` per acquisire le coordinate

    Ehi @Roy, voglio inserire un indirizzo e poi ottenere le coordinate in un popup, come il mio esempio. Nel mio esempio puoi andare a un indirizzo tramite l'immissione di testo, quindi trascinare il punto, voglio visualizzare le coordinate quando trascino il punto. L'esempio seguente è buono ma voglio inserire un indirizzo? Potresti aiutarmi?

    L'esempio di Mapperz sembra piuttosto buono. Non uso l'API GM da un po 'di tempo, potresti ottenere una risposta più rapida su StackOverflow.

    Un blog dettagliato: http: //goo.gl/pDD6Q8

  • EZMapdesign

    EZMapdesign Risposta corretta

    8 anni fa

    Ho messo insieme una semplice funzione per te:

    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"); }); }

    E inserisci markerCoords (marker); sotto la dichiarazione del marcatore!

Licenza sotto CC-BY-SA con attribuzione


Contenuto datato prima del 26/06/2020 09:53