如何在循环中将多个提供程序切片添加到传单映射

时间:2017-01-21 01:16:43

标签: r leaflet

我想生成一系列addProviderTiles以添加到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) ... 

1 个答案:

答案 0 :(得分:4)

怎么样:

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