Pages: 1
- Sujet précédent - intersection polyligne / polygone excluant le contour du polygone - Sujet suivant
#1 Wed 04 June 2014 11:47
- Géronimo
- Participant occasionnel
- Date d'inscription: 21 May 2014
- Messages: 14
intersection polyligne / polygone excluant le contour du polygone
Bonjour à tous,
J'ai un dernier problème à résoudre et j'en aurai fini avec mon projet, tout du moins pour les requêtes SQL sur postgresql.
J'aimerais savoir s'il existe une fonction pour une requête SQL qui permette d'intersecter un polygone avec une polyligne en excluant les polylignes qui toucheraient exclusivement le contour du polygone.
Pour être clair, j'ai un cours d'eau (donc une polyligne) qui traverse plusieurs zones de formation à silex qui se touchent (donc des polygones). Ce cours d'eau est tronçonné en fonction de ces zones de formation à silex. C'est-à-dire, que chaque tronçon est délimité par chaque polygone des zones de formation à silex. Ainsi, si j'effectue une intersection simple de type ST_Intersect, l'identifiant de la zone de formation à silex va être renseigné à la fois pour le tronçon qui la traverse, mais aussi pour les 2 tronçons qui sont en amont et en aval du polygone. Du coup, si j'effectuais une intersection qui exclue le contour du polygone de la zone de formation à silex, cette zone ne donnerait plus son identifiant qu'au tronçon qui la traverse.
J'espère avoir été assez clair. Je vous remercie de votre attention.
Hors ligne
#2 Wed 04 June 2014 12:25
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: intersection polyligne / polygone excluant le contour du polygone
Bonjour,
Oui: avec PostGIS, il est possible de décrire toutes les relations spatiales entre objets, soit par des fonctions directes (st_intersects, st_touches, st_overlaps, etc.) soit avec la fonction générique st_relate, qui permet d'exprimer les relations spatiales attendues entre deux objets géo.
Dans votre cas, il faut utiliser deux fonctions: st_intersects et st_touches:
select st_intersection(line.geom, poly.geom)
from line, poly
where st_intersects (line.geom, poly.geom)
and not st_touches(line.geom, poly.geom);
Nicolas
En ligne
Pages: 1
- Sujet précédent - intersection polyligne / polygone excluant le contour du polygone - Sujet suivant