Как я могу модулировать всплывающий текст листовки карты в R R приложения? - PullRequest
0 голосов
/ 04 апреля 2019

Я работаю над блестящим приложением R, которое включает карту листовки.Однако это приложение будет использоваться в нескольких проектах, которые имеют свои собственные наборы исходных данных.

В случае проблем с пользовательским интерфейсом я модульно несколько компонентов, что позволяет легко интегрировать приложение с наборами данных различных проектов.

Несмотря на то, что это было успешно, единственным оставшимся препятствием является модуляция всплывающего текста карты листовки.

Основной код, который создает карту, одинаков для всех проектов, но всплывающие окна разные.Таким образом, я хотел бы создать модули вне основного скрипта R глянцевый, чтобы позволить легко настроить то, что отображается во всплывающих окнах.

Итак, учитывая это универсальное приложение Shiny, которое просто создает карту, вы увидите, что есть всплывающее окно, которое просто отображает имя.То, что я хотел бы сделать, это иметь некоторый код вне этого скрипта, который управляет тем, что отображается в этом всплывающем окне.Так, например, хотя в этом всплывающем окне нет другого текста, кроме имени, я хотел бы иметь возможность разрешить разработчикам настраивать это всплывающее окно, добавляя дополнительный текст или изменяя языки или тому подобное.

Поймите, что я ищу что-то, что изменяет этот ВНЕ этого сценария, потому что мы используем один и тот же основной код app.R для всех проектов.

Спасибо за вашу помощь.

library(shiny)
library(leaflet)
library(randomNames)

r_colors <- rgb(t(col2rgb(colors()) / 255))
names(r_colors) <- colors()

library(sp)

data <- data.frame(cbind(rnorm(40) * 2 + 13, rnorm(40) + 48, 
randomNames(40)))
names(data) <- c("lon", "lat",  "name")
data$lon <- as.numeric(as.character(data$lon))
data$lat <- as.numeric(as.character(data$lat))
coordinates(data)<-~lon+lat


ui <- fluidPage(
  leafletOutput("mymap"),
  p()
 )

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

  output$mymap <- renderLeaflet({
    leaflet() %>%
      addProviderTiles(providers$Stamen.TonerLite,
                   options = providerTileOptions(noWrap = TRUE)
     ) %>%
      addMarkers(data = data,
                 popup = data$name)
  })
}

shinyApp(ui, server)
...