空間データベースの使用を開始したばかりで、生のGPSトラックを自動で一般化するためのSQL(PostGIS)クエリを作成したい(追跡頻度を固定)。私が最初に注目しているのは、「yメートルの距離内にあるxポイント」のようなクエリの形式で停止ポイントを特定し、代表的なポイントで巨大なポイントクラウドを置き換えるクエリです。特定の距離内でポイントをスナップし、スナップしたものをカウントすることは既に実現しました。下の図では、未加工のサンプルトラック(小さな黒い点)と、スナップされた点の中心が色付きの円(サイズ=スナップされた点の数)として表示されています。
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;
私はこのソリューションに非常に満足していますが、時間の問題があります:トラックを1日コースとして都市でイメージすることで、その人は以前に訪れた場所に戻ることができます。私の例では、濃い青色の円は、彼が2回訪れた人の家を表しますが、もちろん私のクエリはそれを無視します。
この場合、洗練されたクエリは、連続するタイムスタンプ(またはID)を持つポイントのみを収集する必要があるため、ここでは2つの代表的なポイントが生成されます。最初のアイデアは、クエリを3Dバージョンに変更することでした(3番目の次元としての時間)が、うまくいかないようです。
誰か私にアドバイスはありますか?私の質問が明確であることを願っています。
ラインアイデアをありがとう。下のスクリーンショットでわかるように、ラインストリングを作成して単純化することに気付きました(ドットは元のポイントです)。 私がまだ必要なのは、理想的には到着時間と出発時間を持つ1つのポイントとして、休憩場所(半径<xメートル内のxポイント)を決定することです...他のアイデアはありますか?