Pages: 1
- Sujet précédent - Plus courte distance point / polygone + récupérer pt du polygone - Sujet suivant
#1 Wed 17 November 2021 15:07
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Plus courte distance point / polygone + récupérer pt du polygone
Bonjour,
J'ai une couche de points (adresses) et une coche de polygones (zones d'interventions), qui sont en relation attributaire (1-1) via un identifiant commun (id).
J'arrive à calculer la distance minimale entre le point et le polygone joint via cette requête :
Code:
SELECT pt.id st_distance(pt.geom, poly.geom) as dist_min FROM pt JOIN poly ON pt.id = poly.id
Mais j'aimerais récupérer les coordonnées du point du périmètre du polygone correspondant à cette plus courte distance, et ainsi pouvoir construire la ligne [1] entre le point et le polygone.
Est-ce quelqu'un aurait une idée de requête pour récupérer ce point de distance minimale entre le polygone et le point, sur le périmètre du polygone ?
Merci pour vos conseils !
[1] avec un ST_Makeline() :
Code:
st_makeLine(pt.geom, /* geom du point recherché */ )
Dernière modification par Sylvain M. (Wed 17 November 2021 15:08)
Sylvain M.
Hors ligne
#2 Wed 17 November 2021 15:29
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: Plus courte distance point / polygone + récupérer pt du polygone
Je crois que je viens de trouver !
Code:
ST_ClosestPoint(geometry g1, geometry g2);
Je teste ça !
Sylvain M.
Hors ligne
#3 Wed 17 November 2021 16:28
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: Plus courte distance point / polygone + récupérer pt du polygone
Je confirme que ça fonctionne.
Voici donc la bonne requête :
Code:
ST_Makeline(ST_ClosestPoint(poly.geom, pt.geom), pt.geom) as geom
(en fait "makeline" puisque je travaille avec des couches virtuelles, et donc SpatiaLite, pas PostGis)
Sylvain M.
Hors ligne
Pages: 1
- Sujet précédent - Plus courte distance point / polygone + récupérer pt du polygone - Sujet suivant