我有一个自定义地图,它匹配它们所属的完全相同位置上的标记,但是当我放大标记或地图有点偏移时。现在我使用overlayview
作为标记,该类位于文件google-maps-types.ts中,我设置标记的中心点。所以我真正想要的是获得当前缩放以产生if语句,以便在每次缩放时改变中心点。
这是PLUNKER,所以基本上我想要的是获取google-map-types.ts中的当前缩放级别,以便我可以访问它并更改标记的点。反之亦然,在指令/ google-map.ts中获取标记的位置。
但我不认为这是一种正确的方法,我想在缩放变化时更新其位置(稍微向上移动)。
我在google-map-types中尝试过但我真的不想在OverlayViewBla类中编辑它:
this.overlayView.getZoom = function () {
console.log(this._mapsWrapper);
google.maps.event.addDomListener(this._mapsWrapper,'zoom_changed', function(event: any) {
google.maps.event.trigger(this._mapsWrapper, "zoom_changed");
console.log(this._mapsWrapper);
var zoom = this._mapsWrapper.getZoom();
console.log(zoom);
});
}
这是顺便说一句。 或者只是将... px添加到叠加层的顶部位置,这就是我想在google-map.ts中做什么有什么好的选择?
如果有人能帮助我,你会帮助我很多!!
答案 0 :(得分:2)
google.maps.OverlayView
支持函数getMap()
,如documentation所示。因此,从overlayView对象中获取缩放级别应该非常简单:
this.overlayView.getZoom = function () {
var my_map = this.overlayView.getMap();
if(my_map){ //sometimes, the map might not be set yet, it gets set only after you add the overlay to map
return my_map.getZoom();
}
return null;
}