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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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

 

Pied de page des forums

Powered by FluxBB