2017-01-21 5 views
0

の系列を生成してleafletマップに追加したいとします。次のベクトルが私のチラシオブジェクトに追加したいプロバイダータイルの場合を考えてみましょう。ループ内のリーフレットマップに複数のプロバイダタイルを追加する方法

providers <- c("Stamen.TonerLite", "Stamen.Watercolor", "CartoDB.Positron", "Acetate.terrain") 

私が試した:

pTiles <- lapply(providers, addProviderTiles) 

が、私はエラーと会っている:私のアプリケーションでは

Error in map$dependencies : $ operator is invalid for atomic vectors 

、私はプロバイダタイルまたは層のいずれかの任意の数を有することができますこれをマップに追加したいので、チラシマップが自動的に生成され、ハードタイプでないことが重要です。例:

leaflet() %>% 
    addProviderTile(x) %>% 
    addProviderTile(y) ... 
+3

'addProviderTiles()'二つの引数、 'map'と' provider'をとります。あなたの 'lapply'の中で' provider'引数を与えているだけです – SymbolixAU

+0

もちろん、%>%元で使っていました。 –

答えて

2

方法について:

providers <- c("Stamen.TonerLite", "Stamen.Watercolor", "CartoDB.Positron", "Acetate.terrain") 
map = leaflet() 
for(i in 1:length(providers)){ 
    map = map %>% addProviderTiles(providers[i], group = providers[i]) 
} 

map = map %>% addLayersControl(
     baseGroups = providers, 
     options = layersControlOptions(collapsed = FALSE)) 

map 
+1

これは正しい方法だとわかっていますが、レイヤーを切り替えるためのマップを取得できません。これはあなたのために働いていますか? – SymbolixAU

+1

私の悪い。プロバイダタイルを追加するときにグループを指定する必要がありました。ちょうどそれを更新する。 – Nistara

+0

ああ - 私もそのステップを忘れてしまった:) – SymbolixAU

関連する問題