【问题标题】:Overlaying shapefiles or raster over interactive maps在交互式地图上叠加 shapefile 或栅格
【发布时间】:2016-03-06 13:39:55
【问题描述】:

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

  • 我知道我可以使用googleVisggmapRgoogleMaps 以非交互方式轻松完成此操作。但我不想使用瓷砖,我想要交互!直接从浏览器进行缩放、平移等操作。

  • googleVis,据我所知,不幸的是只允许交互显示点或地址,而不是区域。

  • This question 非常相似,但我肯定想尝试使用 R 来执行此操作。我可以从 R 创建 KML 或 geoJSON,但如何直接从 R 覆盖它?

    李>
  • OpenStreetMaps 也很好,但是我没有找到任何关于如何从 R 覆盖数据的参考,尽管 OSM 似乎有 a pretty straightforward API

【问题讨论】:

    标签: r google-maps openstreetmap shapefile googlevis


    【解决方案1】:

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

    二维 RasterLayer 对象(来自 raster 包)可以是 变成图像并使用 addRasterImage 添加到传单地图 功能。

    这里还有一个来自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")
    

    【讨论】:

    • 这真是太棒了!谢谢。我真的不知道我是怎么错过这个美妙的包裹的。
    【解决方案2】:

    ma​​pview 包是为这个特殊目的而开发的。它还带有各种背景地图图层。有关 ma​​pview 功能的简短介绍,请随时浏览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]]
    

    【讨论】:

    • 这太棒了!不幸的是,我已经使用leaflet 实现了这个,但我真的很喜欢这个包。 R 包的质量、数量和可用性永远不会停止给我留下深刻印象。包裹做得很好!
    猜你喜欢
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 2020-04-27
    • 1970-01-01
    • 2020-05-04
    • 2020-10-14
    • 2022-06-15
    相关资源
    最近更新 更多