Как я могу разделить / обрезать многоугольник по строкам в R?

#r #polygon #sf #multilinestring

#r #многоугольник #sf #multilinestring

Вопрос:

Я хочу разделить CO (полигон) на разделы (также полигоны), которые не разделены дорогами (linestrings). То есть я хочу, чтобы участки меньших полигонов были ограничены дорогами или границами штатов и не содержали никаких дорог, которые входят в полигон и выходят из него.

Я смог использовать lwgeom::st_split для создания коллекции геометрии, но я не уверен, поможет ли это мне; Я застрял с этим решением, потому что я не уверен, как извлечь геометрии из коллекции и, например, назначить им уникальные идентификаторы.

Моя конечная цель — убедиться, что мои точки (отдельные данные) не разделены дорогами. Итак, если у вас есть решение для этого, которое может быть более прямым, я тоже весь внимание.

 library(tidyverse)
library(tigris)
library(sf)
library(lwgeom)

co <- states(cb = T) %>% 
  filter(NAME == "Colorado")

roads <- primary_secondary_roads(state = 'Colorado') 

cosplit <- st_split(co,roads) 
  

Кто-нибудь нашел или видел решение этой проблемы?

Ответ №1:

Я думаю, что я понял это … но я определенно хотел бы услышать чьи-либо другие идеи!!!

 cosplitpoly <- cosplit %>% 
  st_collection_extract(c("POLYGON"))