Почему кнопка "сброс к исходному состоянию карты" была удалена в Google Maps API v3? - PullRequest
1 голос
/ 04 августа 2010

Интересно, знаем ли мы, почему кнопка / функция "сброс к исходному состоянию карты", кажется, была отброшена в Google Maps API v3?

В API v2 кнопка руки в середине стрелкиКнопки были своего рода кнопкой «домой» или «сбросить», которая вернула карту к ее начальному положению и уровню масштабирования.

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

Ответы [ 2 ]

3 голосов
/ 05 августа 2010

Я думаю, потому что разработчикам довольно легко сделать это самим, и эта функция не очень широко использовалась, поэтому они, вероятно, решили не загружать всех кодом, который использовали лишь немногие.Что вы можете сделать, это добавить пользовательский элемент управления на странице, и когда пользователь щелкнет по нему, затем переместите карту обратно к нужному масштабу и центру.Одним из способов сбора этого может быть прослушивание события «простоя» карты, а затем установка тайм-аута для сохранения положения карты только после того, как она не была затронута в течение X секунд.Конечно, это не будет похоже на версию v2:)

1 голос
/ 18 августа 2010

Вот небольшой взлом, чтобы кнопка сброса работала на 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 не будет обновлять это.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...