0

我有一个谷歌地图,每当我点击地图时都会显示标记。这张地图位于我闪亮的仪表板中的一个选项卡上。我还有一个表格,显示标记的列表信息。

到目前为止,一切都很好。

当我切换到任何不同的选项卡然后我回到谷歌地图选项卡时,就会出现问题。地图没有反应,标记没有更新,尽管表格上有信息。所以,问题出在地图本身上。

有没有办法保持,我不知道,即使我在不​​同的选项卡中也能激活地图,或者当我回到选项卡时地图刷新?

这是我的侧边栏

        sidebar<-dashboardSidebar(
        fluidRow(column(width = 12,
        fluidRow(column(width = 12,
          sidebarMenu(
            id = "sidebar",
            menuItem("Inicio", tabName="BVND"),
            menuItem("Localizador", tabName="LOC"),
            menuItem("Homologación", tabName="HOM")

          )))
        )

在“Localizador”内部是我调用地图的地方:google_mapOutput(outputId = "map",height = 600)。

在输出中我有

         google_map(key = map_key
                            ,location = c(avia[2], avia[1],"red")
                            ,data=distancia2
                            ,zoom = 18
                            ,height = 1500

             ) %>%
               add_markers(lat="latitud"
                           ,lon="longitud"
                                    ,title ="title"
                           ,info_window="info_window"
                           ,close_info_window=TRUE
                           ,marker_icon = "icon" 
               )     

我在我的输出或服务器本身中尝试了 updatetabitems,google_map_update,作为反应/观察

4

1 回答 1

0

我通过“分割”观察解决了这个问题。操作是每当我点击它时地图就会更新,如果我转到应用程序的不同部分,它就不会这样做。 地图和部分

我通过使用包含 google_map_update 的观察重写了“点击地图”操作。

google_map_update( "map"
                   ,session = shiny::getDefaultReactiveDomain()
) %>%
  clear_markers(    ) %>%
  clear_polygons()

google_map_update( "map"
                   ,session = shiny::getDefaultReactiveDomain()
) %>%
  add_markers(data = data
              ,lat="latitud"
              ,lon="longitud"
              ,title ="title"
              ,info_window="info_window"
              ,close_info_window=TRUE
              ,marker_icon = "icon" 
  )

你必须要小心。出于某种原因,在另一个操作中,add_markers 会导致观察事件内部出现问题。因此,您可能希望在地图更新中避免或测试 add_markers。

(对不起,我没有写问题的例子,这是一个大项目,没有时间制作它的精简版。我希望至少它对另一个有相同或类似问题的人有所帮助)

于 2019-08-30T16:00:44.840 回答