如何相交两个 sf 对象?
How to intersect two sf objects?
我从这里下载了两个 .gdb 文件:
我将两个文件夹都保存到数据文件夹中并解压缩了它们
library(sf)
lots <- st_read("data/Lots_GDB/lots.gdb",layer= "lot")
lots <-st_transform(st_cast(lots , "MULTIPOLYGON"), "+proj=longlat +datum=WGS84")
buildings <- st_read("data/buildings_gdb/buildings.gdb",layer= "buildings")
buildings <-st_transform(st_cast(buildings , "MULTIPOLYGON"), "+proj=longlat +datum=WGS84") %>% select( FACILITYID,FACILITY_TYPE, STATUS)
我想获得的东西:
- 我只想保留对象地块中没有建筑物对象多边形的多边形(即我想要没有建筑物的地块)
- 同样的事情,但也只得到里面有建筑物的地段。
我用st_intersection()
重叠了两个对象
lots_building<- st_intersection(lots, buildings)
然后绘制在地图上:
ggmap() +
geom_sf(data= lots_building, alpha=0.9, inherit.aes = FALSE)
但不知何故 lots_building
似乎不是完成任务的正确特征。
我尝试了很多方法,但这是唯一有效的方法:
diffPoly <-lots[lengths(st_intersects(lots,buildings))==0,]
我从这里下载了两个 .gdb 文件:
我将两个文件夹都保存到数据文件夹中并解压缩了它们
library(sf)
lots <- st_read("data/Lots_GDB/lots.gdb",layer= "lot")
lots <-st_transform(st_cast(lots , "MULTIPOLYGON"), "+proj=longlat +datum=WGS84")
buildings <- st_read("data/buildings_gdb/buildings.gdb",layer= "buildings")
buildings <-st_transform(st_cast(buildings , "MULTIPOLYGON"), "+proj=longlat +datum=WGS84") %>% select( FACILITYID,FACILITY_TYPE, STATUS)
我想获得的东西:
- 我只想保留对象地块中没有建筑物对象多边形的多边形(即我想要没有建筑物的地块)
- 同样的事情,但也只得到里面有建筑物的地段。
我用st_intersection()
重叠了两个对象
lots_building<- st_intersection(lots, buildings)
然后绘制在地图上:
ggmap() +
geom_sf(data= lots_building, alpha=0.9, inherit.aes = FALSE)
但不知何故 lots_building
似乎不是完成任务的正确特征。
我尝试了很多方法,但这是唯一有效的方法:
diffPoly <-lots[lengths(st_intersects(lots,buildings))==0,]