Pourquoi « remettre à l'état initial de carte » bouton est tombé dans l'API Google Maps v3?

StackOverflow https://stackoverflow.com/questions/3404033

Question

Je me demande si nous savons pourquoi le bouton « retour à l'état initial de la carte » / fonctionnalité semble avoir été abandonné dans l'API Google Maps v3?

Dans l'API v2, le bouton de la main au milieu des boutons fléchés était une sorte de bouton « Home » ou « reset » qui retuned la carte à son niveau de position et le zoom initial.

Pas la fin du monde bien sûr, simplement curieux ...

Était-ce utile?

La solution

Je pense que parce qu'il est assez facile pour le développeur de se faire et il n'a pas été une caractéristique très largement utilisé donc ils ont probablement décidé de ne pas pondérer tout le monde vers le bas avec le code que seuls quelques utilisaient.

Ce que vous pouvez faire est d'ajouter un contrôle personnalisé sur la page et lorsque l'utilisateur clique dessus puis déplacez la carte sur le zoom et le centre que vous voulez. Une façon de recueillir que pourrait être écouter la carte événement « ralenti », puis définir un délai pour stocker seulement la position de la carte après avoir été touché pendant X secondes. Bien sûr, cela ne ressemblera pas à la version v2:)

Autres conseils

Voici un petit hack pour faire les travaux de bouton de réinitialisation v3. J'utilise jQuery ici.

var attachEventToResetButton;

// Attach event to the reset button
var attachResetEvent = function(){
    var $resetImg = $('img[src*=mapcontrols3d6.png]');

    // We have to check if the image is available yet.
    // The reason is although the map has been loaded, the navigation might
    // take some time to load and we don't know when it will be fully loaded.
    // There doesn't seem to have an event for "Navigation loaded" in the API
    // So here is a way to work around
    if ($resetImg.length > 0)
    {
        $resetImg.css('cursor', 'pointer').attr('title', 'Return to center').click(function(){
            alert('Clicked on reset button');

            // Put your code to reset the map here. For example:
            //map.setMapTypeId(MAP_TYPE_ID);
            //map.setCenter(new google.maps.LatLng(LAT, LNG));
            //map.setZoom(ZOOM_LEVEL);
        });

        window.clearInterval(attachEventToResetButton);
    }
}

// Periodically checking to attach event to the reset button
attachEventToResetButton = window.setInterval(attachResetEvent, 500);

Ce que je ne l'étais, je remarque que le nom du fichier d'image de réinitialisation est « mapcontrols3d6.png ». Je me suis donc un intervalle pour vérifier si cette image a été chargée (ie. Disponibles) encore. Si oui, j'attache une fonction en elle.

Comme c'est un hack, il a une question. Le principal est que nous devons compter sur le nom du fichier image de réinitialisation. croix Alors doigt que Google ne sera pas mise à jour cela.

Quelqu'un at-il une meilleure façon?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top