Wie pixelPosition eines benutzerdefinierten Infofenster auf Google Maps V3 zu aktualisieren, nachdem ziehen?

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

Frage

Ich bin ein neues Mashup oben auf Google Maps zu erstellen. Es ist einfach genug, dass ich wählte V3 verwenden längere Lebensdauer zu gewährleisten.

Allerdings gibt es einige spezielle Bedürfnisse, die Google Maps infowindow nicht bieten.

Ich habe meine Gewohnheit mit marker.projectionContainer.pixelPosition positioniert infowindow. Ich bekomme richtige Position nach dem Zoomen, aber Schleppen nicht aktualisiert Marker pixelPosition. Wie kann ich Unterschied zwischen den Markern alten Position und neu nach drag bekommen?

oder

Sollte ich Overlay anstatt zu versuchen, hack Position von DOM? Ich denke, Maps' eigene Infofenster werden auf Platten automatisch aktualisiert / geparkt.

War es hilfreich?

Lösung

Diese Antwort geht davon aus, dass durch Ziehen Sie den Marker bedeuten ziehen und die Karte nicht ziehen, lassen Sie mich wissen, wenn das nicht der Fall ist

Sie sollten die Overlay verwenden und dann können Sie MVC-Techniken, um die Position Eigenschaft zu binden, verwenden die Markierung.

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

Sie müssen auch den Rest der Overlay Schnittstelle implementieren. OnAdd und onRemove

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top