繁体   English   中英

R:跨经度(-)180的SpatialPolygon变换坐标系

[英]R: transform coordinate system of SpatialPolygon that crosses longitude (-)180

我用CRS = UTM创建了多边形(请参阅此处 ),我需要将其转换为纬度/经度。 我的某些多边形与日期线交叉,这导致变换创建了一个跨整个地球的多边形。

library(sp)
library(rgeos)

points <- data.frame(x = c(-179.5, 0), y = c(-50, -30))
coordinates(points) <- ~x+y
proj4string(points) <- '+init=epsg:4326'

points_sp <- spTransform(points, CRS('+init=epsg:32621')) # wrong zone, but ignored for example
# expand point to circle
circles <- gBuffer(points_sp, width = 1e+5)
# transform back to WGS84
circles_latlon <- spTransform(circles, CRS(proj4string(points)))

par(mfrow = c(1, 2))
plot(circles, axes = TRUE, main = 'UTM')
plot(circles_latlon, axes = TRUE, main = 'WGS84')

在此处输入图片说明

有分裂多边形的解决方案吗? 还是解决日期变更问题的替代解决方案?

我问了一个类似的问题后才发现这个问题。 @Humpelstielzchen曾建议我使用sf st_wrap_dateline() ,到目前为止它似乎可以正常工作。

暂无
暂无

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

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