Saya memiliki tabel PostGIS untuk posisi GPS setiap lima detik:
2011-01-01 00:00:05, POINT(x1,y1)
2011-01-01 00:00:10, POINT(x2,y2)
2011-01-01 00:00:15, POINT(x3,y3)
...
Saya mencari kueri yang akan mengembalikan nilai (cap waktu dan titik) untuk setiap detik. Tidak apa-apa untuk mengasumsikan bahwa poin dihubungkan oleh garis lurus.
Saya secara khusus mencari cara untuk melakukan ini di dalam database dan bukan dengan menulis beberapa skrip eksternal.
postgis
sql
interpolation
underdark
sumber
sumber
Jawaban:
hallo
Jika tabel asli Anda disebut gps_p, bidang stempel waktu Anda disebut ts dan titik-titiknya disebut th_geom:
Apa yang dilakukannya adalah bahwa ia membangun garis di antara titik-titik dan menggunakan st_segmentize untuk membagi garis dalam 5 segmen.
Jika tidak tepat 5 detik antara titik awal Anda, itu tidak akan berfungsi. Kemudian Anda bisa menambahkan bidang id dengan urutan dan menggunakannya untuk bergabung dengan tabel dengan id1 + 1 = id2 sebagai gantinya.
HTH
/ Nicklas
sumber
di sini adalah konsep kode untuk pl / python, itu hanya ide dasar untuk menerjemahkan poin dengan jarak dan azimuth yang diberikan.
Untuk menjalankan fungsi postgis dalam pl / python satu-satunya solusi yang saya temukan adalah dengan menggunakan plpy.prepare dan plpy.execute (sangat membosankan).
sumber
Jika saya tidak salah ...
Apa yang perlu Anda lakukan adalah menentukan jalur penghubung dan kemudian melakukan pembagian.
sumber