如何使用 API 键获取 mapbox 样式的 openmap?
How to get mapbox style openmap with API key?
我正在尝试使用 OpenStreetMap
库在 R 中制作地图。
我在使用 osm
、stamen-toner
、stamen-terrain
和 stamen-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
。它奏效了!
我正在尝试使用 OpenStreetMap
库在 R 中制作地图。
我在使用 osm
、stamen-toner
、stamen-terrain
和 stamen-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
。它奏效了!