すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ST_AccompanyIntervals

最終更新日:Jan 23, 2025

2つの軌道が互いに付随する期間を計算します。

構文

Table(timestamp start_time, timestamp end_time) ST_AccompanyIntervals(trajectory traj1, trajectory traj2, double precision tol_dist, interval merge_gap default '0 minute', interval min_length default '0 minute', character(1) dist_config defaut 'A');

Table(trajectory traj1, trajectory subtraj2) ST_AccompanyParts(trajectory traj1, trajectory traj2, double precision tol_dist, interval merge_gap default '0 minute', interval min_length default '0 minute', character(1) dist_config defaut 'A');

Parameters

パラメーター

説明

traj1

軌道の番号は1です。

traj2

軌道番号2。

tol_dist

付随する距離。 2つの軌道間の距離がこの値未満である場合、2つの軌道は互いに付随していると見なされる。 対応する空間参照系におけるデフォルトの距離測定ユニットが使用される。

説明

ほとんどの場合、空間参照システム識別子 (SRID) が4326されるとき、距離はメートル単位で測定されます。

merge_gap

ST_AccompanyIntervals: 2つの期間の間隔が指定されたmerge_gapよりも小さい場合、2つの期間がマージされます。 マージは、merge_gapを指定した後にのみ行われます。

ST_AccompanyParts: 付随するサブ軌道の2つのグループ間の距離が指定されたmerge_gapよりも小さい場合、サブ軌道の2つのグループはマージされます。 マージは、merge_gapを指定した後にのみ行われます。

min_length

付随する期間の持続時間が指定されたmin_lengthよりも短い場合、その期間は破棄される。 分割は、min_lengthを指定した後にのみ行われます。

dist_config

距離を計算するために使用される方法。 有効な値:

  • 'W': 水平座標と垂直座標をWGS84座標系の座標点に変換して距離を計算します。

  • 'C': 水平座標と垂直座標を使用して距離を直接計算します。

  • 'M': 距離をメートルで計算します。 この方法は、「W」法と同等である。

  • 'D': 距離を度で計算します。 この方法は、「C」方法と同等である。

  • 'A' or not specified: SRIDが4326されている場合は 'W' メソッドを、SRIDが4326されていない場合は 'C' メソッドを自動的に選択します。

戻り値

戻り値

説明

start_time

付随する期間の開始時刻。

end_time

付随する期間の終了時間。

traj1

軌道1上のサブ軌道。

traj2

軌道2上のサブ軌道。

説明

  • 関数は、2つの軌道間の距離がtol_distよりも小さい期間を返します。

  • ST_AccompanyIntervals: 2つの付随する期間の間隔が指定されたmerge_gapよりも小さい場合、2つの期間がマージされます。 マージ後の付随する期間の長さが指定されたmin_lengthよりもまだ短い場合、その期間は破棄される。

  • ST_AccompanyParts: 付随するサブ軌道の2つのグループ間の距離が指定されたmerge_gapよりも小さい場合、サブ軌道の2つのグループはマージされます。 マージ後の付随する期間の長さが指定されたmin_lengthよりもまだ短い場合、その期間は破棄される。

  • ST_AccompanyIntervals関数は、2つの軌道が互いに付随する期間を返します。 ST_AccompanyPartsは、期間中の軌道1と軌道2のサブ軌道を返します。

  • ST_AccompanyIntervals

    With traj AS
    (
    SELECT ST_MakeTrajectory('STPOINT','LINESTRING(0 0, 1 0, 0 0)'::geometry, '2000-01-01'::timestamp, '2000-01-03', NULL) as a, ST_MakeTrajectory('STPOINT','LINESTRING(0 0, 0 0, 0 0)'::geometry, '2000-01-01'::timestamp, '2000-01-03', NULL) as b
    )
    SELECT (ST_AccompanyIntervals(a,b,0.5)).* from traj;

    サンプル結果:

         start_time      |      end_time       
    ---------------------+---------------------
     2000-01-01 00:00:00 | 2000-01-01 12:00:00
     2000-01-02 12:00:00 | 2000-01-03 00:00:00
    (2 rows)
  • マージ期間

    With traj AS
    (
    SELECT ST_MakeTrajectory('STPOINT','LINESTRING(0 0, 1 0, 0 0)'::geometry, '2000-01-01'::timestamp, '2000-01-03', NULL) as a, ST_MakeTrajectory('STPOINT','LINESTRING(0 0, 0 0, 0 0)'::geometry, '2000-01-01'::timestamp, '2000-01-03', NULL) as b
    )
    SELECT (ST_AccompanyIntervals(a,b,0.5,'2 day')).* from traj;

    サンプル結果:

         start_time      |      end_time       
    ---------------------+---------------------
     2000-01-01 00:00:00 | 2000-01-03 00:00:00
    (1 row)
  • ST_AccompanyParts

    With traj AS
    (
    SELECT ST_MakeTrajectory('STPOINT','LINESTRING(0 0, 1 0, 0 0)'::geometry, '2000-01-01'::timestamp, '2000-01-03', NULL) as a, ST_MakeTrajectory('STPOINT','LINESTRING(0 0, 0 0, 0 0)'::geometry, '2000-01-01'::timestamp, '2000-01-03', NULL) as b
    )
    SELECT (ST_AccompanyParts(a,b,0.5)).* from traj;

    サンプル結果:

                                                                                                                traj1                                                                                                            |             
                                                                                                 traj2                                                                                                           
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     {"trajectory":{"version":1,"type":"STPOINT","leafcount":2,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-01 12:00:00","spatial":"LINESTRING(0 0,0.5 0)","timeline":["2000-01-01 00:00:00","2000-01-01 12:00:00"]}} | {"trajectory
    ":{"version":1,"type":"STPOINT","leafcount":2,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-01 12:00:00","spatial":"LINESTRING(0 0,0 0)","timeline":["2000-01-01 00:00:00","2000-01-01 12:00:00"]}}
     {"trajectory":{"version":1,"type":"STPOINT","leafcount":2,"start_time":"2000-01-02 12:00:00","end_time":"2000-01-03 00:00:00","spatial":"LINESTRING(0.5 0,0 0)","timeline":["2000-01-02 12:00:00","2000-01-03 00:00:00"]}} | {"trajectory
    ":{"version":1,"type":"STPOINT","leafcount":2,"start_time":"2000-01-02 12:00:00","end_time":"2000-01-03 00:00:00","spatial":"LINESTRING(0 0,0 0)","timeline":["2000-01-02 12:00:00","2000-01-03 00:00:00"]}}
    (2 rows)