Подтвердить что ты не робот

API StreetView: скрытие управления FullScreen

Я пытаюсь скрыть элемент fullscreen toggle в HUD Streetview API.

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
        }
    });

Эти параметры указаны здесь. Все параметры работают, за исключением fullScreenControl

Мой код можно посмотреть в реальном времени здесь. Элемент интерфейса находится в верхнем правом углу окна просмотра.

Документация предупреждает следующее:

Примечание. На этой странице описаны элементы управления, доступные в версиях 3.22 и более поздних версиях API JavaScript для Google Maps. Если вы хотите продолжить использование более раннего набора элементов управления некоторое время, вы можете установить 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 на момент написания.

Что мне здесь не хватает?

4b9b3361

Ответ 1

Другим решением является использование css для скрытия полноэкранного элемента:

.gm-style > div:nth-child(10){
 display:none;
}

Ответ 2

fullscreenControl: false вместо fullscreenControl: false

Ответ 4

Я считаю, что в настоящий момент в 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);
	}
	
}

Ответ 5

Михал Шындель имеет это правильно. S на экране - в нижнем регистре. Я предлагаю, чтобы его ответ был изменен на правильный ответ. Я тестировал сегодня fullscreenControl, но fullScreenControl этого не делает.

Ответ 6

С новейшей версией Googlemap v3.22, v3.23 от 18 января 2016 года, следующая работа выполнит следующее:

.gm-fullscreen-control {
  display: none;
}