我有一个包含多个多边形的shapefile文件和一个带有坐标的数据框。我想将数据框中的每个坐标分配给shapefile中的一个多边形。因此,需要在数据框中添加一列,列名为多边形名称或ID。
这是数据的链接
library(sf)
library(readr)
shape <- read_sf("data/Provinces_v1_2017.shp")
data<- read_csv("data/data.csv")
但是当我尝试加入它们时,我总是会出现错误
pts = st_as_sf(data, coords = c("dec_lon", "dec_lat"), crs= 4326)
st_join(pts, shape)
我尝试了over()
函数和其他技巧,比如st_make_valid()
,但是总是会报错:
Error in s2_geography_from_wkb(x, oriented = oriented, check = check) : Evaluation error: Found 30 features with invalid spherical geometry.
这是最近出现的问题(之前我的代码可以正常工作),但现在我无法使用sf包完成这个任务,总是遇到这个错误。我更新了库以查看是否有帮助,但无法解决。
非常感谢您的帮助。
sf::sf_use_s2(FALSE)
,现在它可以工作了! - yuliaUU