我创建了谷歌地图之上的新的混搭。这是很简单的,我选择使用V3提供更长的寿命。

然而,有一些特殊的需求,谷歌地图的信息窗口不提供。

我定位我的marker.projectionContainer.pixelPosition定制的信息窗口。我得到正确的位置变焦后,却拖着不更新标记pixelPosition。我怎样才能拖动后得到的标记之间的旧的位置和新的区别?

我应该使用 OverlayView的,而不是试图从DOM破解位置?我认为地图自己的信息窗口会自动更新/停在面板。

有帮助吗?

解决方案

这个回答假设通过拖动你的意思是拖动标记,而不是拖动地图,让我知道这是不是这样

您应该使用OverlayView的,然后你可以使用MVC技术绑定到标记的位置属性。

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

您还需要实现OverlayView的接口的其余部分:使用onAdd和onRemove

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top