Suite

Trouver la distance et le cap d'un point à un polygone en coordonnées lat, lon


J'ai des comtés cartographiés à l'aide de polygones dans Shapely avec latitude/longitude pour les coordonnées. Étant donné un polygone complexe x et un point unique y, comment trouver la distance la plus courte entre x et y ainsi que le cap nécessaire ?

En utilisant la fonction de distance dans Shapely, je peux obtenir la distance la plus proche, mais je ne parviens pas à trouver une solution rapide pour obtenir le cap. J'ai essayé de déterminer le point le plus proche, mais cette solution était déraisonnablement lente à s'exécuter sur 10 polygones.


Je ne sais pas si cela fonctionne ou si c'est assez rapide, mais j'essayerais ceci :

  • calculer la distance (Z) entre le poly A et le point B
  • construire une géométrie tampon (C) autour du point B de "rayon" Z
  • calculer l'intersection entre poly C et poly A comme géométrie D
  • calculer le centre de gravité de la géométrie D
  • calculer le cap entre D et A

Ce qui fait ou casse cette approche, c'est si le tampon coupe A ou non (car le tampon est une approximation d'un cercle, il se peut que ce ne soit pas le cas).

Si vous n'obtenez pas d'intersection, vous pouvez augmenter soit :

  • la taille du tampon ou
  • la précision du tampon ou
  • tous les deux

jusqu'à ce que vous obteniez une intersection.

Voici un schéma d'un tampon légèrement plus grand que la distance pour illustrer ce que je veux dire :


Voir la vidéo: Calculer les coordonnées longitude et latitude X et Y dun point sur le terrain dans ArcGIS (Octobre 2021).