2016-04-24 27 views
1

私がやりたいことはかなりシンプルです。ユーザーの拡大または縮小に合わせて円のサイズを一定に保ちたいと思います。円の半径をズームレベルに反応させる

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) 

私はこのコードを試しましたが、実際には結果を説明できません。何が起こるかは、ズームインまたはズームアウトするたびに、リーフレットはを追加します。

なぜですか? ClearShapes()はこれをしてはならないのですか?また、私が望むものを手に入れるための簡単な方法はありますか?私はyou'deより良い利用circlemarkers考える。この場合

答えて

1

サークルマーカーは、画面上のピクセル単位での半径は関係なく、ズームレベルの一定であることを除いて、(線や図形を参照)、通常の丸似ています。

https://rstudio.github.io/leaflet/markers.html

関連する問題