web-dev-qa-db-fra.com

API StreetView: masquage du contrôle plein écran

J'essaie de masquer l'élément bascule plein écran dans le HUD de l'API Streetview.

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

Ces options sont spécifiées ici . Toutes les options fonctionnent sauf pour le fullScreenControl

Mon code peut être consulté en direct ici . L'élément d'interface utilisateur se trouve dans le coin supérieur droit de la fenêtre.

La documentation met en garde comme suit:

Remarque: Cette page décrit les contrôles disponibles dans les versions 3.22 et ultérieures de l'API JavaScript de Google Maps. Si vous souhaitez continuer à utiliser le jeu de contrôles précédent pendant un certain temps, vous pouvez définir google.maps.controlStyle = 'azteca' dans la version 3.22. En savoir plus sur les modifications apportées aux contrôles dans cet article: Quoi de neuf dans les contrôles de carte v3.22.

Cependant, je crée un lien vers le fichier API Js comme suit:

<script src="//maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>

Et 3.exp devrait être 3.22 au moment de la rédaction.

Qu'est-ce que j'oublie ici?

20
matthiasdv

Une autre solution consiste à utiliser css pour masquer l'élément plein écran:

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

fullscreenControl: false au lieu de fullScreenControl: false

61
papy98

Ce qui suit est incorrect. Il ne fait pas d'erreur mais n'a aucun effet sur le contrôle.

fullScreenControl: false,   -- this is not right

Le bon code est

fullscreenControl: false,

Voir: https://developers.google.com/maps/documentation/javascript/reference

15
XAos SPB

Je crois qu'il y a une faille mineure dans l'API en ce moment. J'ai fait quelques tests et j'ai également été incapable de supprimer le contrôle plein écran avec le champ fullScreenControlOptions, comme spécifié dans la documentation.

Le contrôle plein écran s'affiche même si vous définissez disableDefaultUI sur true.

Je sais que ce n'est peut-être pas la meilleure façon de se débarrasser de l'élément, mais vous pouvez faire quelque chose comme:

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

Michal Szyndel a raison. Le s dans l'écran est en minuscules. Je suggère que sa réponse soit remplacée par la bonne réponse. J'ai testé aujourd'hui fullscreenControl fonctionne mais fullScreenControl ne fonctionne pas.

0
Nic Howard