Necesito usar Python para crear una gran distancia circular, tanto un número como, preferiblemente, algún tipo de 'curva' que pueda usar para dibujar en un mapa del lado del cliente. No me importa el formato de la curva, ya sea WKT o un conjunto de pares de coordenadas, pero solo quiero obtener los datos.
¿Qué herramientas hay por ahí? ¿Qué debo usar?
python
distance
polyline-creation
great-circle
Christopher Schmidt
fuente
fuente
Las respuestas proporcionadas por otros son un poco más elegantes, pero aquí hay un poco de Python ultra simple, un tanto no pitónico que proporciona lo básico. La función toma dos pares de coordenadas y un número de segmentos especificado por el usuario. Produce un conjunto de puntos intermedios a lo largo de un gran camino circular. Salida: texto listo para escribir como KML. Advertencias: El código no considera antípodas, y asume una tierra esférica.
Código de Alan Glennon http://enj.com Julio de 2010 (el autor coloca este código en el dominio público. Utilícelo bajo su propio riesgo).
-
def tweensegs (longitud1, latitud1, longitud2, latitud2, número_de_segmentos):
fuente
GeographicLib tiene una interfaz de python :
Esto puede computar geodésicas en un elipsoide (establecer el aplanamiento a cero para obtener grandes círculos) y puede generar puntos intermedios en una geodésica (ver los comandos "Línea" en la muestra).
Aquí le mostramos cómo imprimir puntos en la línea geodésica de JFK al aeropuerto de Changi (Singapur):
fuente
pyproj tiene la función Geod.npts que devolverá una serie de puntos a lo largo del camino. Tenga en cuenta que no incluye los puntos terminales en la matriz, por lo que debe tenerlos en cuenta:
fuente
geopy Una caja de herramientas de geocodificación para Python
http://code.google.com/p/geopy/wiki/GettingStarted#Calculating_distances
fuente
No he usado este paquete, pero parece interesante y una posible solución: http://trac.gispython.org/lab/wiki/Shapely
fuente
Shapely is a Python package for set-theoretic analysis and manipulation of **planar** features