在交互式地图上叠加shapefile或栅格

AF7*_*AF7 5 google-maps r shapefile openstreetmap googlevis

我正在使用R,我想在交互式地图上叠加一些栅格数据(例如模型的温度图),这样可以进行平移和缩放.理想情况下,我想覆盖Google地图或OpenStreetMaps.输入数据可以是shapefile,KML,raster数据或任何派上用场的东西.

  • 我知道我可以在这个非交互使用任何容易做googleVis,ggmap或者RgoogleMaps.但我不想使用瓷砖,我想要互动!直接从浏览器缩放,平移等.

  • googleVis据我所知,遗憾的是,只允许以交互方式显示点或地址,而不是区域.

  • 这个问题非常相似但我肯定想尝试用R来做这个.我可以用R创建KML或geoJSON,但是如何直接从R覆盖它呢?

  • OpenStreetMaps也没问题,但是我没有找到任何关于如何在R上覆盖数据的参考,尽管事实上OSM似乎有一个相当简单的API.

fde*_*sch 6

该MapView的包已经开发了这个特定的目的.它还附带了各种背景地图图层.有关mapview的功能的简短介绍,请随时浏览包装插图.例如,这里有一些代码显示法兰克瑞士选定啤酒厂的位置,并由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]]
Run Code Online (Sandbox Code Playgroud)

mapview_viewer


joh*_*nes 3

您可能对该leaflet软件包感兴趣。您可以轻松添加raster对象。从文档中

二维 RasterLayer 对象(来自栅格包)可以转换为图像并使用 addRasterImage 函数添加到 Leaflet 地图中。

这是文档中的一个示例:

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")
Run Code Online (Sandbox Code Playgroud)