Estoy tratando de crear un mapa, con datos que indiquen algunos vuelos, y quiero usar Great Circle Arcs para conectar la fuente y los destinos.
Básicamente, quiero hacer algo similar al famoso mapa de Facebook:
Utilicé las funciones dadas en esta publicación: https://gis.stackexchange.com/a/5205/442 , (es decir, este artículo de blog: http://anitagraser.com/2011/08/20/visualizing-global-connections / ) y podría obtener líneas, pero cruzan la línea de fecha internacional, así como se agrupan en los polos:
@underdark, ha mencionado en el blog vinculado que estas líneas deben dividirse, pero no sé cómo dividirlas automáticamente en PostGIS.
Además, el agrupamiento de las líneas cerca de los polos también debe resolverse.
¿Cómo hago ambas cosas cuando tengo las ubicaciones de puntos para el inicio y el final de estos vuelos?
fuente
Respuestas:
Los principios de esta publicación de blog se transfieren a PostGIS de uso general.
http://blog.cartodb.com/jets-and-datelines/
Básicamente, use
ST_Segmentize
en geografía y un poco de magia para cortar líneas de cruce de línea de fecha.fuente
Podrías calcular la geodésica. Al decir que desea mostrar la geodésica de A a B, primero puede calcular la distancia y el acimut de A a B (problema geodésico inverso) y luego calcular puntos de A a varios puntos entre A y B (problema geodésico directo). He agregado un script simple en Python usando GeographicLib simplemente generando las cosas en GeoJSON:
El resultado es la verdadera geodésica entre los puntos en WGS-84. Por supuesto, podría transformar las coordenadas a la proyección que necesite. El resultado visualizado en geojson.io se ve así:
fuente