我设法解决了这个问题。
向地图添加填充的最佳方法是使用不可见控件。它创建所有其他映射函数在调用它们时遵循的填充,无需任何额外的编码。以下是为其他有需要的人提供的方法。
首先..我创建一个函数来简化 div 的创建。
function createDummyDiv(w, h){
var out = $(document.createElement('div')).addClass('dummy-div').css('width', w).css('height', h);
return out[0];
}
然后我根据需要添加控件。在本例中,我在 LEFT_CENTER 位置有正常的缩放控件,因此我必须为左侧创建 2 个。这会在左侧、右侧和底部创建 10% 的填充,并在我自己的控制栏下方的顶部创建 55px 的填充。
map.controls[google.maps.ControlPosition.TOP_CENTER].push(createDummyDiv('100%', '55px'));
map.controls[google.maps.ControlPosition.LEFT_TOP].push(createDummyDiv('10%', '45%'));
map.controls[google.maps.ControlPosition.LEFT_BOTTOM].push(createDummyDiv('10%', '45%'));
map.controls[google.maps.ControlPosition.RIGHT_CENTER].push(createDummyDiv('10%', '100%'));
map.controls[google.maps.ControlPosition.BOTTOM_CENTER].push(createDummyDiv('100%', '10%'));
我的问题的最终解决方法是用 css 将它们放在地图层后面。
.dummy-div{ z-index: -100 !important; }
我希望这对其他人有帮助