我正在使用 ESA 的土地覆盖栅格图层,最终希望在 Leaflet Shiny 应用程序中显示地球的数据。渲染如此庞大的文件是不可能的,因此我决定创建地图图块来显示数据。
创建图块很简单——我使用了 QGIS 中的
gdal2tiles
工具。以下是输出的快速浏览,该输出位于我计算机上的本地目录中:
当我单击
leaflet.html file
时,图块将在我的浏览器中呈现,如下所示:
显然瓷砖处于工作状态。 问题是我不知道如何在 R 的 Leaflet 中渲染这些图块。 我尝试按照 本教程进行操作,但是当我更改代码以适合示例时,没有渲染任何内容。我还探索了这个 StackOverflow 问题 的答案,但所有答案似乎都已经过时了好几年。
这是我用来尝试以任何方式渲染图块的 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 中渲染它们?看起来这应该很简单,但我无法弄清楚!
想通了。您必须在 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))