#1 Mon 28 November 2022 11:56
- Thais781
- Participant occasionnel
- Date d'inscription: 24 Oct 2022
- Messages: 25
Geopandas Distance entre point et polygon
Bonjour,
Cf. l'image ci-joint.
J'ai un polygon (en bleu) et un point (celui en orange)
Et je cherche a calculer les points de contact les plus proches entre ce point et le polygon
Pour le moment, je trace un cercle a partir du point orange et je fais évoluer le diamètre jusqu'a qu'il touche (intercepts) le polygone et j'ai donc le point de contact.
Cette solution est un peu ... bourin ... peut être qu'il existe une solution plus élégante pour obtenir ces point (les verts dans le dessin)
N'hésitez pas si vous avez une idée ;-)
Thais
Hors ligne
#2 Mon 28 November 2022 13:37
- Marion Robin
- Juste Inscrit !
- Date d'inscription: 10 Oct 2011
- Messages: 7
Re: Geopandas Distance entre point et polygon
Bonjour,
Il y a la fonction Shapely nearest_points qui fait ça. Je viens de tester et ça a l'air de plutôt bien fonctionner :-)
import geopandas as gpd
from shapely.geometry import Polygon, Point
from shapely.ops import nearest_points
poly = Polygon([(4.338074,50.848677), (4.344961,50.833264), (4.366227,50.840809), (4.367945,50.852455), (4.346693,50.858306)])
poly = gpd.GeoSeries(poly, crs='EPSG:3395')
point = gpd.GeoSeries([Point(4.382617,50.811948)], crs='EPSG:3395')
nearest_edge, _ = nearest_points(poly[0], point[0])
nearest_edge = gpd.GeoSeries(nearest_edge, crs='EPSG:3395')
ax = poly.plot()
point.plot(ax=ax, color='red')
nearest_edge.plot(ax=ax, color='green')
Hors ligne
#3 Tue 29 November 2022 16:04
- Thais781
- Participant occasionnel
- Date d'inscription: 24 Oct 2022
- Messages: 25
Re: Geopandas Distance entre point et polygon
Merci Marion
C'est effectivement beaucoup plus propre comme ca ;-)
Hors ligne