ฉันมีตาราง PostGIS พร้อมข้อมูลตำแหน่งของยานพาหนะจำนวนมากและต้องการสร้างบรรทัดจากจุดเหล่านี้
ข้อมูลสามารถเลือกได้โดย id ยานพาหนะและเรียงลำดับตามเวลา แต่จะสร้างบรรทัดจากผลลัพธ์ได้อย่างไร
สิ่งที่ฉันต้องการโดยทั่วไปคือส่วนของเส้นหนึ่งจากจุดที่ 1 ถึงจุดที่ 2 จบบรรทัดแล้วอีกครั้งจากจุดที่ 2 ถึงจุดที่ 3 แน่นอนว่าทั้งหมดนั้นอยู่ภายใต้การพิจารณาของ id ยานพาหนะ
อันหลังจำเป็นเพราะฉันต้องการคำนวณทิศทางการล่องเรือและความเร็วของยานพาหนะจากจุดหนึ่งไปอีกจุดหนึ่ง
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;
นั่นจะทำให้ฉันติดตามรถทุกคันและไม่ใช่สิ่งที่ฉันต้องการ วิธีบอก ST_MakeLine () เพื่อสร้างบรรทัดจากจุดที่ 1 ถึงจุดที่ 2 จบบรรทัดและเริ่มบรรทัดใหม่จากจุดที่ 2 ถึงจุดที่ 3 ... ?
ORDER BY ais_data.bs_ts
- เป็นไปได้หรือไม่ ดังนั้นจุดที่ 1 จุดที่ 2 เป็นต้นไปนั้นเป็นข้อมูลจุดที่กำหนดในแต่ละบรรทัดอันเป็นผลมาจากคำสั่ง Select