Ich habe eine PostGIS-Tabelle mit Positionsdaten zahlreicher Fahrzeuge und möchte aus diesen Punkten Linien erstellen.
Die Daten können nach Fahrzeug-ID ausgewählt und nach Zeitstempel sortiert werden. Wie werden jedoch Linien aus dem Ergebnis erstellt?
Was ich grundsätzlich brauche, ist ein Liniensegment von Punkt 1 bis Punkt 2, die Linie finalisieren und dann wieder von Punkt 2 bis Punkt 3. Natürlich alles unter Berücksichtigung der Fahrzeug-ID.
Letzteres wird benötigt, weil ich die Fahrtrichtung und Geschwindigkeit des Fahrzeugs von einem Punkt zum nächsten berechnen möchte.
SELECT ais_data.mmsi, ST_MakeLine(ais_data.geom) AS newgeom INTO ais_lines FROM (SELECT * FROM ais_data ORDER BY ais_data.mmsi, ais_data.bs_ts ASC) AS ais_data GROUP BY ais_data.mmsi;
Das gibt mir die Spur jedes Fahrzeugs und ist nicht genau das, was ich brauche. Wie kann man ST_MakeLine () anweisen, eine Linie von Punkt 1 bis Punkt 2 zu erstellen, die Linie abzuschließen und eine neue von Punkt 2 bis Punkt 3 zu beginnen ...?
ORDER BY ais_data.bs_ts
- ist das möglich? Punkt 1, Punkt 2 usw. sind also im Grunde die Punktinformationen, die in jeder Zeile als Ergebnis der Select-Anweisung angegeben werden.