Недавно я работаю над проектом. Его единственное измерение — создать карту-листовку с различными слоями базовой карты. Вот код на данный момент;
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
выглядит следующим образом:
Да, но ссылка, на которую вы ссылаетесь, относится к сервису стилей базовых карт ArcGIS, для использования которого требуется учетная запись ArcGIS Platform или ArcGIS Online и ключ API. Итак, я полагаю, вы могли бы передать https://basemaps-api.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer/tile/{z}/{y}/{x}.pbf
в параметр шаблона urlTemplate
, но вам также нужно будет передать ключ API. Я не могу это проверить, так как у меня его нет. Согласно документации, для параметра language
можно установить любой код языка.
Огромное спасибо, это определенно то, что я искал. Я вижу, что это возможно, используя информацию на сайте, который я упомянул выше. В связи с этим позвольте мне спросить, можно ли дополнительно настроить эти слои, например язык мест и т. д., как описано: Developers.arcgis.com/documentation/mapping-apis-and-services/ …. Кроме того, есть ли способ включить разные карты из разных источников, например слои «Современная античная карта» с веб-сайта ArcGis, ссылку на который я только что дал.