光栅图像在 R 的传单中不能超过 180
Raster image not working beyond 180 in leaflet for R
我试图在传单中绘制新西兰的光栅图,但我遇到了一些问题。我发现多边形和 points/markers 按预期绘制:
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)
虽然我可以旋转光栅并绘制它,但它会拆分光栅并将超过 180 度的部分绘制回 0:
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
的使用是必不可少的。
我试图在传单中绘制新西兰的光栅图,但我遇到了一些问题。我发现多边形和 points/markers 按预期绘制:
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)
虽然我可以旋转光栅并绘制它,但它会拆分光栅并将超过 180 度的部分绘制回 0:
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
的使用是必不可少的。