Message posté par : lejedi76
----------------------------------------
-----------------
ODJAC33 écrit :
Je confirme Lejedi76 ce code assez complexe pour moi (j'avoue à avoir du mal à le
comprendre ...) fonctionne parfaitement. Magique !!!
Un grand merci.
-----------------
Je vais le détailler cela servira peut-être à d'autres :
-----------------
Code :
format('LINESTRING(%1)', 'texte')
--> renverra LINESTRING(texte)
array_to_string([0.86000 45.798889 ,0.68500 45.633056, ... ,0.86000 45.798889], '
# ')
--> renverra une chaine de caractère séparée par #
--> 0.86000 45.798889 # 0.68500 45.633056 # ... # 0.86000 45.798889
--> dans la formule le séparateur est ' ,' (blanc, virgule)
string_to_array permet de construire un tableau à partir d'un caractère
--> ici la fonction le construit à partir du caractère @
au préalable dans la formule le saut à la ligne est remplacé par @,
on aurait pu tout simplement construire le tableau en prenant comme séparateur le saut
à la ligne (\n)
--> on obtient donc [45.798889 .86 , 45.633056 .6850, ..., 45.798889 0.86 ]
array_foreach permet de boucler et de faire un traitement sur chaque élément du
tableau
à savoir 45.798889 .86, puis 45.633056 .6850, ... et enfin 45.798889 0.86
et de renvoyer le traitement sous forme de tableau
par exemple
array_foreach([45.798889 .86 , 45.633056 .6850, ..., 45.798889 0.86 ], '#'||
@element) --> [#45.798889 .86 , #45.633056 .6850, ..., #45.798889 0.86 ]
@element renvoie à chacun des éléments
--> dans la formule on utilise la formule qui permet de switcher les coordonnées et
d'ajouter le 0 devant la décimiale quand c'est nécessaire
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=320745#p320745
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
----------------------------------------
Message précédent posté par ODJAC33 le 03/05/19 14:39
Je confirme Lejedi76 ce code assez complexe pour moi (j'avoue à avoir du mal à le
comprendre ...) fonctionne parfaitement. Magique !!!
Un grand merci.
----------------------------------------
Message précédent posté par ODJAC33 le 03/05/19 12:56
Merci de vos réponses, Vincent, l'imbrication des manipulations a bien fonctionné.
Le code utilisé était celui proposé par Sylvain
right( "mon_champs" , length( "mon_champs" )-strpos(
"mon_champs" ,',')) || ',' || left( "mon_champs" ,
strpos( "mon_champs" ,',')-1)
Lejedi76, j'ai essayé votre code, il a l'air de bien fonctionner, un grand merci
également.
----------------------------------------
Message précédent posté par carteq le 02/05/19 15:37
[supprimé]
----------------------------------------
--
Association GeoRezo - le portail géomatique
https://georezo.net