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 Mon 02 September 2013 15:20

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

[PostGis] Créer une ligne à partir de points et en faire une vue

Bonjour,

Je dispose d'une couche Ouvrages contenant des points.
Dans cette couche, je dispose de 2 champs xmil et ymil, qui correspondent à des coordonnées d'autres points.

J'aimerai créer une couche linéaire reliant les coordonnées x et y réelles de l'ouvrage (donc en utilisant la géométrie propre de la couche) et les coordonnées présentes dans les champs x et y.

Tout ceci dans une vue, est-ce possible ?
J'ai commencé comme çà :

Code:

CREATE OR REPLACE VIEW ouv.vw_l_dip AS
    SELECT ST_MakeLine(ST_MakePoint(ST_X(geom),ST_Y(geom)), ST_SetSRID(ST_MakePoint(xmil, ymil),2154))
    FROM ouv.p_ouv

Merci de votre aide

Bonne journée

Hors ligne

 

#2 Mon 02 September 2013 15:59

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

Re: [PostGis] Créer une ligne à partir de points et en faire une vue

Bonjour,

Et ca donne quoi, du coup ? wink

La requete a l'air d'etre correcte.

Nicolas

Hors ligne

 

#3 Mon 02 September 2013 16:39

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: [PostGis] Créer une ligne à partir de points et en faire une vue

La requête s’exécute bien en effet mais une fois dans QGis, en accédant à ma base pour visualiser la vue, je dois bizarrement choisir un type de géométrie (LINESTRING) et le SRID (2154).
Si je choisis tout ça, et que je clique sur ajouter, j'obtiens un message d'erreur me disant que la couche n'est pas valide.

Je travaille sur la version de dev (qui date de jeudi dernier).

Merci

Hors ligne

 

#4 Mon 02 September 2013 17:08

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

Re: [PostGis] Créer une ligne à partir de points et en faire une vue

Essayez d'ajouter une colonne d'identifiant dans la vue (style id ou gid de la table mere) et vous pouvez peut etre aussi forcer le type de la géometrie:

Code:

CREATE OR REPLACE VIEW ouv.vw_l_dip AS
    SELECT gid, ST_MakeLine(ST_MakePoint(ST_X(geom),ST_Y(geom)), ST_SetSRID(ST_MakePoint(xmil, ymil),2154))::geometry(Linestring, 2154)
    FROM ouv.p_ouv

Nicolas

Hors ligne

 

#5 Mon 02 September 2013 17:25

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: [PostGis] Créer une ligne à partir de points et en faire une vue

J'ai testé mais une nouvelle erreur apparait :
"Operation on mixed SRID geometries"

Je ne vois pas comment je peux obtenir ce type d'erreur alors qu'on travaille sur la même couche, et les xmil et ymil sont bien en L93.

Hors ligne

 

#6 Mon 02 September 2013 17:37

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

Re: [PostGis] Créer une ligne à partir de points et en faire une vue

Peut etre le fait qu'un des points de la ligne n'ait pas de SRID ?

Un setSRID sur la ligne doit suffire:

Code:

CREATE OR REPLACE VIEW ouv.vw_l_dip AS
    SELECT gid, ST_SetSRID(ST_MakeLine(ST_MakePoint(ST_X(geom),ST_Y(geom)), ST_MakePoint(xmil, ymil)), 2154)::geometry(Linestring, 2154)
    FROM ouv.p_ouv

Nicolas

Hors ligne

 

#7 Mon 02 September 2013 17:58

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: [PostGis] Créer une ligne à partir de points et en faire une vue

Parfait, ça fonctionne.

Merci beaucoup.

Bonne soirée

Hors ligne

 

Pied de page des forums

Powered by FluxBB