Pages: 1
- Sujet précédent - [POSTGIS] Remplissage de Champ X et Y par fonction et/ou trigger - Sujet suivant
#1 Tue 20 March 2012 17:40
- ramon
- Participant occasionnel
- Lieu: Angouleme
- Date d'inscription: 29 Jan 2008
- Messages: 23
[POSTGIS] Remplissage de Champ X et Y par fonction et/ou trigger
Bonjour,
J'utilise QGIS pour remplir une table de ponctuel, et compléter les champs de ces ponctuels.
Ma table est sous Postgres/Postgis pas de soucis tout fonctionne correctement.
Mon problème survient dans le cadre de l'affichage des coordonnées de ce point dans l'affichage des champs.
Actuellement la géométrie de ce point est stockée dans un champ "the_geom" non visible lors de l'édition des données.
A la main avec PgAdmin, pas de soucis, je retrouve mes coordonnées "POINT ( X Y)".
Mon idée est de créer 2 champs : coord_x et coord_y se remplissant tout seul.
En effectuant un "SELECT ST_x(the_geom), ST_y(the_geom) from ma_table" dans PgAdmin, j'obtiens bien mes valeurs X et Y séparément.
Mon problème est que je ne sais pas comment faire une insertion automatique de ces 2 champs ?
Merci d'avance
Hors ligne
#2 Tue 20 March 2012 18:10
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1542
Re: [POSTGIS] Remplissage de Champ X et Y par fonction et/ou trigger
Bonjour,
J'utilise QGIS pour remplir une table de ponctuel, et compléter les champs de ces ponctuels.
Ma table est sous Postgres/Postgis pas de soucis tout fonctionne correctement.
Mon problème survient dans le cadre de l'affichage des coordonnées de ce point dans l'affichage des champs.
Actuellement la géométrie de ce point est stockée dans un champ "the_geom" non visible lors de l'édition des données.
A la main avec PgAdmin, pas de soucis, je retrouve mes coordonnées "POINT ( X Y)".
Mon idée est de créer 2 champs : coord_x et coord_y se remplissant tout seul.
En effectuant un "SELECT ST_x(the_geom), ST_y(the_geom) from ma_table" dans PgAdmin, j'obtiens bien mes valeurs X et Y séparément.
Mon problème est que je ne sais pas comment faire une insertion automatique de ces 2 champs ?
Merci d'avance
Un trigger permettrait de faire ca.
je ne comprends pas tres bien pourquoi vous voulez avec les champs X et Y en plus du point. Vous en avez vraiment besoin ?
Nicolas
Hors ligne
#3 Wed 21 March 2012 08:49
- ramon
- Participant occasionnel
- Lieu: Angouleme
- Date d'inscription: 29 Jan 2008
- Messages: 23
Re: [POSTGIS] Remplissage de Champ X et Y par fonction et/ou trigger
Merci de l’intérêt que vous portez à ma question.
J'ai vu sur le forum d'autres de vos réponses concernant un sujet similaire, remplissage d'un champ via une fonction mis en place par un trigger. Mais je n'ai pas réussi à le mettre en place.
Effectivement, j'ai besoin d'avoir les coordonnées visibles. Pour mettre la donnée dans son contexte. Il s'agit d'une cartographie des nids de frelons asiatiques.
Il me semble intéressant de faire apparaitre dans la fiche d'information du ponctuel, les coordonnées X et Y du nid, ce qui permet à l'utilisateur (non-géomaticien) de communiquer la position plus précisément aux personnes devant intervenir.
Hors ligne
#4 Sun 25 March 2012 10:44
Re: [POSTGIS] Remplissage de Champ X et Y par fonction et/ou trigger
Bonjour Ramon,
Si je comprend bien votre question, vous voulez lors de la création d'un point dans QGis que les coordonnées x et y du point s'affiche dans le formulaire de renseignement de l'objet. C'est ça ?
Un trigger renseignera ces valeurs, mais apprès que la donnée ait été créée. Les case seront remplies quand vous afficherez les attributs du point "la fois suivante".
Je ne sais pas comment si QGis vous permettra de faire cela (pré-remplir tes attributs de coordonnées avant validation du formulaire).
Dernière modification par Mathieu BOSSAERT (Sun 25 March 2012 10:45)
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#5 Mon 26 March 2012 18:16
- ramon
- Participant occasionnel
- Lieu: Angouleme
- Date d'inscription: 29 Jan 2008
- Messages: 23
Re: [POSTGIS] Remplissage de Champ X et Y par fonction et/ou trigger
Bonjour Mathieu,
Vous avez bien compris ce que je souhaite faire, que l'affichage de la coordonnées X et Y ne s'affiche qu'apres validation ne me dérange pas. Au contraire. La finalité serait de pouvoir enregistrer/exporter par la suite le contenu de la table sur "Excel" pour donner la liste aux personnes devant intervenir sur ces points avec l'emplacement en coordonnées X Y.
Mon problème est la mise en place de ce trigger en utilisant le champ "the_geom". J'avais effectuer un test entre midi et deux heure, mais je n'ai pas garder le script de mon trigger, celui-ci ne fonctionnait pas. Dès que je 5 minutes je me repenche sur mon problème afin de vous définir plus précisément où ça cloche...
Merci
Hors ligne
#6 Mon 26 March 2012 19:07
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1542
Re: [POSTGIS] Remplissage de Champ X et Y par fonction et/ou trigger
Bonjour,
Si ces informations ne sont utiles qu'à l'export, vous pourrez créer ces colonnes a ce moment-là.
En prenant l'exemple d'un export avec la commande Postgresql COPY:
Code:
COPY (select st_X(the_geom), set_Y(the_geom) from matble) to '/tmp/ma_table.csv' WITH (FORMAT CSV);
Sinon, le trigger pourrait etre:
Code:
-------- La fonction du trigger create or replace function setXY() returns trigger as $$ DECLARE BEGIN NEW.x_coord := st_X(NEW.the_geom); NEW.y_coord := st_Y(NEW.the_geom); RETURN NEW; END; $$ LANGUAGE PLPGSQL; --------- puis la creation du trigger drop trigger if exists setXY_trigger on matable; create trigger setXY_trigger BEFORE UPDATE OR INSERT ON matable FOR EACH ROW EXECUTE PROCEDURE setXY();
(en considerant que la table cible s'appelle "matable", et les colonnes stockant les X-Y "x_coord", "y_coord")
Nico
Dernière modification par Nicolas Ribot (Mon 26 March 2012 19:08)
Hors ligne
#7 Mon 26 March 2012 19:42
Re: [POSTGIS] Remplissage de Champ X et Y par fonction et/ou trigger
Bonjour,
Si ces informations ne sont utiles qu'à l'export, vous pourrez créer ces colonnes a ce moment-là.
Nico
Ou bien simplement utiliser une vue :
Code:
CREATE OR REPLACE VIEW matablexy AS SELECT *, st_x(the_geom) as x, st_y(the_geom) as y FROM matable;
Vous pouvez alors être en mode d'écriture sur la table d'origine et de lecture sur la vue, y compris pour l'export.
Il y a aussi la possibilité de rendre cette vue éditable avec des «rules» afin de ne travailler que sur celle ci en lecture/écriture.
Hors ligne
#8 Fri 15 June 2012 14:18
- ramon
- Participant occasionnel
- Lieu: Angouleme
- Date d'inscription: 29 Jan 2008
- Messages: 23
Re: [POSTGIS] Remplissage de Champ X et Y par fonction et/ou trigger
Bonjour,
Je reviens sur ce post avec beaucoup de retard.J'ai pris le temps de faire ce que vous m'avez indiqué.
Le résultat produit et tout à fait ce que je cherchais à faire.
Merci pour ces scripts qui ont bien éclairci mes connaissances sur la mise en place de fonctions et de triggers.
Hors ligne
#9 Tue 08 October 2013 11:21
- Francesc Chanel
- Juste Inscrit !
- Date d'inscription: 8 Oct 2013
- Messages: 1
Re: [POSTGIS] Remplissage de Champ X et Y par fonction et/ou trigger
Merci de l’intérêt que vous portez à ma question.
J'ai vu sur le forum d'autres de vos réponses concernant un sujet similaire, remplissage d'un champ via une fonction mis en place par un trigger. Mais je n'ai pas réussi à le mettre en place.
Effectivement, j'ai besoin d'avoir les coordonnées visibles. Pour mettre la donnée dans son contexte. Il s'agit d'une cartographie des nids de frelons asiatiques.
Il me semble intéressant de faire apparaitre dans la fiche d'information du ponctuel, les coordonnées X et Y du nid, ce qui permet à l'utilisateur (non-géomaticien) de communiquer la position plus précisément aux personnes devant intervenir.
Bonjour,
je suis membre du Groupement de Défense Sanitaire Apicole, et j'aimerai en savoir plus sur votre cartographie des nids de frelons asiatiques. Est-ce que vous répertoriez uniquement les nids vues par des personnes "hasardeusement", ou aviez-vous une méthode de détection des nids ? Les ruchers souffrent de la pression apporter par le frelon asiatique et nous cherchons des solutions pour le combattre.
Par avance, merci,
Cordialement,
Francesc
Hors ligne
Pages: 1
- Sujet précédent - [POSTGIS] Remplissage de Champ X et Y par fonction et/ou trigger - Sujet suivant