Quiero crear varias líneas a partir de puntos dados como sf objects
.
Si tengo varios puntos como
library(sf)
pts <- st_multipoint(matrix(c(10, 10, 15, 20, 30, 30), nrow = 3, byrow = TRUE), dim = "XY")
y estoy usando st_cast
para crear líneas de ellos
lines <- st_cast(pts, "MULTILINESTRING")
Siempre obtendré uno sf object
con múltiples segmentos, pero lo que quiero obtener son varias líneas (dos en este ejemplo).
Respuestas:
Creo que el
sf
paquete necesita saber primero cómo desea crear las líneas a partir de sus puntos. Me refiero a qué par dePOINT
hacer cadaLINESTRING
. En mi ejemplo, eso se definió dentro de lalapply
función. Siga el código reproducible y comentado a continuación, espero que ayude:fuente
sf object
(likematrix(c(10, 10, 30, 30, 15, 20), nrow = 3, byrow = TRUE)
), crea una línea que une la esquina inferior izquierda con la superior derecha en este caso. user30184 mencionó esto en su comentario anterior. ¿Existe la posibilidad de ordenar los puntos por distancia mínima o algo así? ¡Gracias!¡He encontrado una solución! Para todos los demás, que también buscan una respuesta, la forma en que la resolví:
Sin embargo, ¡gracias de nuevo por tu ayuda!
fuente