Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

#1 Thu 16 January 2025 11:32

felixdm
Juste Inscrit !
Date d'inscription: 14 Jan 2025
Messages: 4

[postGIS] Segmenter une lineString

Bonjour,

Pour continuer dans ma démarche topologique, je souhaiterais maintenant segmenter une lineString en ajoutant un noeud en fonction de la position d'un point.

ST_Segmentize permet de segmenter une ligne, mais pour des segments qui mesure plus d'une certaine longueur. Hors j'ai besoin que le noeud se créé à un endroit bien défini par la position du point.

Je pense qu'il faudrait passer par :

ST_LineLocatePoint
et
ST_LineInterpolatePoint.

Si vous avez des idées je suis preneur.

Bonne journée à tous

Hors ligne

 

#2 Thu 16 January 2025 11:58

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1168

Re: [postGIS] Segmenter une lineString

Salut,

[EDIT je n'avais pas vu le cas de la derniere ligne qui aurait sans doute fait planté la requête]

très vite fait pour donner une idée

Code:

SELECT
  ST_LineSubstring(
          geom, 
           loc, 
           coalesce(lead(loc) over (order by loc), 1)  --on utilise la window function lead pour prendre la valeur suivante de loc
                                                                         --et on la remplace par 1 quand il s'agit de la derniere ligne (lead renverra null)
          ) 
FROM (
    SELECT 
        lstring.geom, st_linelocatepoint(lstring.geom, point.geom) loc
   FROM lstring
   CROSS JOIN point
   -- on rajoute les couples geom, 0 et geom, 1 pour récupérer les extremités de la linestring
   UNION
   SELECT 
       lstring.geom, 0
   FROM
       lstring 
) sub

Dernière modification par tumasgiu (Thu 16 January 2025 13:45)

Hors ligne

 

#3 Thu 16 January 2025 12:08

felixdm
Juste Inscrit !
Date d'inscription: 14 Jan 2025
Messages: 4

Re: [postGIS] Segmenter une lineString

Belle requête, qu'il faut que je teste.

Je viens d'essayer avec ST_AddPoint, mais il me faut trouver la position de mon point sur la ligne.

Hors ligne

 

Pied de page des forums

Powered by FluxBB