首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用leaflet复制闪亮的tmap?

用leaflet复制闪亮的tmap?
EN

Stack Overflow用户
提问于 2020-10-26 01:49:56
回答 1查看 78关注 0票数 0

我已经构建了以下应用程序https://iseak.shinyapps.io/Mapa/,我想从tmap切换到应用程序的地图部分的leaflet,因为我遇到了一些限制(我想要更华丽的弹出式窗口和其他一些东西)。

目前,map使用以下代码与tmap一起工作:

代码语言:javascript
复制
output$map = renderLeaflet({
  
  tm <- tm_shape(subsetData()) +
    tm_fill(selvar(), palette=colores(),
            alpha=0.95,
            breaks=breaks(),
            id="Zona", 
            popup.vars=c(" "="popover"),
            popup.format=list(digits=2),  
            legend.show = F,
            labels=c(" "=selvar())
            
    ) + 
    tm_borders() +
    tmap_options(basemaps = "CartoDB.Positron"
    ) 
  
  
  tmap_leaflet(tm) %>%
    removeLayersControl()
})

当我尝试直接使用leaflet时,我的出发点是:

代码语言:javascript
复制
output$map = renderLeaflet({
  
  leaflet(data=subsetData()) %>%
    addProviderTiles("CartoDB.Positron") %>% 
    clearShapes() %>% 
    clearControls() %>% 
    addPolygons(data = subsetData(),
                fillColor = ~colores()(selvar()),
                fillOpacity = 0.9,
                weight = 2)
  
  
})

但我一直收到错误。我希望得到一些关于如何轻松地从tmap切换到leaflet以及如何在leaflet调用中使用反应值的建议。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-10-26 04:58:17

这个问题是相当开放的。我认为传单网站有非常好的示例代码(https://rstudio.github.io/leaflet/)。浏览左侧菜单。

当涉及到反应性时,你不需要括号来使用由reactiveValues创建的变量;如果是reactive(),你需要一些括号。

看你的代码,我不确定color()和selvar()背后是什么。假设selvar()是颜色比例的数字,我的方法应该是这样的:

代码语言:javascript
复制
selvar <- reactiveValues(n=c(1:10)

output$map = renderLeaflet({
    pal <- leaflet::colorBin(brewer.pal(9,"Blues"), domain = selvar, bins = 7, na.color = "gray")

    leaflet() %>%
        addProviderTiles("CartoDB.Positron") %>%
        addPolygons(data=shp,
                    fillColor = ~pal(selvar),
                    fillOpacity = 0.9,
                    weight = 2)

可以在leaflet()addPolygons()中指定形状数据。使用后者允许使用不同的形状文件表。最后,另一个有用的指针是leafletProxy('map'),它可以很好地与地图下面的年份按钮配合使用,以实现快速更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64526903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档