Скрытие и отображение маркеров при событии

#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 .