Ich versuche, eine Karte mit Daten zu einigen Flügen zu erstellen und möchte Great Circle Arcs verwenden, um die Quelle und die Ziele zu verbinden.
Grundsätzlich möchte ich etwas Ähnliches wie die berühmte Facebook-Karte machen:
Ich habe die in diesem Beitrag angegebenen Funktionen verwendet: /gis//a/5205/442 (dh dieser Blog-Artikel: http://anitagraser.com/2011/08/20/visualizing-global-connections / ) und ich könnten Linien bekommen, aber sie überqueren die internationale Datumsgrenze und bündeln sich an den Polen:
@underdark hat im verlinkten Blogpost erwähnt, dass diese Zeilen geteilt werden müssen, aber ich weiß nicht, wie ich sie in PostGIS automatisch teilen soll.
Zusätzlich muss auch das Bündeln der Linien in der Nähe der Pole gelöst werden.
Wie mache ich beides, wenn ich die Punktpositionen für Start und Ende dieser Flüge habe?
quelle
Antworten:
Die Prinzipien in diesem Blog-Beitrag werden auf Allzweck-PostGIS übertragen.
http://blog.cartodb.com/jets-and-datelines/
Verwenden Sie
ST_Segmentize
im Grunde genommen die Geografie und ein bisschen Magie, um Datumsgrenzen zu schneiden.quelle
Sie könnten die Geodäten berechnen. Wenn Sie die Geodät von A nach B anzeigen möchten, können Sie zuerst die Entfernung und den Azimut von A nach B berechnen (inverses geodätisches Problem) und dann Punkte von A bis zu mehreren Punkten zwischen A und B berechnen (direktes geodätisches Problem). Ich habe ein einfaches Skript in Python hinzugefügt, das GeographicLib verwendet und nur das Zeug in GeoJSON ausgibt:
Das Ergebnis ist die wahre Geodät zwischen den Punkten in WGS-84. Natürlich können Sie dann die Koordinaten in jede gewünschte Projektion umwandeln. Das auf geojson.io visualisierte Ergebnis sieht folgendermaßen aus:
quelle