Похожие темы
Закрытие информационных окон в картах Google нажатием карты?
Google Maps API закрывает информационное окно при нажатии в другом месте
Карты Google: автоматически закрывать открытые информационные окна?
Задача
Я могу настроить таргетинг на все маркеры с помощью метода close и перебрать их с помощью цикла for, чтобы вручную закрыть соответствующие информационные окна, используя:
for (var i = 0; i < mapgoogleMarkersdefaultLayerId.length; i++) {
mapgoogleMarkersdefaultLayerId[i].infowindow.close();
}
Однако я планирую закрыть все информационные окна, когда пользователь щелкнет где-нибудь еще на карте. Я попытался использовать addEventListener для объекта карты с помощью:
map.addEventListener("click", function(event) {
for (var i = 0; i < mapgoogleMarkersdefaultLayerId.length; i++) {
mapgoogleMarkersdefaultLayerId[i].infowindow.close();
}
});
Однако, использование слушателя на объекте карты также захватывает маркер, таким образом немедленно закрывая информационное окно, как только пользователь щелкает маркер, в результате ничего не происходит. Я пытался настроить таргетинг на различные «базовые слои» карты Google, используя такие вещи, как ссылки на mapmap.__gm.panes.mapPane
, чтобы нацелить маппаны под маркером без результатов.
Подробнее
Я включаю этот сценарий как другой файл в папку с блестящими приложениями и связываю его с моим приложением через includeScript ("closeInfoWindows.js") в пользовательском интерфейсе.
MCVE
library(shiny)
library(googleway)
ui <- fluidPage(
google_mapOutput(outputId = "map", height = "800px")
)
server <- function(input, output) {
tram_stops$info <- "Make me dissappear!"
set_key(api_key)
output$map <- renderGoogle_map({
google_map(data = tram_stops) %>%
add_markers(lat = "stop_lat", lon = "stop_lon", info_window = "info")
})
}
shinyApp(ui, server)