library(tidyverse)
library(tigris)
library(sf)
santacruz <- tracts("CA", "Santa Cruz")
coords_sf <- locations %>% st_as_sf(coords = c("Longitude", "Latitude"), crs=4269)
这应该有相同的 CRS,但是当我尝试时
st_intersects(coords_sf, santacruz)
我明白了
Error: st_crs(x) == st_crs(y) is not TRUE
然后我尝试了
st_set_crs(santacruz, 4269)
st_set_crs(coords_sf, 4269)
st_transform(santacruz, 4269)
st_transform(coords_sf, 4269)
而且它不起作用。我也试过了
st_transform(santacruz, crs = "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs")
st_transform(coords_sf, crs = "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs")
无论我尝试如何设置 CRS 并在尝试时对其进行转换
st_intersects(coords_sf, santacruz)
我明白了
Error: st_crs(x) == st_crs(y) is not TRUE
此时我无法判断是设置 CRS 还是转换或 st_intersects
函数有问题。谢谢,
最佳答案
st_set_crs(santacruz, 4269)
设置返回对象的 CRS,但不替换 santacruz
。您需要保存它:
santacruz <- st_set_crs(santacruz, 4269)
或者做
st_crs(santacruz) <- 4269
取代 CRS。
关于r - st_crs(x) == st_crs(y) 的 st_intersects 错误不是 TRUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49141192/