我正试图找出如何根据用户输入放大地图。我从美国地图开始,然后尝试根据邮政编码和英里数缩放到特定位置:
shinyUI(fluidPage(
# Application title
titlePanel("Starbucks Locator"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
textInput("zip","Zip Code:", value = "18101"),
sliderInput("radius",
"Radius",
min = 1,
max = 25,
value = 15),
actionButton("go", "Submit")
),
# Show a plot of the generated distribution
mainPanel(
leafletOutput("myMap")
)
)
))
这是服务器代码:
library(shiny)
library(ZipRadius)
library(leaflet)
shinyServer(function(input, output) {
data <- reactive({x <- readRDS("Starbucks.rds")})
output$myMap <- renderLeaflet({
df <- data()
m <- leaflet(data = df) %>%
addTiles() %>%
addMarkers(lng = ~Lon, lat = ~Lat)
})
eventReactive(input$go, {
zip_include <- zipRadius(input$zip, input$radius)
})
leafletProxy("myMap") %>% fitBounds(~min(zip_include$longitude), ~min(zip_include$latitude),
~max(zip_include$longitude), ~max(zip_include$latitude))
})
我正在用zipradius包查找哪个邮政编码
input$distance
远离
input$zip
. 然后我想放大输入的邮政编码,作为半径定义的中心和边界。(
输入$距离
)原文
leaflet
地图可以用,但是
leafletProxy
是我的问题所在。有什么关于怎么做的想法吗?我想用
fitbounds
因为它可以考虑最小和最大纬度和经度。我认为问题可能在于
eventReactive
但不确定如何测试它。数据集在此处可用
github
.