如何在 Leaflet for R 中渲染使用 gdal2tiles 创建的自定义地图图块?

How to render custom map tiles created with gdal2tiles in Leaflet for R?

我正在使用 ESA's landcover raster layer 并最终想在 Leaflet Shiny 应用程序中显示全球数据。渲染如此庞大的文件是不可能的,所以我决定创建地图图块来显示数据。

创建图块很简单——我使用了 QGIS 中的 gdal2tiles 工具。下面是输出的快速浏览,它位于我计算机的本地目录中:

当我单击 leaflet.html file 时,图块会在我的浏览器中呈现,如下所示:

很明显,瓷砖处于正常工作状态。 问题是我不知道如何在 Leaflet for R 中渲染这些图块。 我试过 this tutorial, but nothing is rendered when I altered my code to fit the example. I also explored answers from this Whosebug 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 中呈现?看起来这应该很简单,但我想不通!

想通了。您必须在 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))