Вернуть список во всплывающее окно addCircles (), блестящее приложение Leaflet? - PullRequest
1 голос
/ 06 мая 2020

Есть ли способ создать всплывающее окно для блестящего приложения leaflet (), которое возвращает список? Идея в том, что это отношение «один ко многим», поэтому нам потребовались две таблицы (первая для создания сайтов, а вторая для создания всплывающей информации).


#Table_1 - Sites
SiteID  Lat            Long 
A       32.77207993    -109.0014077
B       33.09301968    -104.3500967
C       33.08755703    -104.3630058


#Table_2 - Site Info
SiteID  Owner    Type 
A       Frank    Farm
A       Howard   Home
B       Bird     Tree
C       Fish     Pool

# ################################################################################################
# ################################################################################################
#Libraries
library(shiny)
library(shinydashboard)
library(dplyr)
library(leaflet)


################################################################################################
################################################################################################
#UI
ui <- dashboardPage(
    dashboardHeader(), 
    dashboardSidebar(), 
    dashboardBody( leafletOutput(outputId = 'mapA'))
)

################################################################################################
################################################################################################
server <- function(input, output) {

    ##The Map
    output$mapA <- renderLeaflet({
        leaflet(data = Table_1) %>%
            addCircles(
                lat = ~Lat,
                lon = ~Long,
                popup = paste(
                 "SiteID: ", Table_1$SiteID,
                 "Owner: ", Table_2$Owner,
                 "Type: ", Table_2$Type)
             )
        )
     )}
}

################################################################################################
################################################################################################
shinyApp(ui = ui, server = server)

Всплывающий вывод SiteID 'A' быть чем-то вроде ...

SiteID: A
Owner: Frank, Howard
Type: Farm, Home

1 Ответ

0 голосов
/ 06 мая 2020

Сначала вы можете агрегировать свои данные:

Table_2 %<>% 
    group_by(SiteID) %>% 
    summarise_all(paste, collapse = ",")

Затем используйте теги HTML для форматирования всплывающего окна:

popup = paste(
    "<B>SiteID</B>: ", Table_2$SiteID, "<BR>",
    "<B>Owner</B>: ", Table_2$Owner, "<BR>",
    "<B>Type</B>: ", Table_2$Type)

NicePopup

...