От новичка до гуру: Курсы программирования на CyberDuff

leaflet renderLeaflet не работает в блестящем

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

m <- leaflet() %>%
addTiles() %>%  # Add default OpenStreetMap map tiles
addMarkers(lng=df_final$order_long, lat=df_final$order_lat)
m

Он отлично работает в консоли R. Но это не работает, когда я использую его в блестящем. Это мой фрагмент кода ui.r

tabPanel("Order Locations", leafletOutput("map", width = "80%", height =  
"80%"))

а это server.r фрагмент кода

 output$map<- renderLeaflet({

 dataset<-dataUpload()
 leaflet() %>%
 addTiles() %>%  # Add default OpenStreetMap map tiles
 addMarkers(lng=dataset$order_long,lat=dataset$order_lat)
 })

Он ничего не отображает. Где я ошибаюсь. пожалуйста помоги

28.12.2015

  • Не так много, чтобы продолжать. Как насчет того, чтобы хотя бы опубликовать пример, который отлично работает в консоли R? 28.12.2015
  • @Mike Wise Я уже разместил код, который отлично работает в консоли R. 28.12.2015
  • О, я вижу, что это работает. Хорошо 28.12.2015
  • Почему ты звонишь dataUpload()? Это реактивный объект? 28.12.2015
  • воспроизводимый пример, даже если это просто поддельные данные, будет быть полезным. 28.12.2015

Ответы:


1

Это работает, я сделал это как можно ближе к вашему. По-видимому, ему не нравятся процентные высоты:

library(shiny)
library(leaflet)

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

ui <- fluidPage(
  actionButton("recalc", "New points"),
  mainPanel(
    tabsetPanel(
      tabPanel("Order Locations", leafletOutput("map",width="80%",height="400px")),
      tabPanel("Markers", verbatimTextOutput("markers"))
    )
  )
)

if (!file.exists("df_final.csv")){
  nmark <- 50
  hv <- 80
  df_final <- data.frame(order_long=runif(nmark,-hv,hv),
                         order_lat=runif(nmark,-hv,hv))
  write.csv(df_final,"df_final.csv",row.names=F)
}

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

  dataUpload <- reactiveFileReader(1000, session, 'df_final.csv', read.csv)

  output$map <- renderLeaflet({
    leaflet() %>%
      addTiles() %>%
      addMarkers(lng=dataUpload()$order_long,lat=dataUpload()$order_lat)
  })
  output$markers <- renderPrint({print(dataUpload())})
}

shinyApp(ui, server)

Урожайность:

введите описание изображения здесь

28.12.2015
  • Я мог бы сделать его более похожим на ваш пример, но он уже довольно близок. Вы хотите, чтобы я, или этого достаточно? 28.12.2015
  • Если вы можете, это будет большим подспорьем. 28.12.2015
  • Есть шанс, что ты примешь это? Сегодня пытаюсь дойти до 3к :) 28.12.2015
  • Забавно... но очень верно... листовка не статистика... а веб-разработчик. 13.08.2016

  • 2

    Это сработало. Проблема была с файлом ui.r.

    Это измененный код

    tabPanel("Order Locations", leafletOutput("map"))
    

    избавились от параметров ширины и высоты и работали с настройками по умолчанию.

    28.12.2015

    3

    Немного поздно для вечеринки, но вы можете добавить свой собственный CSS для управления эстетикой листовки, обычно в папке www, например. www/styles.css, который имеет дополнительное преимущество, реагируя на изменения размера окна.

      /* styles.css */
      div.outer {
      position: fixed;
      top: 45px; /* set to fit nicely with Shinydashboard's dashboardHeader(), adjust according to your own preferences. */
      left: 0;
      right: 0;
      bottom: 0;
      overflow-y: auto;
      padding: 0;
    }
    

    и добавьте этот класс в div() в свой ui:

    ui <- fluidPage(
     actionButton("recalc", "New points"),
     mainPanel(
      tabsetPanel(
       tabPanel("Order Locations", 
                div(
                 class = "outer",
                 tags$head(
                  includeCSS("www/styles.css")
                 ),
                 leafletOutput("map",width="100%",height="100%")
                 )
                ),
       tabPanel("Markers", verbatimTextOutput("markers"))
      )
     )
    )
    

    Результат: введите здесь описание изображения

    28.03.2018
    Новые материалы

    5 простых концепций Python, ставших сложными
    #заранее извините 1) Переменные x = 4 y = 5 Переменная в Python — это символическое представление объекта. После присвоения некоторого объекта переменной Python мы приобретаем..

    «Освоение вероятности: изучение совместной, предельной, условной вероятности и теоремы Байеса —…
    Виды вероятности: Совместная вероятность Предельная вероятность Условная вероятность Диаграмма Венна в вероятностях: В “Set Theory” мы создаем диаграмму Венна...

    Основы Spring: Bean-компоненты, контейнер и внедрение зависимостей
    Как лего может помочь нашему пониманию Когда мы начинаем использовать Spring, нам бросают много терминов, и может быть трудно понять, что они все означают. Итак, мы разберем основы и будем..

    Отслеживание состояния с течением времени с дифференцированием снимков
    Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

    Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
    Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..

    Игра в прятки с данными
    Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..

    «Раскрытие математических рассуждений с помощью Microsoft MathPrompter и моделей больших языков»
    TL;DR: MathPrompter от Microsoft показывает, как использовать математические рассуждения с большими языковыми моделями; 4-этапный процесс для улучшения доверия и рассуждений в математических..