将多段线组合在一起 sf r

问题描述

我想将多段线组合成不同的组以获得以下输出。我试过 st_intersection,但是输出并不是我所需要的。下面的图片是我想要的。是否有可能是另一种对折线进行分组的方法我有超过 100 个类似的布局,我想要一个脚本而不是手动分组它们。

image

library(sf)

line<-structure(list(Date = structure(c(18748,18628,18748,18628),class = "Date"),geometry = structure(list(structure(c(-92.7111890479999,-92.7109035129999,-92.710760745,34.8362104940001,34.851629401,34.851486633),.Dim = 3:2,class = c("XY","LInesTRING","sfg"
)),structure(c(-92.716328684,-92.716043149,-92.715900381,34.836353262,34.8517721690001,34.851629401),"sfg")),structure(c(-92.720754482,-92.720468947,-92.720326179,34.836781565,34.852200472,34.8520577040001),structure(c(-92.71938013,-92.7178630019999,34.810955731,34.8366664260001),.Dim = c(2L,2L),structure(c(-92.716705345,-92.715188218,34.810772952,34.8364836470001),structure(c(-92.713733152,-92.712216025,34.8105863870001,34.8362970810001),structure(c(-92.711165203,-92.7096880509999,34.8136945000001,34.8362649000001),structure(c(-92.71247089,-92.71366062,34.8214485600001,34.795720637),structure(c(-92.715147784,-92.716337514,34.821597277,34.795869354),structure(c(-92.718122111,-92.719311841,34.821745994,34.796018071),structure(c(-92.720650289,-92.721840019,34.8186054440001,"sfg"))),n_empty = 0L,crs = structure(list(input = "NAD27",wkt = "GEOGCRS[\"NAD27\",\n    DATUM[\"north American Datum 1927\",\n        ELLIPSOID[\"Clarke 1866\",6378206.4,294.978698213898,\n            LENGTHUNIT[\"metre\",1]]],\n    PRIMEM[\"Greenwich\",\n        ANGLEUNIT[\"degree\",0.0174532925199433]],\n    CS[ellipsoidal,2],\n        AXIS[\"latitude\",north,\n            ORDER[1],\n            ANGLEUNIT[\"degree\",\n        AXIS[\"longitude\",east,\n            ORDER[2],\n    ID[\"epsg\",4267]]"),class = "crs"),class = c("sfc_LInesTRING","sfc"),precision = 0,bBox = structure(c(xmin = -92.721840019,ymin = 34.795720637,xmax = -92.7096880509999,ymax = 34.852200472
),class = "bBox"))),row.names = c(NA,-11L),class = c("sf","tbl_df","tbl","data.frame"),sf_column = "geometry",agr = structure(c(Name = NA_integer_,Date = NA_integer_),class = "factor",.Label = c("constant","aggregate","identity")))

polygon<-structure(list(id = 1:4,geometry = structure(list(structure(list(
    structure(c(-92.705514404,-92.706002427,-92.723382411,-92.7230614109999,-92.705514404,34.808968695,34.7945947090001,34.795037693,34.8094416860001,34.808968695),.Dim = c(5L,2L))),"polyGON",structure(list(
    structure(c(-92.704751399,-92.72258842,-92.7143794099999,-92.704751399,34.823067694,34.82346469,34.8235716990001,34.823067694),.Dim = c(6L,structure(list(structure(c(-92.70470541,-92.722344393,-92.70470541,34.8375336820001,34.8379756890001,34.8375336820001),structure(list(structure(c(-92.704415422,-92.722146412,-92.721520395,-92.704415422,34.8526086730001,34.852944676,34.8526086730001),class = c("sfc_polyGON",bBox = structure(c(xmin = -92.723382411,ymin = 34.7945947090001,xmax = -92.704415422,ymax = 34.852944676
),-4L),agr = structure(c(id = NA_integer_),"identity"),class = "factor"),"data.frame"))

st_crs(line) <- "+proj=longlat +datum=wgs84"

st_crs(polygon) <- "+proj=longlat +datum=wgs84"


line_int<-st_intersection(line,polygon)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)