Probleme beim Synchronisieren von zwei Prospekte auf verschiedenen Registerkarten.Synchronisieren Sie zwei Leaflet Maps auf verschiedenen Tabs in RMarkdown mit Shiny
Nach dem Lesen der vorherigen Einträge (Synchronizing two leaflet maps in R/Rmarkdown) funktioniert die von @TimSalabim bereitgestellte Lösung nicht, da sich die Karten auf verschiedenen Registerkarten befinden.
ist hier ein MWE RMarkdown Beispiel:
---
title: "QuestionforStackOverflow"
output:
flexdashboard::flex_dashboard:
runtime: shiny
---
```{r setup, include=FALSE}
library(flexdashboard)
library(shiny)
library(leaflet)
```
Tab One
======================================================================
```{r tab1}
output$map1 <-
renderLeaflet(
leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
setView(-93.65, 42.0285, zoom = 4)
)
leafletOutput("map1")
```
Tab Two
======================================================================
```{r tab2}
output$map2 <-
renderLeaflet(
leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
setView(-93.65, 42.0285, zoom = 4)
)
leafletOutput("map2")
```
Ich möchte einen Zweiweg ändern. Jede Ansicht ändert sich in map1 - ändert map2 ODER Änderungen an map2 ändern map1.
Ideal: Wenn Sie in St. Louis auf map1 scrollen, wird map2 die gleiche Zoomstufe auf St. Louis haben.
Momentan gibt es keine Interaktivität zwischen den beiden Karten. Gibt es eine Möglichkeit, sie zu synchronisieren?
Für die automatische Synchronisierung könnten Sie die @Jieter-Idee der Tab-Change-Erkennung verwenden. Aber so weit ich es versucht habe, ist es mit flexdashboard nicht möglich: Sie können dem Registerkartencontainer keine ID geben, und daher können Sie nicht jedes Mal, wenn eine andere Registerkarte ausgewählt wird, eine Eingabe ändern. Mit glänzend wäre dies viel einfacher. – RobinCura
Ordentlich arbeiten. Ist es möglich, ein Ereignis zu erstellen, wenn der Benutzer zwischen Tabs wechselt? Das könnte das Problem der Endlosschleife lösen. Nach einem schnellen Blick scheint es in js möglich zu sein, aber vielleicht nicht in R. –