在交互式地图上叠加形状文件或栅格

Overlaying shapefiles or raster over interactive maps

我正在使用 R,我想在允许平移和缩放的交互式地图上叠加一些栅格数据(例如来自模型的温度图)。理想情况下,我想覆盖 Google 地图或 OpenStreetMaps。输入数据可以是 shapefile、KML、raster 数据或任何方便的数据。

您可能对 leaflet 包感兴趣。您可以轻松添加一个 raster 对象。来自 documentation

Two-dimensional RasterLayer objects (from the raster package) can be turned into images and added to Leaflet maps using the addRasterImage function.

这里还有一个例子来自 documentation:

library(leaflet)
library(raster)

r <- raster("nc/oisst-sst.nc")
pal <- colorNumeric(c("#0C2C84", "#41B6C4", "#FFFFCC"), values(r),
  na.color = "transparent")

leaflet() %>% addTiles() %>%
  addRasterImage(r, colors = pal, opacity = 0.8) %>%
  addLegend(pal = pal, values = values(r),
    title = "Surface temp")

mapview 软件包就是为此特定目的而开发的。它还带有各种背景地图层。有关 mapview 功能的简短介绍,请随时浏览 package vignette。例如,这里有一些代码显示了瑞士法兰克尼亚选定啤酒厂的位置,这些啤酒厂被示例 Landsat 8 场景(波段 10)覆盖。查看 ?breweries91?poppendorf 以检索有关下面使用的数据的信息,并查看 ?mapview 以熟悉众多的自定义选项。

## require package
# install.packages("mapview")
library(mapview)

## visualize breweries and add landsat 8 band 10
mapview(breweries91) + 
  poppendorf[[10]]