javascript - street - zoom google maps
API de StreetView: ocultar el control de FullScreen (6)
Estoy tratando de ocultar el elemento de pantalla completa alternar en el 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
}
});
Estas opciones están especificadas aquí . Todas las opciones funcionan, excepto para el fullScreenControl
Mi código se puede ver en vivo aquí . El elemento de la interfaz de usuario se encuentra en la esquina superior derecha de la ventana gráfica.
La documentación advierte de la siguiente manera:
Nota: Esta página describe los controles disponibles en la versión 3.22 y posteriores de la API de JavaScript de Google Maps. Si desea continuar utilizando el conjunto de controles anterior por un tiempo, puede establecer google.maps.controlStyle = ''azteca'' en v3.22. Lea más sobre los cambios a los controles en este artículo: Novedades en los controles de mapa v3.22.
Sin embargo, estoy vinculando al archivo API Js de la siguiente manera:
<script src="//maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
Y 3.exp debería ser 3.22 al momento de escribir.
¿Que me estoy perdiendo aqui?
fullscreenControl: false
lugar de fullScreenControl: false
Otra solución es usar css para ocultar el elemento de pantalla completa:
.gm-style > div:nth-child(10){
display:none;
}
Creo que hay un pequeño error en la API en este momento. Realicé algunas pruebas y tampoco pude eliminar el control de pantalla completa con el campo fullScreenControlOptions, como se especifica en la documentación.
El control de pantalla completa se muestra incluso si configura el disableDefaultUI en verdadero.
Sé que esta puede no ser la mejor manera de deshacerse del elemento, pero puedes hacer algo como:
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);
}
}
Con el lanzamiento más reciente de Googlemap v3.22, v3.23 el 18 de enero de 2016, lo siguiente hará el trabajo:
.gm-fullscreen-control {
display: none;
}
Michal Szyndel lo tiene correcto. La pantalla s en minúsculas. Sugiero que su respuesta cambie a la respuesta correcta. Probé hoy la pantalla completa El control funciona, pero FullScreenControl no funciona.
Lo siguiente es incorrecto No falla, pero no tiene ningún efecto sobre el control.
fullScreenControl: false, -- this is not right
El código correcto es
fullscreenControl: false,
Ver: https://developers.google.com/maps/documentation/javascript/reference