Annonce
Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).
En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.
#1 Tue 27 November 2018 17:13
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
PostGIS - Plus proche voisin
Bonjour,
Nous cherchons à déterminer le cours d'eau sur lequel se situent un ensemble de points de mesure.
Je m'attendais à trouver une fonction du genre ST_nearestneighbour, mais impossible de mettre la main dessus.
On s'en sort par un calcul de la matrice des distances point-rivière suivi d'un "row_number() + partition by", suivi d'un filtre.
Mais c'est un peu laborieux.
Est-ce que vous auriez une solution plus élégante ?
Merci
Dernière modification par Renaud (Tue 27 November 2018 17:19)
Renaud Mouche
Hors ligne
#2 Tue 27 November 2018 17:28
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1129
Re: PostGIS - Plus proche voisin
Utilisation d'une requête latérale ?
Code:
SELECT id_point, ( SELECT id_riviere FROM (SELECT st_distance(point.geom, riviere.geom) d, id_riviere FROM riviere ORDER BY point.geom <-> riviere.geom LIMIT 10) foo ORDER BY d LIMIT 1 ) FROM point
Dernière modification par tumasgiu (Tue 27 November 2018 17:32)
Hors ligne
#3 Tue 27 November 2018 17:53
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1534
Re: PostGIS - Plus proche voisin
Bonsoir,
Et comme on me le faisait remarquer sur le forum Postgis, avec un postgis récent, pas besoin d'utiliser st_distance: geom <-> geom renvoie la vraie distance:
SELECT id_point,
( SELECT id_riviere FROM
(SELECT point.geom <-> riviere.geom d, id_riviere
FROM riviere ORDER BY point.geom <-> riviere.geom LIMIT 10) foo
ORDER BY d LIMIT 1
)
FROM point
Nicolas
Hors ligne
#4 Tue 27 November 2018 18:09
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1129
Re: PostGIS - Plus proche voisin
Super, j'ai du le lire mais j'ai aussi du l'oublier !
A ce moment là, la sous-requête de l'expression latérale est superflue non ?
Dernière modification par tumasgiu (Tue 27 November 2018 18:10)
Hors ligne
#5 Wed 28 November 2018 09:53
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
Re: PostGIS - Plus proche voisin
Bonjour,
Merci pour le retour,
Je teste la solution
Renaud Mouche
Hors ligne