#1 Thu 14 May 2020 18:37
- uterpandragon
- Juste Inscrit !
- Date d'inscription: 14 May 2020
- Messages: 8
Sélection PGSQL/Postgis
Bonjour,
Débutant sous PGSQL/Postgis, je cherche à sélectionner des communes traversées par des routes.
J'ai donc essayé ceci :
Code:
SELECT st_intersection(communes.geom, routes.geom) FROM public.communes, public.routes;
Cela me renvoie une liste de géométrie, par ailleurs plus importante que je ne devrais avoir de communes sélectionnées.
Je souhaiterais avoir la liste des communes avec leur nom et pas une colonne avec la géométrie en hexadécimale apparemment.
Comment m'y prendre svp ?
Merci par avance, Cordialement.
Hors ligne
#2 Thu 14 May 2020 18:50
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Sélection PGSQL/Postgis
Bonjour,
Je vous invite a vous familiariser avec Postgis (https://postgis.net/docs/manual-2.5/) et aussi peut-être avec le SQL.
Pour avoir le nom des communes, il faut le demander dans la partie SELECT (= liste de colonnes que vous voulez obtenir)
Vous ne voulez pas l'intersection, mais repondre oui quand route et commune intersectent: il faut le faire dans le WHERE (ou le JOIN) pour filtrer les objets en se basant sur st_intersects (qui renvoie vrai si deux objets s'intersectent, st_intersection renvoyant la géométrie représentant l'intersection).
Comme il y aura plusieurs routes qui traversent une commune, il faudra faire un distinct ou group by pour avoir une liste de communes sans doublons.
par ex:
Code:
select distinct c.nom from communes c join routes r on st_intersects(c.geom, r.geom);
Nico
En ligne
#3 Fri 15 May 2020 08:31
- uterpandragon
- Juste Inscrit !
- Date d'inscription: 14 May 2020
- Messages: 8
Re: Sélection PGSQL/Postgis
Bonjour,
Merci pour votre r?ponse.
J'avais test? une requ?te avec la m?me structure que la v?tre mais cela ne me renvoyait que false ou true alors que je voulais le nom.
Mes recherches sur internet m'ont conduites ? tester celle post?e.
Pour la familiarisation avec le SQL, c'est effectivement ce que je fais, mais il faut bien commencer un jour :-)
Dernière modification par uterpandragon (Fri 15 May 2020 08:32)
Hors ligne