一个问题是混合百分比和像素测量并不容易,因为不同的屏幕尺寸会表现不同。但是可以使用 API 功能让地图在任何尺寸的屏幕上按照您想要的方式运行。
将地图设为屏幕大小的 100%,因此标题会遮挡地图的一部分。抑制默认地图控件,使其不会出现部分遮挡。创建一个与标题相同大小的空自定义控件,并将其放置在地图的顶部。当重新添加地图控件时,自定义控件会将它们从通常的位置推出,以便它们在可见地图上看起来正确。
var posn=google.maps.ControlPosition; // shorten the reference
// Add empty custom control
var controlDiv = document.createElement('div');
controlDiv.style.width='100%';
controlDiv.style.height='41px';
map.controls[posn.TOP_LEFT].push(controlDiv);
map.controls[posn.TOP_RIGHT].push(controlDiv);
// Add map controls
map.setOptions({
mapTypeControlOptions:{position:posn.RIGHT_TOP},
mapTypeControl:true,
panControlOptions:{position:posn.LEFT_TOP},
panControl:true,
streetViewControlOptions:{position:posn.LEFT_TOP},
streetViewControl:true,
zoomControlOptions:{position:posn.LEFT_TOP},
zoomControl:true
})
http://jsfiddle.net/GTscW/4/
注意 1:因为地图实际上比看起来大 41px(在您的情况下),所以中心点将比可查看地图的中心高 20px。这可能不值得担心。如果是,那么处理一个明显的中心点是关于 SO 的另一个问题的主题。
注意 2:此方法无法获得固定页脚,因为 Google 徽标和条款链接始终位于地图底部,并且 [当前] 不会移动以避免控制。