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 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

Hors 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

 

Pied de page des forums

Powered by FluxBB