【发布时间】:2016-08-17 21:23:00
【问题描述】:
我想做的很简单:我想在用户放大或缩小时保持圆圈的大小不变。
library(shiny)
library(leaflet)
r_colors <- rgb(t(col2rgb(colors()) / 255))
names(r_colors) <- colors()
ui <- fluidPage(
leafletOutput("mymap"),
p(),
actionButton("recalc", "New points")
)
server <- function(input, output, session) {
output$mymap <- renderLeaflet({
leaflet() %>%
addProviderTiles("Stamen.TonerLite",
options = providerTileOptions(noWrap = TRUE))
})
observe({
new_zoom <- input$mymap_zoom
leafletProxy('mymap') %>%
clearShapes() %>%
addCircles(data = data.frame(lon = 0, lat = 0),
radius = 100000 / new_zoom)
})
}
shinyApp(ui, server)
我尝试了这段代码,但我真的无法解释结果。发生的情况是,每次我放大或缩小时,Leaflet 都会添加一个圆圈。
为什么? ClearShapes() 不应该处理这个吗?还有什么简单的方法可以得到我想要的吗?
【问题讨论】: