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

ApsaraDB RDS:ST_lcsSimilarity

最終更新日:Jan 15, 2024

この関数は、最長共通サブシーケンス (LSSS) アルゴリズムに基づいて2つの軌道オブジェクト間の類似性を計算する。

構文

整数ST_lcsSimilarity(trajectory traj1、trajectory traj2、float8 dist、distanceUnitユニットデフォルト 'M');
整数ST_lcsSimilarity(trajectory traj1、trajectory traj2、float8 dist、interval lag、distanceUnitユニットデフォルト 'M'); 

パラメーター

パラメーター 説明
traj1 軌道オブジェクト1。
traj2 軌道オブジェクト2.
dist 2つの軌道点間の距離公差。 単位: メートル。
ラグ 2つの軌道点間の時間公差。
ユニット 距離の単位。 有効な値:
  • 'M': メートル。
  • 「KM」: キロメートル。
  • 'D': 度。 この値は、軌道オブジェクトの空間参照システム識別子 (SRID) がWGS84 (デフォルトでは4326) の場合にのみ有効です。

説明

LCSSアルゴリズムは、2つの軌道オブジェクト間の最大類似度を計算するために使用される。 2つの軌道点間の一貫性は、空間および時間におけるそれらの距離に基づいて決定される。 この関数は、2つの軌道オブジェクト間の類似性を計算し、一貫した軌道点の数を返します。

Similarity calculation algorithm

前の図に示すように、軌道点1、3、および6は、一貫性の条件を満たす。 この場合、この関数は3を返します。

一般に、軌道オブジェクトは有効なSRIDを有する。 指定しない場合、SRIDはデフォルトで4326されます。

とtraj AS (
    ST_makeTrajectory('STPOINT' 、'LINESTRINGZ(114.000528 33.588163 54.87、114.000535 33.588235 54.85、114.000447 33.588272 54.69、114.000348 33.588287 54.73、114.000245 33.588305 55.26、114.000153 33.588305 55.3)'::geometry、
                             ARRAY['2010-01-01 11:30 '::timestamp, '2010-01-01 11:31', '2010-01-01 11:32 ', '2010-01-01 11:33', '2010-01-01 11:34 ', '2010-01-01 11:35'], NULL) a,
           ST_makeTrajectory('STPOINT '、'LINESTRINGZ(114.000529 33.588163 54.87、114.000535 33.578235 54.85、114.000447 33.578272 54.69、114.000348 33.578287 54.73、114.000245 33.578305 55.26、114.000163 33.588305 55.3)'::geometry、
                             ARRAY['2010-01-01 11:24:58 '::timestamp、'2010-01-01 11:31:02' 、'2010-01-01 11:33 '、'2010-01-01 11:33:09' 、'2010-01-01 11:34 '、'2010-01-01 11:34:'] 、NULL) b)
trajからst_LCSSimilarity(a、b、100) を選択します。
  st_lcssimilarity
-------------------
 2
 (1行)

 With traj AS (
    ST_makeTrajectory('STPOINT' 、'LINESTRINGZ(114.000528 33.588163 54.87、114.000535 33.588235 54.85、114.000447 33.588272 54.69、114.000348 33.588287 54.73、114.000245 33.588305 55.26、114.000153 33.588305 55.3)'::geometry、
                             ARRAY['2010-01-01 11:30 '::timestamp, '2010-01-01 11:31', '2010-01-01 11:32 ', '2010-01-01 11:33', '2010-01-01 11:34 ', '2010-01-01 11:35'], NULL) a,
           ST_makeTrajectory('STPOINT '、'LINESTRINGZ(114.000529 33.588163 54.87、114.000535 33.578235 54.85、114.000447 33.578272 54.69、114.000348 33.578287 54.73、114.000245 33.578305 55.26、114.000163 33.588305 55.3)'::geometry、
                             ARRAY['2010-01-01 11:29:58 '::timestamp、'2010-01-01 11:31:02' 、'2010-01-01 11:33 '、'2010-01-01 11:34:15' 、'2010-01-01 11:34:50 '、'2010-01-01 11:34:50' 、'2010-01-01 34:30 '] 、NULL) b)
trajからst_LCSSimilarity(a、b、100、間隔 '30秒 ') を選択します。
 st_lcssimilarity
-------------------
2
(1行)