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.
该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)
您可能对该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)