Leaflet 不适用于 R 中的特定底图图层

问题描述 投票:0回答:1

我最近正在做一个项目。它的一个维度是制作具有不同底图图层的传单地图。这是到目前为止的代码;

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”是图层选项之一,我期待是否有任何类似的图层可以使用。我感谢任何意见和建议,并预先感谢您。

r leaflet r-leaflet
1个回答
0
投票

看起来

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: &copy; <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
底图图块处于活动状态时,如下所示: TopPlusOpen.Color leaflet map

© www.soinside.com 2019 - 2024. All rights reserved.