Cómo actualizar pixelPosition de unas ventanas de información personalizados en Google Maps V3 después de arrastrar?

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

Pregunta

Estoy creando un nuevo mashup en la parte superior de Google Maps. Es bastante simple que he optado por utilizar V3 para proporcionar una vida más larga.

Sin embargo, hay algunas necesidades especiales que Google Maps infoWindow no proporciona.

He coloqué mi infoWindow personalizado con marker.projectionContainer.pixelPosition. Consigo posición correcta después de hacer zoom, pero no actualiza arrastre marcadores pixelPosition. ¿Cómo puedo obtener la diferencia entre los marcadores de posición antigua y nueva después de arrastrar?

o

¿Debo usar OverlayView en lugar de tratar piratear la posición de DOM? Creo que las ventanas de información propios mapas se actualizan de forma automática / estacionado en paneles.

¿Fue útil?

Solución

Esta respuesta supone que quieres decir arrastrando arrastrando el marcador y no arrastrar el mapa, que me haga saber si ese no es el caso

Se debe utilizar la OverlayView y entonces usted puede utilizar técnicas de MVC de obligar a la propiedad de posición del marcador.

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

También es necesario poner en práctica el resto de la interfaz OverlayView:. OnAdd y onRemove

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top