0

Rのリーフレットマップに個別のaddPolylinesをプロットするために、SharedDataオブジェクトをどのようにループしますか?

個別の「ルート」を持つデータセットがあり、forループ内でそれらを 1 つずつ追加して、それらが互いに接続されないようにします。Crosstalk次に、パッケージによって追加されたスライダーにすべて反応するようにしたいのですが、SharedData$newオブジェクトのループに問題があります。

私が試してみました:

#Load libraries
library(dplyr); library(leaflet)


# An example of my data:
data <- data.frame(lon = c(12.42111, 12.42111, 12.41170, 12.42111, 12.39508, 12.39970, 12.42111, 12.39508),
                   lat = c(55.73615, 55.73615, 55.74155, 55.73615, 55.73074, 55.73871, 55.73615, 55.73074),
                   date = c("2020-03-28 12:46:29", "2020-03-28 13:20:42", "2020-03-28 13:50:47", "2020-03-28 18:33:44",
                            "2020-03-28 19:24:11", "2020-03-28 20:31:29", "2020-03-28 21:33:29", "2020-03-28 21:42:05"),
                   group = c(1, 1, 1, 1, 2, 2, 2, 2))

data$date <- as.POSIXct(data$date, format="%Y-%m-%d %H:%M:%S")

# Create leaflet map
temp_leaflet <- leaflet(data) %>% addTiles()


# for loop way of adding grouped routes
for (i in unique(factor(data$group))) {
  temp_leaflet <- temp_leaflet %>% 
    addPolylines(data = data[data$group == i, ],
                 lng = ~lon, lat = ~lat, group = i)
}


temp_leaflet <- temp_leaflet %>%
  hideGroup(unique(factor(data$group))) %>% 
  
  addLayersControl(
    overlayGroups = unique(factor(data$group)),
    options = layersControlOptions(collapsed = F))


これが私のやり方ですがdate、パッケージを使用してスライダー (列) で2 つのルートを時間で変更できるようにしたい場合、オブジェクトCrosstalkをループしてグループ化する方法がわかりません。SharedData$newデフォルトで非表示になるようにします。

この目的を達成する方法について何か考えはありますか?

4

0 に答える 0