На своем сайте я использую Google Maps API v3 для размещения маркеров домов на карте.
Информационные окна остаются открытыми, если вы явно не щелкнете значок закрытия. Это означает, что у вас может быть открыто 2+ информационных окна одновременно, если вы наведете курсор на маркер карты.
Вопрос : Как сделать так, чтобы открывалось только текущее активное информационное окно, а все остальные информационные окна закрывались? Значит, одновременно будет открыто не более 1 InfoWindow?
Ответы:
Для InfoWindows есть функция close () . Просто следите за последним открытым окном и вызывайте для него функцию закрытия при создании нового окна.
В этой демонстрации есть функции, которые вы ищете. Я нашел его в демонстрационной галерее Maps API V3 .
источник
альтернативное решение для этого с использованием множества информационных окон: сохранить предыдущее открытое информационное окно в переменной, а затем закрыть его при открытии нового окна
источник
Это «переместит» информационное окно к каждому нажатому маркеру, по сути, закрыв себя, а затем снова открываясь (и сдвигая, чтобы соответствовать области просмотра) в новом месте. Он изменяет свое содержимое перед открытием, чтобы дать желаемый эффект. Работает для n маркеров.
источник
Мое решение.
источник
По этой ссылке http://www.svennerberg.com/2009/09/google-maps-api-3-infowindows/ :
источник
источник
Есть более простой способ, кроме использования функции close (). если вы создаете переменную со свойством InfoWindow, она автоматически закрывается, когда вы открываете другую.
источник
источник
Как насчет -
Затем вы можете просто навести на него курсор, и он закроется.
источник
Я сохранил переменную вверху, чтобы отслеживать, какое информационное окно открыто в данный момент, см. Ниже.
источник
Вот что я использовал, если вы используете много маркеров в цикле for (здесь Django). Вы можете установить индекс для каждого маркера и устанавливать этот индекс каждый раз, когда вы открываете окно. Закрытие ранее сохраненного индекса:
источник
источник