如何在Shiny Leaflet中将半径圆的大小与缩放水平成反比?

时间:2019-06-30 13:38:50

标签: r shiny leaflet

传单使用的缩放级别从0(世界)到18(本地)。

在我的地图中,以最大比例(缩放级别:18)将半径设置为5000米半径。

如何与缩放级别输入成反比地增加圆形的半径。

我想要的是:在世界缩放级别(例如:100000米,半径x10)处更大的圆圈,并减小到5000(缩放级别18)。

如何按缩放级别反比例设置圆的大小

library(shiny)
library(leaflet)

df <- data.frame(
  location_name = c('S1', 'S2'),
  lng = c(-1.554136,  -2.10401),
  lat = c(47.218637, 47.218637), 
  stringsAsFactors = FALSE
)


ui <- shinyUI(
  fluidPage(
    leafletOutput(outputId = 'map')
  )
)

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

  output$map <- renderLeaflet({
    leaflet() %>%
      addTiles()
  })

  observeEvent(
    eventExpr = input$map_zoom, {
      print(input$map_zoom)           # Display zoom level in the console
      leafletProxy(
        mapId = "map", 
        session = session
      ) %>% 
        clearShapes() %>%
        addCircles(
          data = df, 
          lng = ~lng,
          lat = ~lat,
          radius = ~ 5000 * 1/input$map_zoom # increase too slightly
        )
    }
  )


})

shinyApp(
  ui = ui, 
  server = server
)

我不想使用addCircleMarkers函数

0 个答案:

没有答案