Почему кнопка «Сброс на начальную карту состоянию» было удалено в Google Maps API V3?
-
25-09-2019 - |
Вопрос
Интересно, знаете ли мы, почему кнопка / функциональность «Сброс к начальной карте», кажется, было удалено в 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 не обновит это.
У кого-нибудь есть лучший способ?