Я тільки почав працювати з просторовими базами даних і хочу написати запит SQL (PostGIS) для автоматичного узагальнення необроблених GPS-треків (з фіксованою частотою відстеження). Перше, про що я веду, - це запит, який визначає точки зупинки у формі запиту, як "x балів на відстані y метрів", щоб замінити масивні хмари точок репрезентативними точками. Я вже зрозумів, що потрібно набрати певні відстані на певній відстані та порахувати оснащені. На малюнку нижче можна побачити грубу прикладну доріжку (маленькі чорні точки) та центри відрізаних точок у вигляді кольорових кіл (розмір = кількість відрізаних точок).
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;
Я був би настільки задоволений цим рішенням, але є проблема часу: уявляючи доріжку як довічну доріжку в місті, людина може повернутися до вже відвіданих місць. У моєму прикладі темно-синій круг представляє будинок людини, якого він відвідував двічі, але мій запит, звичайно, це ігнорує.
У цьому випадку складний запит повинен збирати лише очки із суміжними часовими позначками (або ідентифікаторами), щоб він створював дві репрезентативні точки. Моя перша ідея була модифікацією мого запиту до 3d-версії (час як третій вимір), але, схоже, це не працює.
Хтось має поради для мене? Я сподіваюся, що моє питання зрозуміле.
Дякую за лінію-ідею. Я зрозумів, що зробити і спростити рядок рядків, як ви можете бачити на скріншоті нижче (точки - це оригінальні точки). Що мені ще потрібно - це визначити місця відпочинку (> х балів у радіусі <х метрів), в ідеалі як одна точка з часом прильоту та часом відходу ... будь-які інші ідеї?