如何在拖动后更新谷歌地图V3的自定义信息窗口的pixelPosition?
-
18-09-2019 - |
题
我创建了谷歌地图之上的新的混搭。这是很简单的,我选择使用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
不隶属于 StackOverflow