html - 使用浏览器打开 .html(= .Rmd 输出)时,Leaflet Layer Tiles 不可切换

标签 html r knitr r-leaflet

现在好几天了,基本图层图 block “OSM”和“Stamen.TonerLite”(我已经使用一年多作为我的 map 的标准图 block )没有正确显示——也就是说,不可能再在它们之间切换。

只要 map 显示在 RStudio 和 RStudio Viewer 中,一切都会完美无缺。但是,只要我在浏览器中打开 .Rmd 输出的相应 .html 文件(我尝试过 chrome、Internet Explorer、Edge 和 Firefox),就不可能再在图 block 之间切换。显示“OSM”,我无法切换到“Stamen.TonerLite”,反之亦然。
我尝试过不同层的瓷砖或超过 2 层的瓷砖,但结果相同。即使我切换到其他层,也始终只有一层图 block 可见。

我的案例的可重现示例:

---
title: "stackoverflow"
author: " "
date: " "
output: html_document
---

```{r, echo = T}
library(leaflet)

m <- leaflet() %>%
     addTiles(group = "OSM") %>%
     addProviderTiles("Stamen.TonerLite") %>%
     addLayersControl(baseGroups = c("OSM", "Stamen.TonerLite")) %>%
     addCircleMarkers(lat = 47.4,
                      lng = 9.37,
                      radius = 10,
                      fillOpacity = 1.0)
m
```

enter image description here

enter image description here

最佳答案

试试这个,重点是将两个提供者图 block 通过管道传递给 addTiles() 参数

---
title: "stackoverflow"
author: " "
date: " "
output: html_document
---

```{r, echo = T}
library(leaflet)

m <- leaflet() %>%
 addTiles() %>%
 addProviderTiles(providers$OpenStreetMap, group = "OSM") %>%
 addProviderTiles(providers$Stamen.TonerLite, group = "Toner Lite") %>%
 addLayersControl(baseGroups = c("OSM", "Toner Lite")) %>%
 addCircleMarkers(lat = 47.4,
                  lng = 9.37,
                  radius = 10,
                  fillOpacity = 1.0)
m
```

关于html - 使用浏览器打开 .html(= .Rmd 输出)时,Leaflet Layer Tiles 不可切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45372349/

相关文章:

删除 ggplot2 geom_pointrange 中的附加透明度

RMarkdown 代码评估直到命令

r - 从 RStudio 调用的 knitr 不保留加载包的顺序

html - 在 R Markdown 中渲染原始 HTML

javascript - 多次点击添加类

java - 在 html 中嵌入 Dygraph

r - ggplot2 中的平滑和连续颜色渐变

r - 如何计算R中的层次结构级别?

javascript - jQuery 手动设置按钮组 radio

javascript - 从 div 到 div 来回移动和/或拖动元素并动态捕获它的 div 字符串