All Products
Search
Document Center

ApsaraDB RDS:ST_Density

Last Updated:Mar 29, 2026

ST_Density mengembalikan larik integer yang setiap elemennya menyatakan jumlah titik pengambilan sampel dalam lingkungan sekitar titik lintasan yang bersesuaian.

Sintaksis

integer[] ST_Density(trajectory traj, float dr, interval dt);

Parameter

ParameterTypeDescription
trajtrajectoryLintasan yang akan dianalisis.
drfloatRentang spasial dari lingkungan sekitar.
dtintervalRentang waktu dari lingkungan sekitar.

Cara kerja

Untuk setiap titik dalam lintasan, ST_Density menghitung semua titik pengambilan sampel yang jarak spasialnya dari titik tersebut kurang dari dr dan selisih waktunya dari titik tersebut kurang dari dt. Setiap titik selalu menghitung dirinya sendiri.

Jarak spasial dihitung berdasarkan SRID lintasan tersebut.

Contoh

Contoh berikut membuat lintasan dengan lima titik dan menghitung kerapatan lingkungan sekitarnya menggunakan radius spasial 400.000 unit dan radius waktu 10 menit.

SELECT ST_Density(
  st_makeTrajectory(
    'STPOINT'::leaftype,
    ARRAY[1::float8, 2, 3, 4, 5],           -- koordinat x
    ARRAY[2::float8, 10, 9, 8, 7],          -- koordinat y
    4326,                                    -- SRID (WGS 84)
    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'
    ]
  ),
  400000,       -- dr: rentang spasial
  '10 minute'   -- dt: rentang waktu
);

Hasil:

 st_density
-------------
 {1,3,4,4,3}
(1 row)

Setiap nilai dalam larik tersebut berkorespondensi dengan satu titik lintasan:

Indeks titikTimestampJumlah tetangga
111:301
211:313
311:324
411:334
511:343

Titik-titik tengah (3 dan 4) memiliki nilai tertinggi karena berada dalam rentang spasial maupun temporal dari lebih banyak titik tetangga.

Lanjutan