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

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#1 Fri 15 April 2022 09:51

sporito
Participant actif
Date d'inscription: 4 Mar 2008
Messages: 126

Trigger Postgis: Récuperation de la valeur du point le plus proche.

Bonjour,
Je souhaiterais mettre en place un trigger qui me permette, au moment de placer un point A parmi pleins de points B, de récupérer la valeur du champ "numero" de ma couche PointsB pour remplir mon champ "numeroB" de ma couche PointsA.
Je souhaiterais que ce trigger soit basé sur la condition du plus proche point B de mon point A.
J'ai essayé ça, mais ça ne fonctionne pas hmm


J'ai dc un schéma que l'on appellera "SchemaPoint" avec 2 couches :

PointsA
-numeroB (à remplir)

PointsB
-numero



CREATE OR REPLACE FUNCTION "SchemaPoint".voisins()
    RETURNS trigger
    LANGUAGE 'plpgsql'
    COST 100
    VOLATILE NOT LEAKPROOF
AS $BODY$
BEGIN
  select into new.numeroB numero, ST_distance(new.geom, PointsB.geom) AS voisin
  FROM "SchemaPoint"."PointsA","SchemaPoint"."PointsB"
  order by voisin
  LIMIT 1;
  return new ;
END;
$BODY$;


puis


CREATE TRIGGER update_numero
    BEFORE INSERT OR UPDATE
    ON "SchemaPoint"."PointsA"
    FOR EACH ROW
    EXECUTE FUNCTION "SchemaPoint".voisins();

Dernière modification par sporito (Fri 15 April 2022 09:51)

Hors ligne

 

#2 Fri 15 April 2022 11:04

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Trigger Postgis: Récuperation de la valeur du point le plus proche.

Bonjour,

Il faut regarder du coté de KNN (K plus proches voisins). Il y a beaucoup de posts sur ce forum là-dessus, par ex:
https://georezo.net/forum/viewtopic.php?id=125426

Nicolas

Hors ligne

 

#3 Fri 15 April 2022 14:41

sporito
Participant actif
Date d'inscription: 4 Mar 2008
Messages: 126

Re: Trigger Postgis: Récuperation de la valeur du point le plus proche.

Nicolas Ribot a écrit:

Bonjour,

Il faut regarder du coté de KNN (K plus proches voisins). Il y a beaucoup de posts sur ce forum là-dessus, par ex:
https://georezo.net/forum/viewtopic.php?id=125426

Nicolas


Le souci, c'est que je ne souhaite pas obtenir la distance entre objets d'une même couche, mais rapporter la valeur d'un champ d'une couche à une autre (remplir un champ), en fonction de la distance la plus courte

Dernière modification par sporito (Fri 15 April 2022 14:45)

Hors ligne

 

Pied de page des forums

Powered by FluxBB