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

#31 Tue 30 July 2019 14:21

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1132

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

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

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

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: 2883
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: 1624

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Pied de page des forums

Powered by FluxBB