library(tidyverse)
library(tigris)
library(sf)
santacruz <- tracts("CA", "Santa Cruz")
coords_sf <- locations %>% st_as_sf(coords = c("Longitude", "Latitude"), crs=4269)
Run Code Online (Sandbox Code Playgroud)
这应该有相同的 CRS,但是当我尝试时
st_intersects(coords_sf, santacruz)
Run Code Online (Sandbox Code Playgroud)
我明白了
错误:st_crs(x) == st_crs(y) 不为 TRUE
然后我尝试了
st_set_crs(santacruz, 4269)
st_set_crs(coords_sf, 4269)
st_transform(santacruz, 4269)
st_transform(coords_sf, 4269)
Run Code Online (Sandbox Code Playgroud)
但它不起作用。我也尝试过
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")
Run Code Online (Sandbox Code Playgroud)
无论我尝试设置 CRS 并在尝试时对其进行转换
st_intersects(coords_sf, santacruz)
Run Code Online (Sandbox Code Playgroud)
我明白了
错误:st_crs(x) == st_crs(y) 不为 TRUE
此时我无法判断是否是设置 CRS 或转换或st_intersects功能有问题。谢谢,
st_set_crs(santacruz, 4269)
Run Code Online (Sandbox Code Playgroud)
设置返回对象的 CRS,但不替换santacruz. 您需要保存它:
santacruz <- st_set_crs(santacruz, 4269)
Run Code Online (Sandbox Code Playgroud)
或者做
st_crs(santacruz) <- 4269
Run Code Online (Sandbox Code Playgroud)
取代 CRS。
| 归档时间: |
|
| 查看次数: |
14690 次 |
| 最近记录: |