#1 Mon 05 February 2007 15:00
- jonathan
- Participant assidu
- Date d'inscription: 16 May 2006
- Messages: 263
conversion de points 2D en 3D
Bonjour,
Je dispose d'une table de points 2D dont l'altitude est présente dans la table attributaire. J'ai besoin de convertir ces points en points 3D. Il existe la fonction MakeBox3D(<LLB>, <URT>) mais je ne vois pas comment l'utiliser et si elle correspond vraiment à ce que je souhaite faire.
Merci pour votre aide.
Hors ligne
#2 Tue 06 February 2007 04:43
- cedricd
- Participant occasionnel
- Lieu: Dijon
- Date d'inscription: 20 Mar 2006
- Messages: 19
Re: conversion de points 2D en 3D
Bonjour,
Sous PostGis, la fonction MakeBox3D(<LLB>, <URT>) permet la création d'un boite englobante en 3 dimensions. Si l'attente correspond bien à la création de points à partir d'une geometry et d'un attribut altitude, je conseille plutot la fonction PostGis MakePoint(<x>, <y>, [<z>], [<m>])
Ex d'utilisation pour une mise à jour :
UPDATE nom_de_la_table SET geom = MakePoint(geom.x,geom.y,altitude)
Ou "geom" représente le nom de la colonne contenant la geometry (ici de type POINT) et "altitude" le nom de la colonne contenant l'altitude (de type entier ou réel).
Attention, s'assurer que la dimension associée à la table spatiale dans la table geometry_columns est bien "3" pour éviter de générer une erreur lors du lancement de la requête
Hors ligne
#3 Tue 06 February 2007 10:23
- jonathan
- Participant assidu
- Date d'inscription: 16 May 2006
- Messages: 263
Re: conversion de points 2D en 3D
Merci pour ta réponse,
J'ai été un peu vite en besogne et je suis bloqué sur une requête préliminaire.
Code:
select tampon.id, pts_alti.id from tampon, pts_alti where distance((select geometry from pts_alti),tampon.geometry)=0;
Je souhaite lister les points de la table pts_alti contenus dans chaque tampon.
Obtenir une table de type :
tampon.id | pts_alti.id
3 | 5
3 | 6
50 | 10
50 | 11
La requête génère cette erreur :
ERROR: more than one row returned by a subquery used as an expression
État SQL :21000
J'ai essayé avec les prédicats in, any, all sans résultats.
Merci pour votre aide.
Hors ligne
#4 Tue 06 February 2007 11:16
Re: conversion de points 2D en 3D
Bonjour,
Inutile de faire une souos requete :
Code:
select tampon.id, pts_alti.id from tampon, pts_alti where distance(pts_alti.geometry,tampon.geometry)=0;
devrait suffire.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#5 Tue 06 February 2007 11:45
- jonathan
- Participant assidu
- Date d'inscription: 16 May 2006
- Messages: 263
Re: conversion de points 2D en 3D
Merci bien,
Pourquoi faire simple quand on peut faire compliquer (et en plus on peut pas) ?
A bientôt.
Hors ligne
#6 Wed 07 February 2007 09:55
- jonathan
- Participant assidu
- Date d'inscription: 16 May 2006
- Messages: 263
Re: conversion de points 2D en 3D
Bonjour,
Il semble que j'ai obtenu ce que je voulais grace à la requête :
Code:
UPDATE pts_reseau SET geom = MakePoint(X(geom),Y(geom),z);
Cependant je voudrais visualiser cette table et surtout l'exporter. Le logiciel GvSIG permet l'export au format dxf cependant les points ne sont pas en 3D. Je pense que le logiciel lui-même ne fait pas de 3D.
Dans le logiciel Open Jump, les infos wkt, gml ou cl n'indique que 2 coordonnées, donc mes points sont en 2D (dans le logiciel).
Comment savoir si mes points sont réellement en 3D ?
Si oui, l'export pgsl2shp conserve t-il la 3D ?
Je souhaiterai obtenir un fichier dxf ou dwg, éventuellement un fichier texte csv.
Pourriez vous m'orienter sachant que je reste dans le domaine du logiciel libre ?
Merci.
Dernière modification par jonathan (Wed 07 February 2007 10:15)
Hors ligne