Как установить размер радиуса окружности обратно пропорционально уровню масштабирования в Shiny Leaflet? - PullRequest
1 голос
/ 30 июня 2019

Листовка использует уровни масштабирования от 0 (мир) до 18 (местный).

На моей карте круги имеют радиус 5000 метров в максимальном масштабе (уровень масштабирования: 18).

Как я могу увеличить радиус формы моих кругов обратно пропорционально вводу уровня масштабирования.

Что я хочу: большие круги на мировом уровне масштабирования (например, 100 000 метров, радиус х10) и уменьшение до 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 функцию

...