#31 Tue 30 July 2019 14:21
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: calcul surface parcelle
Si, PgAdmin 4 fonctionne en client/serveur.
La fenĂȘtre ouverte dans firefox est le client,
mais pgAdmin4.exe est un mini-serveur HTTP
qui en est complÚtement découplé.
Hors ligne
#32 Tue 30 July 2019 14:45
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
J'ai fermĂ© mon serveur, rouvert, lancĂ© la requĂȘte.
RequĂȘte OK mais je n'ai pas accĂšs Ă la vue.
Hors ligne
#33 Tue 30 July 2019 14:54
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
" Si, PgAdmin 4 fonctionne en client/serveur.
La fenĂȘtre ouverte dans firefox est le client,
mais pgAdmin4.exe est un mini-serveur HTTP
qui en est complÚtement découplé."
--> Alors comment fermer le mini-serveur HTTP?
Hors ligne
#34 Tue 30 July 2019 17:01
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: calcul surface parcelle
Avec une des deux méthodes exposées.
Pour votre problÚme, si vous en avez la possibilité
testez en vous connectant en tant que super utilisateur.
Hors ligne
#35 Tue 30 July 2019 22:31
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 3139
- Site web
Re: calcul surface parcelle
Il faut lire les manuels et autres guides ou tutoriaux.
Sinon et bien que ce ne soit pour moi ni lâheure ni ma « tasse de thé », je pense que dâautres que moi suggĂ©reront de suivre une formation continue.
« L'Ătat est dĂ©sormais quasi dĂ©liquescent. » (JosĂ© Cohen-Aknine, ingĂ©nieur X-Ponts, IGPEF, dans DĂ©liquescence et renaissance de l'Ătat.)
Hors ligne
#36 Wed 31 July 2019 10:37
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
C'est résolu. Je ne sais pas comment. J'ai redémarré le serveur, sans résultat. Par contre, lorsque je suis allé dans l'application Vmap, cela a fonctionné, puis je suis retourné dans Pgadmin, et cela a aussi fonctionné. Bizarre. Mais ça marche, c'est l'essentiel.
Merci.
Hors ligne
#37 Mon 05 August 2019 09:04
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
Bonjour pour cette nouvelle semaine. Les superficies sont en point avant la décimale. Comment faire pour les changer en virgule (par ex de 148.5 à 148,5)?
Hors ligne
#38 Mon 05 August 2019 09:56
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: calcul surface parcelle
Salut,
Code:
SELECT replace(mon_reel::text, '.', ',');
Dernière modification par tumasgiu (Mon 05 August 2019 10:14)
Hors ligne
#39 Mon 05 August 2019 10:27
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
Le champ superficie est crée et calculé à cette occasion :
trunc(st_area(parcelle.geom)::numeric, 2)::text AS superficie,
Comment y intégrer replace(mon_reel::text, '.', ',');,
Hors ligne
#40 Mon 05 August 2019 10:41
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: calcul surface parcelle
Je vous invite Ă essayer de trouver par vous mĂȘme
la réponse n'est pas trÚs compliquée.
Hors ligne
#41 Mon 05 August 2019 10:53
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
Désolé, mais je ne vois pas...
Hors ligne
#42 Mon 05 August 2019 11:01
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: calcul surface parcelle
Dans ce cas, je vous invite Ă vous mettre
à niveau si vous étes amené à travailler réguliÚrement
sur des bases de données et plus globalement dans
les SIG.
Pour vous aider :
la fonction replace prends trois paramĂštres
(les éléments séparés par des virgules dans les parenthÚses) :
le premier est le texte sur lequel on veut travailler,
le second est le texte qu'on veut remplacer dans le premier parametre,
le troisiĂšme est le texte qu'on veut utiliser comme remplacement.
Votre premiĂšre expression (qui commence par trunc et qui finit
par ::text ) renvoie donc un texte représentant votre superficie,
mais avec le mauvais séparateur de décimale.
les deux derniers éléments de votre expression (AS superficie)
est ce qu'on appelle un alias, cela permet de (re)nommer une colonne
ou une expression dans une requĂȘte select.
Hors ligne
#43 Mon 05 August 2019 11:13
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
Mais je comprends ces fonctions
- trunc(st_area(parcelle.geom)::numeric, 2)::text AS superficie --> Cela permet de créer le champ superficie et de le calculer avec 2 chiffres aprÚs la virgule
- replace(mon_reel::text, '.', ',') --> cela permet de remplacer le point par la virgule.
--> Mais je ne sais pas comment faire ces deux fonctions en une seule ligne
Hors ligne
#44 Mon 05 August 2019 11:27
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: calcul surface parcelle
Si vous ne savez pas comment faire,
soit vous essayez de comprendre, mon message précédent est suffisant,
soit vous n'avez qu'Ă testez toutes les combinaisons possibles.
Hors ligne
#45 Mon 05 August 2019 11:42
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
Je n'attends pas que vous me donniez la réponse. J'ai testé plein de combinaisons possibles, sans résultat.
Hors ligne
#46 Mon 05 August 2019 11:54
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
Voici un exemple :
replace (trunc(st_area(parcelle.geom)::numeric, 2))::text ('.', ',') AS superficie,
Pouvez-vous me dire si c'est chaud ou si c'est froid...
Hors ligne
#47 Mon 05 August 2019 12:05
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: calcul surface parcelle
chaud.
Vous vous trompez juste dans les parentheses.
Pour rappel, une fonction, dans postgreSQL et dans
de nombreux autres langages prend la forme suivante :
fonction(param1, param2,..., paramN)
Un paramĂštre peut ĂȘtre une valeur littĂ©rale, c'est Ă dire
que vous spĂ©cifiez vous mĂȘme la valeur.
Il peut aussi ĂȘtre un nom de colonne, et
dans ce cas la valeur du paramétre est la valeur de la colonne nommée,
pour chaque ligne de votre requĂȘte.
Enfin, il peut aussi ĂȘtre une expression plus complexe,
comme une opĂ©ration mathĂ©matique, une autre fonction, ou mĂȘme une sous requĂȘte.
Dans ce cas le paramÚtre prends la valeur du résultat de l'expression.
Un exemple :
j'ai deux fonction f(x) et g(x) : je peux écrire f( g(x) )
PostgreSQL va d'abord calculer le résultat de la fonction g,
puis va l'utiliser comme paramĂštre de la fonction f.
En mathématiques, on dit que l'on a composé g par f.
Dernière modification par tumasgiu (Mon 05 August 2019 12:10)
Hors ligne
#48 Mon 05 August 2019 14:02
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
le ('.', ',') est bien placé?
Hors ligne
#49 Mon 05 August 2019 14:21
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: calcul surface parcelle
Non,
par rapport Ă mon exemple :
la fonction g c'est
trunc(st_area(parcelle.geom)::numeric, 2)::text
la fonction f c'est
replace(x, '.', ',')
Je vous ai dit que le premier paramĂštre de la fonction
replace ,ici symbolisé par un x,
est le texte dans lequel on veut remplacer des caractĂšres.
Donc la composée est ?
Hors ligne
#50 Mon 05 August 2019 14:34
- francis_31
- Participant actif
- Date d'inscription: 24 Nov 2010
- Messages: 92
Re: calcul surface parcelle
Bonjour,
je pense que ceci devrait vous aider:
replace(trunc(st_area(parcelle.geom)::numeric, 2)::text,'.', ',') AS superficie,
Je peux vous conseiller pour construire les requĂȘtes SQL de passer par Notepad ++.
Vous copiez la requĂȘte que vous souhaitez tester, vous allez dans Langage et vous choisissez SQL.
Quand vous déplacerez le curseur au niveau d'une parenthÚse vous allez voir ou la parenthÚse qui s'ouvre se ferme plus loin dans votre syntaxe.
Moi ça m'aide pour les requĂȘtes assez longues Ă Ă©crire.
Bon courage.
Hors ligne
#51 Mon 05 August 2019 14:34
- francis_31
- Participant actif
- Date d'inscription: 24 Nov 2010
- Messages: 92
Re: calcul surface parcelle
Bonjour,
je pense que ceci devrait vous aider:
replace(trunc(st_area(parcelle.geom)::numeric, 2)::text,'.', ',') AS superficie,
Je peux vous conseiller pour construire les requĂȘtes SQL de passer par Notepad ++.
Vous copiez la requĂȘte que vous souhaitez tester, vous allez dans Langage et vous choisissez SQL.
Quand vous déplacerez le curseur au niveau d'une parenthÚse vous allez voir ou la parenthÚse qui s'ouvre se ferme plus loin dans votre syntaxe.
Moi ça m'aide pour les requĂȘtes assez longues Ă Ă©crire.
Bon courage.
Hors ligne
#52 Mon 05 August 2019 14:48
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
Dans votre exemple, je pense que la composée est g.
C'était donc une histoire de parenthÚses et de virgule.
Merci francis_31. Je pense que je vais utiliser Notepad ++.
Donc cela fonctionne.
Prochaine étape, prochain problÚme !
Je sélectionne des parcelles dans Vmap avec le champ superficie au format virgule. J'exporte pour ouvrir dans excel. Mais excel considÚre ce champ comme du texte. Je dois donc convertir ces données en standard pour pouvoir faire la somme des superficies.
Peut-on régler ça dans postgis?
Hors ligne
#53 Mon 05 August 2019 14:51
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
Dans votre exemple, je pense que la composée est g.
C'était donc une histoire de parenthÚses et de virgule.
Merci francis_31. Je pense que je vais utiliser Notepad ++.
Donc cela fonctionne.
Prochaine étape, prochain problÚme !
Je sélectionne des parcelles dans Vmap avec le champ superficie au format virgule. J'exporte pour ouvrir dans excel. Mais excel considÚre ce champ comme du texte. Je dois donc convertir ces données en standard pour pouvoir faire la somme des superficies.
Peut-on régler ça dans postgis?
Hors ligne
#54 Mon 05 August 2019 15:03
- francis_31
- Participant actif
- Date d'inscription: 24 Nov 2010
- Messages: 92
Re: calcul surface parcelle
Ă priori d'aprĂšs la requĂȘte l'attribut 'superficie' est de type texte quand on affiche la vue dans pgadmin ?
Si c'est le cas pourquoi pas tenter un : replace(trunc(st_area(parcelle.geom)::numeric, 2)::text,'.', ',')::numeric AS superficie,
Mais je ne suis pas du tout sur que ça fonctionne (je ne sais pas si postgresql accepte d'interprĂ©ter la virgule comme un sĂ©parateur lorsque l'attribut doit ĂȘtre considĂ©rĂ© comme un nombre et non du texte ou bien qu'il change la virgule pour le point au moment du retypage).
Il faut ouvrir la vue dans pgadmin et vérifier que l'attribut 'superficie' est bien typé en numeric et plus en texte.
Si ça fonctionne, il faut à nouveau tester l'export vmap et voir ce que ça donne sous excel (je ne sais pas si vmap gÚre de conserver les typages des champs).
AprÚs, je ne sais pas si c'est pour des utilisations fréquentes de personnes qui ne connaissent pas assez excel mais un clic sur la colonne puis clic droit format de cellule ça devrait passer.
Enfin, voir si les exports du module cadastre de vmap ne fournit pas déjà le fichier que vous souhaitez créer (bouton du module cadastre de vMap Générer un rapport).
Hors ligne
#55 Mon 05 August 2019 15:03
- francis_31
- Participant actif
- Date d'inscription: 24 Nov 2010
- Messages: 92
Re: calcul surface parcelle
Ă priori d'aprĂšs la requĂȘte l'attribut 'superficie' est de type texte quand on affiche la vue dans pgadmin ?
Si c'est le cas pourquoi pas tenter un : replace(trunc(st_area(parcelle.geom)::numeric, 2)::text,'.', ',')::numeric AS superficie,
Mais je ne suis pas du tout sur que ça fonctionne (je ne sais pas si postgresql accepte d'interprĂ©ter la virgule comme un sĂ©parateur lorsque l'attribut doit ĂȘtre considĂ©rĂ© comme un nombre et non du texte ou bien qu'il change la virgule pour le point au moment du retypage).
Il faut ouvrir la vue dans pgadmin et vérifier que l'attribut 'superficie' est bien typé en numeric et plus en texte.
Si ça fonctionne, il faut à nouveau tester l'export vmap et voir ce que ça donne sous excel (je ne sais pas si vmap gÚre de conserver les typages des champs).
AprÚs, je ne sais pas si c'est pour des utilisations fréquentes de personnes qui ne connaissent pas assez excel mais un clic sur la colonne puis clic droit format de cellule ça devrait passer.
Enfin, voir si les exports du module cadastre de vmap ne fournit pas déjà le fichier que vous souhaitez créer (bouton du module cadastre de vMap Générer un rapport).
Hors ligne
#56 Mon 05 August 2019 15:14
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
Non le résultat donne ceci :
ERROR: cannot change data type of view column "superficie" from text to numeric
Bien sûr cela peut se faire sous excel, mais j'aimerais que cela soit plus direct, notamment pour les personnes qui n'utilisent pas trop excel.
Hors ligne
#57 Mon 05 August 2019 15:18
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
Ce que je ne comprends pas, c'est lorsque l'on demande de calculer la superficie, la superficie est effectivement calculée mais pourquoi reste-t-elle sous format texte?
Hors ligne
#58 Mon 05 August 2019 15:21
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: calcul surface parcelle
Oui, Francis a raison,
l'éditeur de texte de pgAdmin4 est moyen,
mieux vaut Ă©crire ses requĂȘtes avec quelque chose de plus
ergonomique.
Pour votre problÚme de format de données,
dans l'export au format csv de pgAdmin4,
vous pouvez modifier le caractÚre délimiteur de champ
par défaut ",". Une autre valeur commune est ";"
Hors ligne
#59 Mon 05 August 2019 15:32
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1769
Re: calcul surface parcelle
Je pense que le plus simple pour les utilisateurs est qu'ils ouvrent l'export sous excel.
Mais sous excel, la superficie est toujours considérée comme du texte.
Je réitÚre ma question : pourquoi la superficie est considérée comme du texte alors qu'elle est calculée?
Hors ligne
#60 Mon 05 August 2019 15:38
- francis_31
- Participant actif
- Date d'inscription: 24 Nov 2010
- Messages: 92
Re: calcul surface parcelle
Ă mon avis Ă lire ce que vous envoyez il faut refaire le test de la maniĂšre suivante:
il faut d'abord faire un "DROP" de la vue (la supprimer) et surtout bien conserver la requĂȘte avant pour la recrĂ©er aprĂšs.
Puis recréer la vue avec CREATE VIEW etc.
S'il écrit à nouveau un message de type qu'il ne peut pas convertir la valeur de l'attribut 'superficie' en numeric je pense que c'est bien ça c'est que pour la base de données le séparateur de décimale est le point et pas la virgule. Donc pour avoir un nombre avec deux décimales il faudra conserver le point en séparateur je ne vois pas quoi faire d'autre dans la base de données ou en tout cas je ne connais pas (lié aux options de création de la base de données au tout début à mon sens).
Pour rĂ©pondre Ă la deuxiĂšme question elle reste en texte car vous l'explicitez vous-mĂȘme dans trunc(st_area(parcelle.geom)::numeric, 2)::text c'est le ::text qui type la colonne
Juste une chose lĂ -dessus que je ne suis pas absolument sur : j'aurais utilisĂ© round pour qu'il arrondisse la derniĂšre dĂ©cimale car je ne sais pas si fonctio trunc le fait (aprĂšs peu d'importance Ă mon avis car vous ne devez pas ĂȘtre Ă 1 cm carrĂ© prĂšs).
Enfin, concernant l'option de pgadmin 4, oui c'est une bonne idée sauf que ça ne réponds pas à son souci car à la fin il souhaite que ce soit un export déclenché depuis un logiciel SIG Web et non pas via pgAdmin.
C'est pour ça que je suggĂ©rais de regarder dans un premier temps le module cadastre de vmap qui fournit peut-ĂȘtre en standard l'information qu'il souhaite (une fois les parcelles au panier cliquer sur GĂ©nĂ©rer un rapport et tester les diffĂ©rents rapports dont certains qui sont dĂ©jĂ lisibles dans excel).
Hors ligne

