r语言 - 如何判断一个形状文件(.shp)是否包含平面几何



我试图使用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)或任何其他投影应该工作。

最新更新