StreetView API:隐藏全屏控制

时间:2015-09-18 14:05:17

标签: javascript google-maps google-maps-api-3 google-street-view

我正在尝试隐藏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。

我在这里缺少什么?

6 个答案:

答案 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;
}