Co pięć sekund mam tabelę pozycji GPS PostGIS:
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)
...
Szukam zapytania, które zwróci wartości (znacznik czasu i punkt) na każdą sekundę. Można założyć, że punkty są połączone linią prostą.
W szczególności szukam sposobu na zrobienie tego w bazie danych, a nie przez napisanie zewnętrznego skryptu.
postgis
sql
interpolation
podmrok
źródło
źródło
Odpowiedzi:
halo
Jeśli twoja oryginalna tabela nazywa się gps_p, twoje pole znacznika czasu nazywa się ts, a punkty nazywa się th_geom:
Robi to, że buduje linie między punktami i używa st_segmentize, aby podzielić linię na 5 segmentów.
Jeśli nie będzie dokładnie 5 sekund między oryginalnymi punktami, to nie zadziała. Następnie możesz po prostu dodać pole identyfikatora z sekwencją i użyć go do samodzielnego dołączenia do tabeli za pomocą id1 + 1 = id2.
HTH
/ Nicklas
źródło
Oto szkic kodu dla PL / Pythona, to tylko podstawowa idea tłumaczenia punktów o zadaną odległość i azymut.
Aby uruchomić funkcje postgis w pl / python, jedynym rozwiązaniem, które znalazłem, jest użycie plpy.prepare i plpy.execute (bardzo nudne).
źródło
Jeśli się nie mylę ...
Musisz ustalić linię łączącą, a następnie wykonać na niej podział.
źródło