J'ai besoin d'utiliser Python pour créer une grande distance circulaire - à la fois un nombre et de préférence une sorte de `` courbe '' que je peux utiliser pour dessiner une carte côté client. Je ne me soucie pas du format de la courbe - que ce soit WKT ou un ensemble de paires de coordonnées - mais je veux juste sortir les données.
Quels outils existe-t-il? Que dois-je utiliser?
python
distance
polyline-creation
great-circle
Christopher Schmidt
la source
la source
Les réponses fournies par d'autres sont un peu plus élégantes, mais voici un morceau de Python ultra simple, quelque peu antipythonique, qui fournit les bases. La fonction prend deux paires de coordonnées et un nombre de segments spécifié par l'utilisateur. Il donne un ensemble de points intermédiaires le long d'un grand cercle. Sortie: texte prêt à être écrit en KML. Mises en garde: Le code ne considère pas les antipodes et suppose une terre sphérique.
Code par Alan Glennon http://enj.com juillet 2010 (l'auteur place ce code dans le domaine public. À vos risques et périls).
-
def tweensegs (longitude1, latitude1, longitude2, latitude2, num_of_segments):
la source
GeographicLib possède une interface python :
Cela peut calculer des géodésiques sur un ellipsoïde (mettre l'aplatissement à zéro pour obtenir de grands cercles) et générer des points intermédiaires sur une géodésique (voir les commandes "Ligne" dans l'exemple).
Voici comment imprimer des points sur la ligne géodésique de JFK à l'aéroport de Changi (Singapour):
la source
pyproj a la fonction Geod.npts qui retournera un tableau de points le long du chemin. Notez qu'il n'inclut pas les points terminaux dans le tableau, vous devez donc les prendre en compte:
la source
geopy Une boîte à outils de géocodage pour Python
http://code.google.com/p/geopy/wiki/GettingStarted#Calculating_distances
la source
Je n'ai pas utilisé ce package, mais il semble intéressant, et une solution possible: http://trac.gispython.org/lab/wiki/Shapely
la source
Shapely is a Python package for set-theoretic analysis and manipulation of **planar** features