Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Mon 23 November 2020 17:45

Ricola62
Participant assidu
Date d'inscription: 24 Apr 2012
Messages: 166

ignorer z négatif-postgis

Bonjour,
J'ai une linestring Z sur laquelle je souhaiterai avoir un st_zmin.
cependant cette ligne est le résultat d'une intersection polygone 2D -ligne 3D
et mon zmin est égal à -1000.

st_zmin une box 3D des extrémités il me semble.

Finalement comment récupérer le z minimal d'un point sur ma ligne et ignorer par le même coup -1000?
si vous avez une idée?

Hors ligne

 

#2 Tue 24 November 2020 12:37

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

Re: ignorer z négatif-postgis

Bonjour,

Avec st_dumppoints, vous sortirez les points des lignes, vous pouvez alors tester la valeur Z de chacun (st_Z(geom)) et filtrer sur cette valeur

Nicolas

Hors ligne

 

#3 Tue 24 November 2020 12:41

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

Re: ignorer z négatif-postgis

Par ex:

Code:

with tmp as (
    select 'LINESTRINGZ(0 0 1, 1 1 2, 2 2 3, 3 3 -1000, 4 4 0)'::geometry as geom
), tmp1 as (
    select (st_dumppoints(geom)).geom
    from tmp
) select st_x(geom), st_y(geom), st_z(geom)
from tmp1
where st_z(geom) <> -1000
order by 3;

st_x    st_y    st_z
4    4    0
0    0    1
1    1    2
2    2    3

Nicolas

Hors ligne

 

#4 Thu 26 November 2020 16:34

Ricola62
Participant assidu
Date d'inscription: 24 Apr 2012
Messages: 166

Re: ignorer z négatif-postgis

Nicolas Ribot a écrit:

Par ex:

Code:

with tmp as (
    select 'LINESTRINGZ(0 0 1, 1 1 2, 2 2 3, 3 3 -1000, 4 4 0)'::geometry as geom
), tmp1 as (
    select (st_dumppoints(geom)).geom
    from tmp
) select st_x(geom), st_y(geom), st_z(geom)
from tmp1
where st_z(geom) <> -1000
order by 3;

st_x    st_y    st_z
4    4    0
0    0    1
1    1    2
2    2    3

Nicolas


Merci beaucoup décidément st_dumppoints est mon ami!
cdlt

Hors ligne

 

Pied de page des forums

Powered by FluxBB