如何使用 API 键获取 mapbox 样式的 openmap?

How to get mapbox style openmap with API key?

我正在尝试使用 OpenStreetMap 库在 R 中制作地图。

我在使用 osmstamen-tonerstamen-terrainstamen-watercolor 等类型时没有问题,例如:

map <- openproj(openmap(c(63.47,10.32),c(63.37,10.54),type='osm'),proj=CRS('+init=epsg:32632'))
par(mar=c(0,0,0,0))
plot(map)

工作正常:

我将在该图层上添加点。但是,我的客户想要 map-box 类型,但是当我 运行

map <- openproj(openmap(c(63.47,10.32),c(63.37,10.54),type='mapbox'),proj=CRS('+init=epsg:32632'))

我收到以下错误:

failed loading 12/2165/1106 Server returned HTTP response code: 401 for URL: http://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/12/2165/1106.png?access_token=pk.eyJ1IjoidGhlZmVsbCIsImEiOiJjaXN1anNwODEwMWlrMnRvZHBhamRrZjlqIn0.Gf8qLSpZ6yo5yfQhEutFfQ
java.lang.NullPointerException
    at edu.cens.spatial.RTileController.getTileValues(RTileController.java:109)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at RJavaTools.invokeMethod(RJavaTools.java:386)
Error in osmtile(x%%nX, y, zoom, type) : 
  could not obtain tile: 2165 1106 12

我知道我需要一把 API 钥匙。我在 MapBox site 创建了一个。但是现在,如何获得 map-box 类型的地图?给出的例子就像

apiKey <- paste0('?access_token=','{my key}')
baseUrl <- 'https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v9/tiles/256/{z}/{x}/{y}'
map <- openproj(openmap(c(63.47,10.32),c(63.37,10.54),type=paste0(baseUrl,apiKey)),proj=CRS('+init=epsg:32632'))

我尝试用 mapbox 替换 satellite-streets-v9 或简单地删除此目录,但它不起作用。我不知道如何将我的 API 键添加到原始命令 openmap(c(63.47,10.32),c(63.37,10.54),type='mapbox')。我在 mapbox 的网站上也找不到任何有用的东西。

我必须输入 Mapbox Studio,创建默认样式(类似于我想要的 mapbox 样式),才能在 "Layer overview" window 上看到它们的默认样式主题名为 "Mapbox Streets v8"。从那里,我猜我应该使用

https://api.mapbox.com/styles/v1/mapbox/streets-v8/tiles/256/{z}/{x}/{y}

作为我的 baseUrl。它奏效了!