Je veux créer plusieurs lignes à partir de points donnés en tant que sf objects
.
Si j'ai un certain nombre de points
library(sf)
pts <- st_multipoint(matrix(c(10, 10, 15, 20, 30, 30), nrow = 3, byrow = TRUE), dim = "XY")
et j'utilise st_cast
pour en créer des lignes
lines <- st_cast(pts, "MULTILINESTRING")
J'en obtiendrai toujours un sf object
avec plusieurs segments, mais ce que je veux obtenir, c'est plusieurs lignes (deux dans cet exemple).
Réponses:
Je pense que le
sf
package doit d'abord savoir comment vous voulez créer les lignes à partir de vos points. Je veux dire quelle paire dePOINT
faire chaqueLINESTRING
. Dans mon exemple, cela a été défini à l'intérieur de lalapply
fonction. Suivez le code reproductible et commenté ci-dessous, j'espère que cela vous aidera:la source
sf object
(commematrix(c(10, 10, 30, 30, 15, 20), nrow = 3, byrow = TRUE)
), il crée une ligne qui relie le coin inférieur gauche au point supérieur droit dans ce cas. user30184 l'a mentionné dans son commentaire ci-dessus. Y a-t-il une possibilité de trier les points par distance minimale ou quelque chose comme ça? Merci!J'ai trouvé une solution! Pour tous les autres, qui cherchent également une réponse, la façon dont je l'ai résolu:
Néanmoins, merci encore pour votre aide!
la source