0

ich google-map-Marker bin mit (in dom-Wiederholung) mit der Veranstaltung: on-google-map-Marker-dragend.Aktuelle google-map-Markerposition ist nicht korrekt

Ich versuche, die aktuelle Position der Markierung zu erhalten, nachdem der Widerstand abgeschlossen ist, aber ich nur die Position der Markierung erhalten, wo sie auf dem Widerstand vor dem aktuellen Drag verschoben wurden.

<google-map zoom="15" id="map" style="height: 20em" api-key="[[apiKey]]" fit-to-markers> 
      <template is="dom-repeat" items="[[markers]]" as="mapMarker"> 
       <google-map-marker on-google-map-marker-click="inform" on-google-map-marker-dragend="inform" click-events="true" draggable="true" drag-events="true" latitude="{{mapMarker.latitude}}" longitude="{{mapMarker.longitude}}"> 
       </google-map-marker> 
      </template> 
     </google-map> 

die Methode:

inform: function(event){ 
      // this is not the current position after drag end... 
      console.log(event.model.mapMarker.latitude); 
      console.log(event.target.latitude); 

      this.$.userInformationLatitude.innerHTML = event.model.mapMarker.latitude; 
      this.$.userInformationLongitude.innerHTML = event.model.mapMarker.longitude; 
     } 

Beispiel zum besseren Verständnis: schleppe ich meine Markierung von Breite: 0 Länge: 0 bis New York, nachdem das Ziehen abgeschlossen ist, erhalte ich die Werte Breitengrad: 0 Längengrad: 0, nicht Längen- und Breitengrad von New York.

+0

Try items = "{{Marker}}" auch, was passiert, wenn Sie sich als = "MapMarker" entfernen und die Nutzung Breite = "{{item.latitude}}". –

Antwort

0

Ich benutze Beobachter, um die Änderung der Markerposition zu erfassen/zu lesen.

Hier ist das Beispiel Plunk, Element my-marker_drag_catch:

//called on property this.marker_latitude change.   
    marker_latitudeChanged: function() { 
     console.log('marker_latitudeChanged'); 
     if (this.marker_latitude) { 
      this.save_marker_data(); 
     } 
    }, 

    //called on property this.marker_latitude change.   
    marker_longitudeChanged: function() { 
     console.log('marker_longitudeChanged'); 
     if (this.marker_longitude) { 
      this.save_marker_data(); 
     } 
    }, 
0

Wir lösten es event.detail.latLng.lat mit(); und event.detail.latLng.lng(); statt event.model ...

inform: function(event){ 
     this.$.userInformationLatitude.innerHTML = event.detail.latLng.lat(); 
     this.$.userInformationLongitude.innerHTML = event.detail.latLng.lng(); 
} 
Verwandte Themen