Почему кнопка «Сброс на начальную карту состоянию» было удалено в Google Maps API V3?

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

Вопрос

Интересно, знаете ли мы, почему кнопка / функциональность «Сброс к начальной карте», кажется, было удалено в Google Maps API V3?

В API V2 кнопка руки в середине кнопок со стрелками было своего рода кнопкой «Home» или «RESET», которая вернула карту на первоначальную позицию и уровень масштабирования.

Не конец света, конечно, просто любопытный ...

Это было полезно?

Решение

Думаю, потому что разработчик довольно легко сделать самим собой, и это была не очень широко используемая особенность, поэтому они, вероятно, решили не весить всех с кодом, что только несколько использовали.

То, что вы можете сделать, это добавить пользовательский элемент управления на странице, и когда пользователь нажимает на него, затем переместите карту обратно в масштаб и центр, который вы хотите. Один из способов собрать, это может слушать событие MAP 'IDLE', а затем установить тайм-аут, чтобы сохранить только позицию карты после того, как она была нетронута в течение X секунд. Конечно, это не будет выглядеть как версия V2 :)

Другие советы

Вот небольшой взлом, чтобы сделать кнопку сброса работы на V3. Я использую jQuery здесь.

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

То, что я сделал, я заметил, что имя файла сброса изображения - «mapcontrols3d6.png». Поэтому я установил интервал проверки, если это изображение было загружено (т. Е. Доступно) еще. Если да, я прилагаю к ней функцию.

Как это хак, у него есть какой-то проблема. Основным является мы должны полагаться на имя файла сброса изображения. Так что палец пересекает, что Google не обновит это.

У кого-нибудь есть лучший способ?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top