Ben sadece uzamsal veritabanları ile çalışmaya başladı ve ben ham GPS-parça (genel izleme frekansı ile) otomatik genelleme için bir SQL (PostGIS) sorgusu yazmak istiyorum. Üzerinde uyandığım ilk şey, durma noktalarını, büyük nokta bulutlarını temsili noktalarla değiştirmek için "y metre mesafedeki x noktaları" gibi sorgu biçiminde tanımlayan bir sorgudur. Zaten belirli bir mesafedeki noktaları yakalamayı ve yakalananları saymayı zaten fark ettim. Aşağıdaki resimde bir ham örnek izi (küçük siyah noktalar) ve kopan noktaların merkezleri renkli daireler olarak görülebilir (boyut = kopan nokta sayısı).
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;
Bu çözümden oldukça memnun olurdum, ama zaman sorunu var: Parkuru, kişinin daha önce ziyaret ettiği yerlere geri dönebileceği bir şehirde tam günlük bir parkur olarak görmek. Örneğimde, koyu mavi daire, iki kez ziyaret ettiği kişinin evini temsil ediyor, ancak sorgulamam elbette bunu görmezden geliyor.
Bu durumda, karmaşık sorgu yalnızca bitişik zaman damgalarına (veya kimliklere) sahip noktaları toplamalıdır, böylece burada iki temsili nokta üretecektir. İlk fikrim, sorgumun 3 boyutlu bir versiyona (üçüncü boyut olarak zaman) bir modifikasyonuydu, ancak işe yaramadı.
Benim için bir tavsiye var mı? Umarım sorum açıktır.
Çizgi fikir için teşekkür ederim. Aşağıdaki ekran görüntüsünde görebileceğiniz gibi bir linestring yapmayı ve basitleştirmeyi fark ettim (noktalar orijinal noktalardır). İhtiyacım olan şey dinlenme yerlerini (<x metre yarıçapında> x puan), ideal olarak bir varış zamanı ve bir ayrılma zamanı olan bir nokta olarak belirlemektir.