2017-11-08 10 views
0

私は、fillOpacity = 1(塗りつぶし)またはfillColor = "white"(空白)で区別される2組の円マーカーを区別するために凡例を作成しています。これはdf $航空機の列には2つのレベルがあります。私は、伝説には、それぞれにマッチするために、塗りつぶされた空のマーカーを持ってほしいです。Shiny Leafletの凡例マーカーはマップマーカーと同じ

これは簡単なことですが、これを聞いてthe other questionが回答を得られませんでした。私は関数/ CSSスタイリングfound hereを修正しようとしましたが、各凡例マーカーの不透明度を個別に変更したり、ストロークカラーを保持するのに成功しませんでした(内部のみが空になるはずです)。任意の助け

library(shiny) 
library(leaflet) 

# create data 
df<-data.frame(x=runif(10,20,21), y=runif(10,0,1)) 
df$aircraft[1:5] <- "C130" 
df$aircraft[5:10] <- "B200" 

# create map 
map = leaflet() %>% addTiles() 

# set up shiny app 
ui <- leafletOutput("myMap") 


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

    df_c <- filter(df,df$aircraft == "C130") 
    df_b <- filter(df,df$aircraft == "B200") 

    output$myMap = renderLeaflet({map %>% 
     addCircleMarkers(df_c$x,df_c$y, radius=10, opacity = 1, fillColor = "white") %>% 
     addCircleMarkers(df_b$x,df_b$y, radius=10, opacity = 1, fillOpacity = 1) 
    %>% 
    addLegend(colors = c("blue", "blue"), labels = c("C130", "B200")) 
    }) 
} 

shinyApp(ui, server) 

感謝を:

は、ここで私は伝説(伝説は表示されません)を見てみたいと思いますどのように見ているマーカーで、シンプルなマップを生成するためのコードです。

+0

伝説として示した正方形のボックスは、各サークルの右側に変更する必要がありますか? – amrrs

答えて

1

私はあなたのために何かを作成しましたが、それはちょっと混乱したCSSです。

library(shiny) 
library(leaflet) 
library(magrittr) 

# create data 
df<-data.frame(x=runif(10,20,21), y=runif(10,0,1)) 
df$aircraft[1:5] <- "C130" 
df$aircraft[5:10] <- "B200" 

# create map 
map = leaflet() %>% addTiles() 


# set up shiny app 
ui <- bootstrapPage(tags$style(type = "text/css", "html, body {width:100%;height:100%}", 
           " 
           .leaflet-top .leaflet-control { 
            margin: 0px; 
           }  

           .leaflet-right { 
            margin-right: 40px; 
            }  
           .full{ 
           background-color: blue; 
           border-radius: 50%; 
           width: 20px; 
           height: 20px; 
           float: left; 

           } 
           .circle { 
           background-color: #FFF; 
           border: 3px solid blue; 
           border-radius: 50%; 
           height: 20px; 
           width: 20px; 

           } 

           .leaflet-control i{ 
            margin-right: 25px; 
           } 
           "), 
        leafletOutput("myMap")) 



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

    df_c <- filter(df,df$aircraft == "C130") 
    df_b <- filter(df,df$aircraft == "B200") 

    output$myMap = renderLeaflet({map %>% 
     addCircleMarkers(df_c$x,df_c$y, radius=10, opacity = 1, fillColor = "white") %>% 
     addCircleMarkers(df_b$x,df_b$y, radius=10, opacity = 1, fillOpacity = 1) %>% 
     addLegend(colors = c("blue"), labels = c("B200"), className='full') %>% 
     addLegend(colors = c("white"), labels = c("C130"), className = 'circle') 

    }) 
} 

shinyApp(ui, server) 

出力スクリーンショット:

enter image description here

+1

ありがとうございます! CSSを関数に編集して、プログラムで色を変更できるようにしましたが、うまくいきました! –

関連する問題