繁体   English   中英

光栅图像在R的传单中无法超过180

[英]Raster image not working beyond 180 in leaflet for R

我正在尝试在传单中为新西兰绘制栅格,但出现了一些问题。 我发现多边形和点/标记按预期绘制:

library(raster)
library(leaflet)
library(dplyr)
library(sp)

p1 <- SpatialPolygons(list(Polygons(list(Polygon(cbind(x = c(165, 165, 185, 185, 165), y = c(-50, -31, -31, -50, -50)))), 1)), proj4string=CRS("+init=epsg:4326"))
p2 <- data.frame(lng = runif(100, 165, 185), lat = runif(100, -50, -31))

leaflet() %>% 
    addTiles() %>% 
    addPolygons(data = p1) %>% 
    addMarkers(lat = p2$lat, lng = p2$lng)

最大经度为180的栅格将可以很好地绘制:

r <- raster(xmn = 165, xmx = 180, ymn = -50, ymx = -31, crs = "+init=epsg:4326", nrows = 50, ncols = 50)
r[] <- rnorm(ncell(r))
leaflet() %>% addTiles() %>% addRasterImage(r, opacity = 0.5)

但是覆盖整个新西兰的经度超过180的栅格无法正确绘制:

r <- raster(xmn = 165, xmx = 185, ymn = -50, ymx = -31, crs = "+init=epsg:4326", nrows = 50, ncols = 50)
r[] <- rnorm(ncell(r))
leaflet() %>% addTiles() %>% addRasterImage(r, opacity = 0.5)

虽然我可以旋转栅格并进行绘制,但它会拆分栅格并在0处将超过180的部分绘图:

r <- raster(xmn = 165, xmx = 185, ymn = -50, ymx = -31, crs = "+init=epsg:4326", nrows = 50, ncols = 50)
r[] <- rnorm(ncell(r))
leaflet() %>% addTiles() %>% addRasterImage(rotate(r), opacity = 0.5)

我想知道是否还有其他人遇到过此问题,如果可以,该如何解决?

似乎已在传单的最新更新中对它进行了排序。 现在,以下各项将按预期工作:

library(raster)
library(leaflet)

r <- raster(xmn = 165, xmx = 185, ymn = -50, ymx = -31, 
            crs = "+init=epsg:4326", nrows = 100, ncols = 100)
r[] <- rnorm(ncell(r))

leaflet() %>% addTiles() %>% addRasterImage(rotate(r), opacity = 0.5)

请注意, rotate是必不可少的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM