自动平移地图,以便infowindow完全可见

时间:2015-10-30 10:27:02

标签: html5 google-maps-api-3 infowindow infobubble openinfowindowhtml

当用户从谷歌地图触发点击事件时,我设置标记放置屏幕的中心。但问题是信息窗口内容在视口内不完全可见,如下图所示。如何按代码自动平移地图,以便信息窗口在视口内完全可见。我禁止在信息窗口的内容中滚动。

Half content is not showing within view port

1 个答案:

答案 0 :(得分:0)

我在StackOverFlow中找到了解决方案。顺便感谢Stackoverflow团队。

google.maps.Map.prototype.panToWithOffset = function(latlng, offsetX, offsetY) {
    var map = this;
    var ov = new google.maps.OverlayView();
    ov.onAdd = function() {
        var proj = this.getProjection();
        var aPoint = proj.fromLatLngToContainerPixel(latlng);
        aPoint.x = aPoint.x+offsetX;
        aPoint.y = aPoint.y+offsetY;
        map.panTo(proj.fromContainerPixelToLatLng(aPoint));
    }; 
    ov.draw = function() {}; 
    ov.setMap(this); 
};

并在单击标记时调用此函数。