Pages: 1
- Sujet précédent - [PostGis] Créer une ligne à partir de points et en faire une vue - Sujet suivant
#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 ?
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
Pages: 1
- Sujet précédent - [PostGis] Créer une ligne à partir de points et en faire une vue - Sujet suivant