Créer un champ géométrie ligne sur postgreSQL-GIS
damenounou
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
damenounou Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
damenounou Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'essaye de créer une ligne à partir de coordonnées X et Y dans un champ d'une table.
Voilà ce que j'ai essayé mais qui ne marche malheureusement pas :
1- Création d'une colonne X et d'une Y pour le point de départ de la ligne
2- Création d'une colonne X et Y pour le point de fin de la ligne
3- Création de deux colonnes géométrie pour le point de départ et de fin à partir des coordonnées X et Y
requête lancée et qui marche :
UPDATE "AERIEN"."LA"
SET "Point_deb"=ST_MakePoint ("X_deb","Y_deb",27564);
UPDATE "AERIEN"."LA"
SET "Point_fin"=ST_MakePoint ("X_fin","Y_fin",27564);
4- Création d'une colonne géométrie pour la ligne partant du point de début au point de fin.
Et là, c'est le drame !! =(
UPDATE "AERIEN"."LA"
SET "Ligne"=ST_MakeLine ("Point_deb","Point_fin",27564);
Apparemment la fonction ST_MakeLine n'est pas reconnue... peut-être que je l'utilise mal...
Ainsi ma question est : comment créer une ligne sur PostgreSQL-PostGIS ?
Merci pour votre aide,
Eva
J'essaye de créer une ligne à partir de coordonnées X et Y dans un champ d'une table.
Voilà ce que j'ai essayé mais qui ne marche malheureusement pas :
1- Création d'une colonne X et d'une Y pour le point de départ de la ligne
2- Création d'une colonne X et Y pour le point de fin de la ligne
3- Création de deux colonnes géométrie pour le point de départ et de fin à partir des coordonnées X et Y
requête lancée et qui marche :
UPDATE "AERIEN"."LA"
SET "Point_deb"=ST_MakePoint ("X_deb","Y_deb",27564);
UPDATE "AERIEN"."LA"
SET "Point_fin"=ST_MakePoint ("X_fin","Y_fin",27564);
4- Création d'une colonne géométrie pour la ligne partant du point de début au point de fin.
Et là, c'est le drame !! =(
UPDATE "AERIEN"."LA"
SET "Ligne"=ST_MakeLine ("Point_deb","Point_fin",27564);
Apparemment la fonction ST_MakeLine n'est pas reconnue... peut-être que je l'utilise mal...
Ainsi ma question est : comment créer une ligne sur PostgreSQL-PostGIS ?
Merci pour votre aide,
Eva
A voir également:
- Créer un champ géométrie ligne sur postgreSQL-GIS
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte instagram sur google - Guide
- Créer un lien pour partager des photos - Guide
- Créer un compte gmail - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, "qui ne marche malheureusement pas", "c'est le drame": message d'erreur (sans doute secret, que tu ne peux pas partager), ou comportement inattendu (que tu ne peux pas décrire)?
dans quel but passes-tu un troisième paramètre à ST_MakeLine?
dans quel but passes-tu un troisième paramètre à ST_MakeLine?
Voici le message d'erreur retourné à la suite de la requête UPDATE "AERIEN"."LA"
SET "Ligne"=ST_MakeLine ("Point_deb","Point_fin",27564);
ERROR: ERREUR: la fonction st_makeline(geometry, geometry, integer) n'existe pas
LINE 2: SET "Ligne"=ST_MakeLine ("Point_deb","Point_fin",27564);
^
HINT: Aucune fonction ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
SQL state: 42883
Character: 34
Mon objectif est de dessiner des lignes à partir de mes points pour que ma couche soit de type ligne lors de son insertion dans ma carte QGIS. Mais je ne sais pas comment faire sans passer par le dessin des points ?
Merci pour votre aide,
Eva
Les points crée avant s'affiche en tant que point (normal) et moi je veux une ligne au final.
En fait, la fonction ST_MakeLine reçoit en entrée que deux arguments et moi je lui en donnée trois avec le SRID mais il n'est pas utile car on s'appui sur des points qui ont déjà un SRID.
Donc voici la requête finale :
UPDATE "AERIEN"."LA"
SET "Ligne"=ST_MakeLine ("Point_deb","Point_fin");
Maintenant, j'espère que ça va bien me faire une ligne et au bon endroit.