我正在使用“多边形和线”,现在我要计算每个多边形相交的线数。
我可以相交,但是我不知道如何计算相交。
inter <- intersect(district_sp, osm_maj_roads)
district_sp
是空间多边形。 osm_maj_roads
是空间线对象。
这样,我得到了一个完整的新的空间多边形,但我真正想要的只是一个带有交点数的向量。
答案 0 :(得分:1)
使用st_intersects
时是否真的得到了一个新的空间对象?它应该返回一个稀疏索引列表。 st_intersection
应该返回一个新的空间对象。
library(sf)
somePolygons <- st_transform(st_read('/temp/GIS/test/polygons.shp'), 3577)
someLines <- st_transform(st_read('/temp/GIS/test/linestrings.shp'), 3577)
i <- st_intersects(someLines, somePolygons)
print(i)
Sparse geometry binary predicate list of length 4, where the predicate was 'intersects'
1: (empty)
2: 2
3: 1, 3
4: 1, 2, 3
# Get a vector with the number of polygons each line intersects with:
print(sapply(i, length))
[1] 0 1 2 3
答案 1 :(得分:0)
我不明白为什么诺比回答,我很难找到我需要做的事情。 最后,我使用了聚合函数。 roads_agg <-聚合(x = osm_roads [“ osm_id”],通过= polygon_shp,FUN =长度) 这给了我一个向量,行像多边形,其中的值是交点数。 希望这对某人有帮助;)