我最近正在做一个项目。它的一个维度是制作具有不同底图图层的传单地图。这是到目前为止的代码;
library(leaflet)
library(leaflet.providers)
leaflet() %>%
addProviderTiles("OpenStreetMap", group = "OpenStreetMap") %>%
addProviderTiles("Esri.NatGeoWorldMap", group = "Esri.NatGeoWorldMap") %>%
addProviderTiles("Esri.WorldStreetMap", group = "Esri.WorldStreetMap") %>%
addProviderTiles("Esri.WorldTopoMap", group = "Esri.WorldTopoMap") %>%
addProviderTiles("Esri.WorldImagery", group = "Esri.WorldImagery") %>%
addLayersControl(baseGroups = c("OpenStreetMap",
"Esri.NatGeoWorldMap", "Esri.WorldStreetMap",
"Esri.WorldTopoMap", "Esri.WorldImagery"),
position = "topleft")
这行代码为我提供了一个可用的传单地图。但是,当我添加不同的图层时,即
TopPlusOpen.Color
,如本网站中建议的:https://leaflet-extras.github.io/leaflet-providers/preview/,地图不会显示之前显示的不同图层特别是左上角的图层控件消失了。这是此错误的代码;
library(leaflet)
library(leaflet.providers)
leaflet() %>%
addProviderTiles("OpenStreetMap", group = "OpenStreetMap") %>%
addProviderTiles("TopPlusOpen.Color", group = "TopPlusOpen.Color") %>%
addProviderTiles("Esri.NatGeoWorldMap", group = "Esri.NatGeoWorldMap") %>%
addProviderTiles("Esri.WorldStreetMap", group = "Esri.WorldStreetMap") %>%
addProviderTiles("Esri.WorldTopoMap", group = "Esri.WorldTopoMap") %>%
addProviderTiles("Esri.WorldImagery", group = "Esri.WorldImagery") %>%
addLayersControl(baseGroups = c("OpenStreetMap","TopPlusOpen.Color",
"Esri.NatGeoWorldMap", "Esri.WorldStreetMap",
"Esri.WorldTopoMap", "Esri.WorldImagery"),
position = "topleft")
我无法理解是什么原因导致了这个问题,因为“TopPlusOpen.Color”是图层选项之一,我期待是否有任何类似的图层可以使用。我感谢任何意见和建议,并预先感谢您。
看起来
TopPlusOpen.Color
不是 providers
包的 leaflet
列表中包含的默认提供程序之一。也就是说,您仍然可以使用原始问题中网站上提供的 URL 模板来使用这些图块。您可以使用 addProviderTiles()
添加您自己的并提供 addTiles()
参数,而不是使用 urlTemplate
(从预先确定的提供者列表中获取图块)(不要忘记正确地对它们进行属性!)。
library(leaflet)
library(leaflet.providers)
leaflet() %>%
addProviderTiles("OpenStreetMap", group = "OpenStreetMap") %>%
addTiles(urlTemplate = 'http://sgx.geodatenzentrum.de/wmts_topplus_open/tile/1.0.0/web/default/WEBMERCATOR/{z}/{y}/{x}.png',
attribution = 'Map data: © <a href="http://www.govdata.de/dl-de/by-2-0">dl-de/by-2-0</a>',
group = "TopPlusOpen.Color") %>%
addProviderTiles("Esri.NatGeoWorldMap", group = "Esri.NatGeoWorldMap") %>%
addProviderTiles("Esri.WorldStreetMap", group = "Esri.WorldStreetMap") %>%
addProviderTiles("Esri.WorldTopoMap", group = "Esri.WorldTopoMap") %>%
addProviderTiles("Esri.WorldImagery", group = "Esri.WorldImagery") %>%
addLayersControl(
baseGroups = c(
"OpenStreetMap",
"TopPlusOpen.Color",
"Esri.NatGeoWorldMap",
"Esri.WorldStreetMap",
"Esri.WorldTopoMap",
"Esri.WorldImagery"
),
position = "topleft"
)
最终结果,当
TopPlusOpen.Color
底图图块处于活动状态时,如下所示: