【问题标题】:Create and display a raster for Leaflet in R在 R 中为 Leaflet 创建和显示栅格
【发布时间】:2017-12-03 13:05:53
【问题描述】:

我一直在阅读文档,但没有解决这个问题。

我有一个包含三列的数据框。前两列是 gps 坐标,[例如 42.06,-70.19 代表(美国马萨诸塞州普罗文斯敦)],第三列是每个坐标的值。

那个数据框叫做forRaster

这是我目前所拥有的:

library(raster)
library(leaflet)
library(rgdal)

needsRaster = rasterFromXYZ(forRaster)
plot(needsRaster)
needsImage = image(needsRaster)
needsLeafletRaster = projectRasterForLeaflet(needsImage)

needsMap = leaflet()
addRasterImage(needsMap, needsLeafletRaster)
needsMap

但在projectRasterForLeaflet 调用后我不断收到此错误: Error in raster::projectRaster(x, raster::projectExtent(x, crs = sp::CRS(epsg3857))) : input projection is NA

我发现传单文档并不完全简单,我想知道是否有人提供帮助。如果我需要以任何方式制作不同的栅格,我很乐意这样做。谢谢。

【问题讨论】:

    标签: r leaflet raster


    【解决方案1】:

    我想通了!

    # Made a new data frame with lat, long, and the value
    df = data.frame(value = v, lng = y, lat = x)
    
    #Did this....
    s = SpatialPixelsDataFrame(df[,c('lng', 'lat')], data = df)
    crs(s) = sp::CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
    
    r = raster(s)
    
    # Set up the colors
    val = as.numeric(c(0:max(df$value)))
    pal = colorNumeric(c("yellow", "orange", "red"), val,
                    na.color = "transparent")
    
    # Made the map
    leaflet() %>% addProviderTiles("CartoDB.Positron") %>%
      addRasterImage(r, colors = pal, opacity = 0.5) %>%
      addLegend(pal = pal, values = val, title = "Number of Needs")
    

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-07
      相关资源
      最近更新 更多