Pregunta

Me pregunto si sabemos por qué el "restablecimiento a estado inicial del mapa" botón / funcionalidad parece haber sufrido una caída en Google Maps API v3?

En la API v2, el botón de la mano en medio de los botones de flecha era una especie de botón de "reinicio" "casa" o que resintonizar el mapa a su posición inicial y nivel de zoom.

No es el fin del mundo, por supuesto, meramente curiosos ...

¿Fue útil?

Solución

Creo porque es bastante fácil para los desarrolladores para hacer ellos mismos y que no era una característica muy ampliamente utilizado por lo que probablemente decidieron no peso a todo el mundo con el código que sólo unos pocos estaban usando.

Lo que puede hacer es añadir un control personalizado en la página y cuando el usuario hace clic sobre él y luego se mueven hacia atrás el mapa para el zoom y el centro que desee. Una manera de recoger que podría ser para escuchar el mapa de eventos 'inactivo' y luego establecer un tiempo de espera a la posición única tienda mapa después de que haya sido tocado durante X segundos. Por supuesto, esto no se parecerá a la versión v2:)

Otros consejos

Aquí hay un pequeño truco para hacer los trabajos botón de reinicio en la versión 3. Yo uso jQuery aquí.

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

Lo que hice fue, noto que el nombre del archivo de imagen de reposición es 'mapcontrols3d6.png'. Así que me puse un intervalo para comprobar si esa imagen se ha cargado (es decir. Disponible) todavía. Si es así, hay que adjuntar una función en ella.

Como se trata de un truco, que tiene algún problema. La principal es que tenemos que confiar en el nombre de archivo de imagen de reposición. Así cruz dedo que Google no actualizará esto.

¿Tienen alguna manera mejor?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top