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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 03 September 2015 23:29

Lsam
Participant assidu
Date d'inscription: 27 Nov 2013
Messages: 157

[Spatialite] opérations spatiales sur des lignes

Bonjour,

Ça fait pas mal de temps que j'utilise Spatialite avec des couches de points ou de polygones, mais pour la première fois je dois travailler sur des lignes.

Je souhaiterais trouver la fonction pour sélectionner les portions communes entre les lignes de 2 couches. J'ai regardé du côté de ST_SHAREDPATHS mais le résultat de la requête suivante ne renvoie que des données avec des géométries NULL :

Code:

select st_sharedpaths(couche1.geometry,couche2.geometry) from couche1,couche2

Il y a un truc que je dois pas piger. Quelqu'un pourrait m'aider ?

Merci

Lsam

Hors ligne

 

#2 Tue 08 September 2015 17:11

Lsam
Participant assidu
Date d'inscription: 27 Nov 2013
Messages: 157

Re: [Spatialite] opérations spatiales sur des lignes

Personne n'a une petite idée ? Y compris sur PostGIS ?

Hors ligne

 

#3 Wed 09 September 2015 09:01

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: [Spatialite] opérations spatiales sur des lignes

Bonjour,

Rapidement, comme ca: votre requete n'a pas de clause WHERE: normal que la plupart des couples geom1, geom2 ne partagent pas de partie commune, donc que le resultat soit null.

Essayez en rajoutant une clause style "where st_intersects (geom1, geom2)"

Nicolas

Hors ligne

 

#4 Wed 09 September 2015 16:38

Lsam
Participant assidu
Date d'inscription: 27 Nov 2013
Messages: 157

Re: [Spatialite] opérations spatiales sur des lignes

Bonjour,

Merci, effectivement cette clause était indispensable. Vu que mes données provenaient de highways d'OSM, il y avait pas mal d'erreurs de géométrie qui faisaient en plus planter QSpatialite ou Spatialite GUI.

J'ai donc adapté et complété :

Code:

select pi.OGC_FID, st_sharedpaths(pi.GEOMETRY,vo.Geometry) as the_geom from vo, pi where st_intersects(pi.GEOMETRY, vo.Geometry) and ST_IsValid(pi.GEOMETRY) and ST_IsValid(vo.GEOMETRY) group by 1 having the_geom not null

Mais le résultat est incomplet, seuls quelques tronçons communs sont retournés, pas tous. Cf. l'image jointe où le résultat en rouge ne reflète pas bien les segments communs entre les lignes noires et vertes.
[img]http://pix.toile-libre.org/upload/img/1441809441.png[/img]

Dernière modification par Lsam (Wed 09 September 2015 16:39)

Hors ligne

 

Pied de page des forums

Powered by FluxBB