Właśnie zacząłem pracować z przestrzennymi bazami danych i chcę napisać zapytanie SQL (PostGIS) do automatycznego generowania surowych śladów GPS (ze stałą częstotliwością śledzenia). Pierwszą rzeczą, o której mówię, jest zapytanie, które identyfikuje punkty zatrzymania w formie zapytania, takiego jak „x punktów w odległości y metrów”, aby zastąpić masywne chmury punktów reprezentatywnymi punktami. Już zdałem sobie sprawę, że przyciągam punkty w pewnej odległości i liczę te. Na poniższym zdjęciu widać surowy przykładowy ślad (małe czarne punkty) i środki punktów przyciągania w postaci kolorowych kół (rozmiar = liczba punktów przyciągania).
CREATE table simplified AS
SELECT count(raw.geom)::integer AS count, st_centroid(st_collect(raw.geom)) AS center
FROM raw
GROUP BY st_snaptogrid(raw.geom, 500, 0.5)
ORDER BY count(raw.geom) DESC;
Byłbym bardzo zadowolony z tego rozwiązania, ale istnieje problem czasowy: wyobrażając sobie tor jako całodniowy tor w mieście, osoba może wrócić do miejsc, które już odwiedził. W moim przykładzie ciemnoniebieskie kółko reprezentuje dom osoby, którą odwiedził dwukrotnie, ale moje zapytanie oczywiście to ignoruje.
W takim przypadku wyrafinowane zapytanie powinno gromadzić tylko punkty z ciągłymi znacznikami czasu (lub identyfikatorami), aby wygenerować tutaj dwa reprezentatywne punkty. Moim pierwszym pomysłem była modyfikacja mojego zapytania do wersji 3d (czas jako trzeci wymiar), ale wydaje się, że nie działa.
Czy ktoś ma dla mnie jakąś radę? Mam nadzieję, że moje pytanie jest jasne.
Dziękuję za pomysł na linię. Uświadomiłem sobie, że mogę stworzyć i uprościć znakowanie linii, jak widać na zrzucie ekranu poniżej (kropki są oryginalnymi punktami). Nadal potrzebuję określić miejsca odpoczynku (> x punktów w promieniu <x metrów), idealnie jako jeden punkt z czasem przybycia i czasem wyjazdu ... jakieś inne pomysły?