#javascript #html #google-maps
#javascript #HTML #google-карты
Вопрос:
google.maps.Marker.prototype.hide = function()
{
if (this.div_)
{
this.div_.style.visibility = "hidden";
}
};
google.maps.Marker.prototype.show = function()
{
if (this.div_) {
this.div_.style.visibility = "visible";
}
};
Это не вызывает никакой ошибки. Но это не работает, пока я его использую:
marker = new google.maps.Marker({
map: map,
draggable: false,
position: latlng,
title: 'some title'
});
И теперь, если кто-нибудь изменит масштаб, я хочу вызвать скрытие маркера:
google.maps.event.addListener(map, 'zoom_changed', function() {
marker.hide();
});
Но это не работает. Может ли кто-нибудь помочь мне решить проблему?
Ответ №1:
чтобы скрыть маркер, используйте marker.setMap(null);
для повторного отображения используйте marker.setMap(mymap);
Редактировать:
забыл о setvisible. вот рабочий пример:http://jsfiddle.net/herostwist/v9nmQ/1 /
Комментарии:
1. Я попробовал решение с помощью метода setVisible. Возможно, я что-то делал неправильно, но это просто не работает. Не могли бы вы предоставить какой-нибудь код, который наверняка сработает? Спасибо
2. Это не сработает, если маркера нет на карте (например, если пользователь прокрутил страницу).
Ответ №2:
API уже содержит такой метод: setVisible
. Либо передать true
, либо false
.