Come aggiornare pixelPosition di un infoWindows personalizzati su Google Maps V3 dopo il trascinamento?

StackOverflow https://stackoverflow.com/questions/1868663

Domanda

Sto creando un nuovo mashup in cima a Google Maps. E 'abbastanza semplice che ho scelto di usare V3 per fornire la durata più lunga.

Tuttavia, ci sono alcune esigenze particolari che Google Maps infowindow non fornisce.

ho posizionato il mio infowindow personalizzato con marker.projectionContainer.pixelPosition. Ottengo posizione corretta dopo lo zoom, ma il trascinamento non aggiorna i marcatori pixelPosition. Come posso ottenere differenza tra i marcatori posizione di vecchio e nuovo, dopo il drag?

o

OverlayView invece di cercare per incidere posizione dalla DOM? Credo proprio infoWindows Maps vengono aggiornati automaticamente / parcheggiata su pannelli.

È stato utile?

Soluzione

Questa risposta presuppone che con il drag intendi trascinando il marcatore e non trascinando la mappa, fatemi sapere se questo non è il caso

Si dovrebbe usare l'OverlayView e quindi è possibile utilizzare tecniche di MVC per associare alla proprietà la posizione del marcatore.

function MyOverlay(marker) {
  this.bindTo('position', marker);
}
MyOverlay.prototype = new google.maps.OverlayView();

MyOverlay.prototype.position_changed = function() {
  this.draw();
};

MyOverLay.prototype.draw = function() {
  // This is where you recalculate the latLngToPixel stuff where latLng
  // is this.get('position');
};

È inoltre necessario implementare il resto dell'interfaccia OverlayView:. OnAdd e OnRemove

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top