我想请一些关于传单包的帮助.绘制交互式地图时,您可以执行此类操作.
library(leaflet)
library(magrittr)
m <- leaflet() %>%
setView(lng = -71.0589, lat = 42.3601, zoom = 8) %>%
addTiles()
m
Run Code Online (Sandbox Code Playgroud)
如果您想添加第三方磁贴,也可以这样做.以下链接提供第三方磁贴的选项(http://leaflet-extras.github.io/leaflet-providers/preview/index.html)创建以下图像OpenWeatherMap.Precipitation.
### They work
m %>% addProviderTiles("MtbMap")
m %>% addProviderTiles("HikeBike.HikeBike")
m %>% addProviderTiles("OpenWeatherMap.Precipitation")
Run Code Online (Sandbox Code Playgroud)
链接中的一些图块选项包括NASA的图块.我想用其中一个.所以我尝试了以下代码.不幸的是,他们都没有工作.
### The default map appears, then a black layer appears on top of the default layer.
m %>% addProviderTiles("NASAGIBS.ModisTerraTRUEColorCR")
m %>% addProviderTiles("NASAGIBS.ModisTerraBands367CR")
Run Code Online (Sandbox Code Playgroud)
唯一可行的选择如下.
m %>% addProviderTiles("NASAGIBS.ViirsEarthAtNight2012")
Run Code Online (Sandbox Code Playgroud)
我的下一次尝试是使用自定义URL模板addTiles().该URL来自上面的链接.但是,这也没有成功; 没有出现错误消息,但瓷砖没有变化.
m %>%addTiles(urlTemplate = "http://map1.vis.earthdata.nasa.gov/wmts-webmerc/MODIS_Terra_CorrectedReflectance_Bands367/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}",
tileOptions(minZoom = 1, maxZoom = 8))
Run Code Online (Sandbox Code Playgroud)
我最后的尝试如下.这显示了默认地图,但是没有出现额外的图块.
leaflet() %>%
addTiles() %>%
setView(lng = -71.0589, lat = 42.3601, zoom = 8) %>%
addTiles(urlTemplate = "http://map1.vis.earthdata.nasa.gov/wmts-webmerc/MODIS_Terra_CorrectedReflectance_Bands367/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}",
tileOptions(minZoom = 1, maxZoom = 8))
Run Code Online (Sandbox Code Playgroud)
我的问题是这是否是一个特别与NASA瓷砖有关的潜在错误.或者,我需要在这些脚本中进行哪些修订?提前谢谢你的帮助.
UPDATE
我找到了一个使用相同NASA瓷砖的网站.我指定NASAGIBS.ModisTerraTRUEColorCR并获得了以下图像.图像显示了邮件从美国到瑞典的情况.如你所见,美国和欧洲都没有形象.我想这可能是我看到黑色瓷砖的原因.我想知道是否有人知道美国宇航局瓷砖的一些细节.我选择了可以看到NASA图像的区域.但是,我没有运气.
### I expected to see Japan area this time.
foo <- leaflet() %>%
setView(lng = 137.37, lat = 35.93, zoom = 5) %>%
addTiles()
foo %>% addProviderTiles("NASAGIBS.ModisTerraTRUEColorCR")
Run Code Online (Sandbox Code Playgroud)
更新2
今天,我又多了几枪.此时,我设法得到以下图像.当我抓住它时,我缩小了一点.在UPDATE,我提供了一张你看不到美国和欧洲的地图.在新图像中,您看到美国西海岸是黑色的.鉴于所有观察结果,在我看来,人们似乎无法一直获得NASA的位置图像.根据您询问NASA瓷砖的时间,您可能/可能没有您想要的图像.
m <- leaflet() %>%
setView(lng = -71.0589, lat = 42.3601, zoom = 8) %>%
addTiles()
m %>% addProviderTiles("NASAGIBS.ModisTerraBands367CR")
Run Code Online (Sandbox Code Playgroud)
您的最终结论是正确的:取决于您请求图像的位置以及请求时间,卫星可能已经或可能尚未获得图像.所以你可能得到一个实际的图像或只是一个空的图像.(这也在GIBS API文档中说明.)
但是,您可以通过addProviderTiles()的'time'选项指定请求图像的日期.通过指定近期的日期,您可以获得所有位置的非空图像(如果您喜欢的话).
这是语法:
> library(leaflet)
> library(magrittr)
> m <- leaflet() %>%
setView(lng = 4.5, lat = 51, zoom = 1) %>%
addTiles() %>%
addProviderTiles("NASAGIBS.ModisTerraTrueColorCR",
options = providerTileOptions(time = "2015-08-31", opacity = 0.5))
> m
Run Code Online (Sandbox Code Playgroud)
在撰写本文时(2015-08-31),我得到了这样的结果:
在英格兰是阴天,谁会猜到?
大多数数据恰好已经存在,但阿拉斯加还没有图像.另一方面,如果我指定昨天的日期
options = providerTileOptions(time = "2015-08-30", opacity = 0.5)
Run Code Online (Sandbox Code Playgroud)
我们得到完整的图像:
最后,之所以如此
m %>% addProviderTiles("NASAGIBS.ModisTerraTRUEColorCR")
Run Code Online (Sandbox Code Playgroud)
不起作用可能是因为一个错字.它应该是
m %>% addProviderTiles("NASAGIBS.ModisTerraTrueColorCR")
Run Code Online (Sandbox Code Playgroud)