我正在使用ESA's landcover raster layer并最终希望在Leaflet Shiny应用中显示全球的数据。渲染如此庞大的文件是不可能的,所以我决定创建地图图块来显示数据。
创建切片很简单 - 我在QGIS中使用了gdal2tiles
工具。这是输出的快速查看,它位于我的计算机上的本地目录中:
当我点击leaflet.html file
时,瓷砖会在我的浏览器中呈现,如下所示:
显然瓷砖处于正常工作状态。 问题是我不知道如何在Leaflet for R中渲染这些图块。我尝试了this tutorial,但是当我修改代码以适应示例时,没有渲染任何内容。我也从this StackOverflow question探索了答案,但所有的答案似乎已经过时了几年。
这是我用来尝试以任何方式呈现图块的R代码:
library(leaflet)
leaflet() %>%
setView(0, 0, zoom = 1) %>%
addTiles(urlTemplate = "http://my-username.github.io/tiles/{z}/{x}/{y}.png",
options = tileOptions(minZoom = 1, maxZoom = 2, tms = TRUE)) %>%
addCircles(lat = 0, lng = 0, radius = 100) #just to see if anything is rendering
这段代码渲染了我绘制的圆圈,但没有别的。
有没有办法直接从本地机器渲染这些图块?如果没有,我如何托管这些瓷砖,以便它们可以在Leaflet for R中呈现?看起来这应该是非常简单的,但我无法弄明白!
答案 0 :(得分:0)
想出来。您必须在Shiny目录中使用“www”文件夹。所以在这个问题中,我只有文件夹“Tiles”和其中列出的所有平铺文件夹(0 - 7)。相反,将Tiles文件夹移动到www目录中(在我的示例中,它们将进一步移动到名为“map”的文件夹中)。
因此,代替上述结构Tiles > x
,它必须是www > map > Tiles > x
leaflet() %>%
addTiles(urlTemplate = "map/Tiles/{z}/{x}/{y}.png",
option = tileOptions(tms = T, minZoom = 5, maxZoom = 9))