2017-12-18 18 views
1

のクリック後に表示さ作ることは、次のMWEご覧ください。R /リーフレット:LayersControlではなく、ホバー

library(shiny) 
library(leaflet) 


ui <- fluidPage(leafletOutput("mymap")) 

server <- function(input, output, session) { 
    output$mymap <- renderLeaflet({ 
    leaflet() %>% 
     addProviderTiles(
     providers$Stamen.TonerLite, 
     group = 'stamen', 
     options = providerTileOptions(noWrap = TRUE) 
    ) %>% 
     addProviderTiles(providers$CartoDB.Positron, group = 'cartodb') %>% 
     addLayersControl(baseGroups = c('stamen', 'cartodb'), 
         position = 'bottomleft') 

    }) 
} 

shinyApp(ui, server) 

をLayerControl(addLayersControl)の標準的な動作は、ユーザーがアイコンを置いた後に表示されるようになります。代わりに、レイヤーオプションをクリックした後で表示したいと考えています。標準のaddLayersControl関数は、このような機能を提供していません。誰かが回避策を知っていますか?

+0

このオプションを検討しましたか? http://leafletjs.com/reference-1.2.0.html#control-layers-collapsed – Baptiste

+0

はい、そのオプションは崩壊します。これは良いことです。しかし、私はホバリングの代わりにクリックするだけでそれを開く方法を知らない。 – mcdesign

答えて

0

私はRを知らないが、JSに、あなたがコントロールを開きたい場合は、あなたがこれを呼び出す必要があり、今すぐあなたのL.control.layers にオプションcollapsedを追加する必要があります。

$(".leaflet-control-layers").addClass("leaflet-control-layers-expanded"); 

したい場合閉じるには:

$(".leaflet-control-layers").removeClass("leaflet-control-layers-expanded"); 
関連する問題