我试图使用st_intersection()
命令找到两个多边形之间的相交区域,如下所示:
poly.3 <- st_intersection(poly.1, poly.2)
我得到以下警告:
Warning: attribute variables are assumed to be spatially constant throughout all geometries
although coordinates are longitude/latitude, st_intersection assumes that they are planar
虽然我之前处理的多边形,以确保他们是空间常数(poly.2 <- st_transform(poly.2, st_crs(poly.1))
),我怎么知道如果坐标是平面或不是?
如果我运行st_crs(poly.1)
,我得到以下内容:
Coordinate Reference System:
User input: WGS 84
wkt:
GEOGCRS["WGS 84",
DATUM["World Geodetic System 1984",
ELLIPSOID["WGS 84",6378137,298.257223563,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["latitude",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["longitude",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4326]]
如果不是如果是平面的,我要怎么把它们变成平面呢?非常感谢你的帮助。
编辑:通过之前的谷歌搜索,我发现有人建议使用sf_use_s2(FALSE)
,虽然禁用了警告信息,但似乎并不能解决错误计算十字路口的潜在问题。
你正在寻找这个https://r-spatial.github.io/sf/reference/st_is_longlat.html EPSG:4326是非平面的,只是st_transform(obj, 3857)
或任何其他投影应该工作。