Message posté par : SANTANNA
----------------------------------------
Bonjour,
mea-culpa: Je me suis rendu compte après coup que la fonction geometries_to_array
(
https://docs.qgis.org/testing/en/docs/user_manual/expressions/functions_lis…)
n'est disponible qu'en version dev (soit en 3.28 à partir de vendredi) donc soit
vous attendez avec la 3.28 soit vous faites avec une version osgeo4w nightly. Il y a
peut-être moyen de remplacer par un autre jeu de fonctions mais pourquoi faire simple
quand on peut faire compliqué...
Depuis la calculatrice de champ, sélectionnez le champ <geometry> et appliquez la
formule ci-après (la logique est de décomposer l'entité en une liste de
sommets,d'éditer le z du premier et du dernier puis de recomposer la ligne). EXECUTEZ
SUR UN JEU DE DONNEES TEST D'ABORD!!!
-----------------
Code :
with_variable(
'listesommets',
geometries_to_array( -- on convertit en une liste de points
nodes_to_points(@geometry) -- les sommets de la ligne
),
make_line( -- on recrée la ligne
array_foreach( -- à partir de
@listesommets, -- la liste
make_point( -- des points dont on conserve les x et y
x(@element),
y(@element),
case -- mais modifie le z selon un scénario
when array_find(@listesommets, @element) = 0 then z_amont
when array_find(@listesommets, @element) = array_length(@listesommets)-1 then
z_aval
else coalesce(z(@element), 0)
end
)
)
)
)
-----------------
Il y a certainement d'autres moyens, genre fonction python, SQL mais bon...
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=355975#p355975
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net