我正在尝试隐藏Streetview API HUD中的切换全屏元素。
panorama = new google.maps.StreetViewPanorama(document.getElementById(data.id), {
position : new google.maps.LatLng(data.lat, data.lng),
pov: {
heading : Number(data.heading),
pitch : Number(data.pitch)
},
linksControl: false,
panControl: false,
addressControl: false,
enableCloseButton: false,
zoomControl: false,
fullScreenControl: false,
enableCloseButton: false,
addressControlOptions: {
position: google.maps.ControlPosition.BOTTOM_CENTER
}
});
这些选项是here。除fullScreenControl
我的代码可以直播here查看。 UI元素位于视口的右上角。
文档警告如下:
注意:此页面介绍了Google Maps JavaScript API 3.22版及更高版本中可用的控件。如果您想在一段时间内继续使用早期的控件集,可以设置google.maps.controlStyle =' azteca'在v3.22。阅读本文中有关控件更改的更多信息:v3.22地图控件中的新功能。
但是,我按如下方式链接到API Js文件:
<script src="//maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
3.exp在撰写本文时应该是3.22。
我在这里缺少什么?
答案 0 :(得分:59)
fullscreenControl: false
代替fullScreenControl: false
答案 1 :(得分:12)
以下内容不正确。它没有错误但它对控件没有影响。
fullScreenControl: false, -- this is not right
正确的代码是
fullscreenControl: false,
请参阅:https://developers.google.com/maps/documentation/javascript/reference
答案 2 :(得分:3)
另一个解决方案是使用css隐藏全屏元素:
.gm-style > div:nth-child(10){
display:none;
}
答案 3 :(得分:2)
我认为目前API存在一个小缺陷。我做了一些测试,但也无法使用fullScreenControlOptions字段删除全屏控件,如文档中所述。
即使将disableDefaultUI设置为true,也会显示全屏控制。
我知道这可能不是摆脱元素的更好方法,但你可以这样做:
var FULL_SCREEN_CONTROL_STYLE = {
width: '25px',
height: '25px',
top: '0px',
right: '0px',
position: 'absolute',
overflow: 'hidden'
};
var children = panorama.getContainer().getElementsByTagName('div');
for (var i = 0; i<children.length; i++) {
var current = children[i];
var match = true;
for (var k in FULL_SCREEN_CONTROL_STYLE) {
if (current.style[k] != FULL_SCREEN_CONTROL_STYLE[k]) {
match = false;
}
}
if (match) { // THIS IS OUR ELEMENT
current.parentElement.removeChild(current);
}
}
答案 4 :(得分:0)
Michal Szyndel说得对。屏幕中的s是小写的。我建议他的答案改为正确的答案。 我今天测试过fullscreenControl,但是fullScreenControl没有。
答案 5 :(得分:-2)
随着2016年1月18日最新版本的Googlemap v3.22 v3.23发布,以下版本将完成以下工作:
.gm-fullscreen-control {
display: none;
}