我需要创建一个包含交互式地图的网页,用户可以在其中查看有关在许多位置收集的数据的弹出信息。在Windows上使用Rstudio和传单,希望使用OSM基本地图图块。
我的传单地图在Rstudio查看器中正常工作。但是,当'针织'页面在Firefox中查看,虽然地图的其他组件都可以,但不会显示OSM地图图块。类似的OSM图块在保存的html小部件中丢失。
我做了一个简单的例子来证明。
```{r}
library(leaflet)
library(htmlwidgets)
rand_lng = function(n = 10) rnorm(n, 145.7, .01)
rand_lat = function(n = 10) rnorm(n, -17, .01)
m = leaflet() %>%
addTiles(group = "OSM (default)") %>%
addProviderTiles("Esri.WorldImagery") %>%
addCircleMarkers(rand_lng(5), rand_lat(5), group = "Points")%>%
addLayersControl(
baseGroups = c("OSM (default)","Esri.WorldImagery"),
overlayGroups = c("Points"),
options = layersControlOptions(collapsed = FALSE)) %>%
setView(lng = 145.7, lat = -17, zoom = 12)
m
saveWidget(m, "leaflet_OSMplusEsri.html")
```
This is the html file shown in Firefox, where OSM tiles do not display despite being selected.
我一整天都在搜索,却没有发现如何解决这个问题。作为一个新手或许我错过了一些明显的东西?
我将非常感谢您的建议:如何通过简单的步骤解决这个问题?
答案 0 :(得分:3)
花了很长时间,但我最终解决了这个问题。万一它可以帮助其他人,这里是修改后的版本正常工作。
```{r}
library(leaflet)
library(htmlwidgets)
rand_lng = function(n = 10) rnorm(n, 145.7, .01)
rand_lat = function(n = 10) rnorm(n, -17, .01)
m = leaflet() %>%
addProviderTiles(providers$OpenStreetMap, group = "OSM") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Esri") %>%
addCircleMarkers(rand_lng(5), rand_lat(5), group = "Points")%>%
addMiniMap() %>%
addLayersControl(
baseGroups = c("OSM","Stamen", "Esri"),
overlayGroups = c("Points"),
options = layersControlOptions(collapsed = FALSE)) %>%
setView(lng = 145.7, lat = -17, zoom = 12)
m
saveWidget(m, "leaflet_OSMplusEsri.html")
```
问题的原因是addTiles()具有默认值。我不确定为什么这不起作用,希望有人能够解释。