Удалите столбцы ширины и ширины в таблице при использовании перекрестных помех для связи карты листовки и таблицы данных. - PullRequest
0 голосов
/ 05 октября 2018

Я бы хотел связать карту листовки и таблицу данных, созданную библиотекой DT, используя перекрестные помехи вместо блестящих.Поэтому, когда я нажимаю на любую запись на стороне таблицы, круг на карте будет подсвечен.Я знаю, что lat и long необходимы для создания листовки, но есть ли способ, чтобы на стороне таблицы были только столбцы Name и Area (не показывать lat и long)?

Вот мой пример кода:

library(leaflet)
library(DT)
library(crosstalk)

df <- read.csv(textConnection(
  "Name,Lat,Long, area
  Samurai Noodle,47.597131,-122.327298,40
  Kukai Ramen,47.6154,-122.327157,30
  Tsukushinbo,47.59987,-122.326726,10"
))

df$Name <- as.character(df$Name)

sdf <- SharedData$new(df, ~df$Name)


pal <- colorNumeric("RdYlBu", df$area)

labels <- paste(sep = "<br/>",
                paste('Name: ', df$Name), 
                paste('Area: ', df$area))

d1 <- leaflet(sdf) %>% 
  addTiles() %>% 
  addCircleMarkers(~Long, 
                   ~Lat, 
                   radius = df$area,
                   color = ~pal(df$area),
                   fillColor = ~pal(df$area),
                   popup = labels,
                   fillOpacity = 1) %>% 
  addLegend("topright",
            title = "AREA",
            pal = pal,
            values = df$area,
            opacity = 1) 

d2 <- datatable(sdf, width = "100%") 

bscols(d1, d2)

1 Ответ

0 голосов
/ 11 октября 2018

Я понял этот вопрос сегодня.

Мне нужно создать df_2 (удалить log и lat) и создать еще один объект SharedData с помощью df_2 и добавить группу.

sdf_2 <- SharedData$new(df_2, ~df$Name, group = "data_subset")

Используйте sdf и sdf_2 для создания листовкикарта и данные отдельно:

d1 <- leaflet(sdf) %>% addTiles() %>% addCircleMarkers(~Long, 
               ~Lat, 
               radius = df$area,
               color = ~pal(df$area),
               fillColor = ~pal(df$area),
               popup = labels,
               fillOpacity = 1) %>% addLegend("topright",
        title = "AREA",
        pal = pal,
        values = df$area,
        opacity = 1) 

d2 <- datatable(sdf_2, width = "100%")
bscols(d1, d2)
...