如何计算有多少条道路与多边形相交?

时间:2019-06-02 09:10:46

标签: r

我正在使用“多边形和线”,现在我要计算每个多边形相交的线数。

我可以相交,但是我不知道如何计算相交。

inter <- intersect(district_sp, osm_maj_roads)

district_sp是空间多边形。 osm_maj_roads是空间线对象。

这样,我得到了一个完整的新的空间多边形,但我真正想要的只是一个带有交点数的向量。

2 个答案:

答案 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

enter image description here

答案 1 :(得分:0)

我不明白为什么诺比回答,我很难找到我需要做的事情。 最后,我使用了聚合函数。 roads_agg <-聚合(x = osm_roads [“ osm_id”],通过= polygon_shp,FUN =长度) 这给了我一个向量,行像多边形,其中的值是交点数。 希望这对某人有帮助;)