将R制作的闪亮/传单地图发布到网站

将R制作的闪亮/传单地图发布到网站,r,shiny,leaflet,R,Shiny,Leaflet,我在帮一个朋友研究CT的啤酒厂数量。在这个社区的帮助下,我能够在传单中绘制啤酒厂的地图,并且能够使用shiny添加滑块。现在我想把地图给我的朋友,这样他就可以把地图添加到他发布研究成果的网站上。我对这方面还不熟悉,不知道是否有人对我有什么想法。以下是我用来制作地图的代码(感谢Ben): library(shiny) library(leaflet) ui <- bootstrapPage( tags$style(type = "text/css", "html, body {widt

我在帮一个朋友研究CT的啤酒厂数量。在这个社区的帮助下,我能够在传单中绘制啤酒厂的地图,并且能够使用shiny添加滑块。现在我想把地图给我的朋友,这样他就可以把地图添加到他发布研究成果的网站上。我对这方面还不熟悉,不知道是否有人对我有什么想法。以下是我用来制作地图的代码(感谢Ben):

library(shiny)
library(leaflet)

ui <- bootstrapPage(
  tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
  leafletOutput("map", width = "100%", height = "100%"),
  absolutePanel(bottom = 30, right = 10,
                textOutput("Counter"),
                sliderInput("Year", "Year", 1990, 2000, value = 1995, step = 1, sep = "")
  )
)

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

  sliderData <- reactive({
    breweries_subset %>%
      filter(YearOpened <= input$Year)
  })

  output$Counter <- renderText(
    paste("Number Breweries: ", nrow(sliderData()))
  )

  output$map <- renderLeaflet({
    leaflet() %>%
      addTiles() %>%
      fitBounds(min(breweries_subset$Longitude), min(breweries_subset$Latitude),
                max(breweries_subset$Longitude), max(breweries_subset$Latitude))
  })

  observe({
    leafletProxy("map", data = sliderData()) %>%
        clearMarkers() %>%
        addProviderTiles(provider = 'Esri.WorldStreetMap') %>%
        addAwesomeMarkers(icon = beer_icon,
                          group = 'Breweries',
                          popup = ~ Name)
  })
}

shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(单张)
ui%
添加一些标记(图标=啤酒图标,
组=‘酿酒厂’,
弹出窗口=~Name)
})
}
shinyApp(用户界面=用户界面,服务器=服务器)
更新

我采纳了你的建议,并尝试将其发布到shinyapps.io。以下是我使用的代码:

对于ui.R:

library(shiny)
library(leaflet)

ui <- bootstrapPage(
    tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
    leafletOutput("map", width = "100%", height = "100%"),
    absolutePanel(bottom = 30, right = 10,
                  textOutput("Counter"),
                  sliderInput("Year", "Year", 1990, 2019, value = 1995, step = 1, sep = "")
    )
)
库(闪亮)
图书馆(单张)
ui%
添加一些标记(图标=啤酒图标,
组=‘酿酒厂’,
弹出窗口=~Name)
})
}

它在本地运行良好。当我试图发布它时,我收到一个从服务器断开连接的错误。在日志中,没有找到关于“YearOpened”的信息。在.csv中肯定有一个专栏。我想知道这是否和秋天的电话有关。有什么想法吗?谢谢

尝试将所有包加载和数据集读取添加到
global.R
文件(在同一个应用程序文件夹中),如下所示:

library(shiny)
library(leaflet)
library(leaflet.extras)
library(fontawesome)
library(rsconnect)

ct_breweries <- read.csv('ct_breweries.csv', header=TRUE, sep=',')
它确实丢失了滑块选项-替换为复选框。您可以删除
hideGroup()
collapsed=FALSE
以查看其他选项。假设滑块不是必需的,这可能会更容易


此文件已脱机保存,但您需要internet连接才能获取传单地图贴。

您可能需要了解部署
Shining
应用程序的方法。如果您不介意在外部网站上托管应用程序/数据,最简单的方法是将你的应用程序上传到shinyapps.io上,并通过一个镜像将其镜像到你的网页中。如果你保持地图足够简单,你可以下载一个带有标记和选择器等的html版本。库(传单)m=spool()%%>%addTiles()库(htmlwidgets)saveWidget(m,file=“m.html”)谢谢大家。通过向部署中添加一个global.R文件,我最终实现了它。
library(shiny)
library(leaflet)
library(leaflet.extras)
library(fontawesome)
library(rsconnect)

ct_breweries <- read.csv('ct_breweries.csv', header=TRUE, sep=',')
library(leaflet)
library(fontawesome)
library(htmlwidgets)

ct_breweries <- read.csv('ct_breweries.csv', header=TRUE, sep=',')

leaflet_map <- leaflet(data = ct_breweries) %>%
    addProviderTiles(provider = 'Esri.WorldStreetMap') %>%
    addAwesomeMarkers(icon = beer_icon,
                      group = ~ YearOpened,
                      popup = ~ Name) %>%
    addLayersControl(
        overlayGroups = 1990:2000,
        options = layersControlOptions(collapsed = FALSE)
    ) %>% hideGroup(~ YearOpened)

saveWidget(leaflet_map, file="leaflet_map.html")