全部产品
Search
文档中心

ApsaraDB RDS:Konsep Dasar

更新时间:Jun 25, 2025

Topik ini memperkenalkan konsep dasar dari Trajectory SQL.

Objek Trajektori

Konsep

Deskripsi

Trajectory Point

Objek spatio-temporal yang terdiri dari lokasi spasial dan atribut objek bergerak pada waktu tertentu. Lokasi spasial dapat direpresentasikan dengan koordinat 2D atau 3D. Atribut dapat berupa sejumlah bidang yang menggunakan tipe data berbeda.

Trajectory Object

Objek berdimensi tinggi yang terdiri dari titik-titik trajektori dan peristiwa. Secara khusus, objek berdimensi tinggi ini mencakup waktu, ruang, atribut, dan peristiwa.

Trajectory Timeline

Urutan nilai waktu dari sebuah trajektori. Nilai waktu dalam urutan tersebut harus berurutan.

Trajectory Spatial

Geometri spasial dari sebuah trajektori. Dalam kebanyakan kasus, geometri spasial dijelaskan dengan menggunakan tipe data LineString.

Trajectory Leaf

Lokasi spasial objek bergerak pada waktu tertentu. Lokasi spasial adalah titik trajektori.

Trajectory Attributes

Atribut yang menggambarkan trajektori objek bergerak pada titik-titik trajektori yang berbeda. Atribut ini meliputi kecepatan dan arah.

Trajectory Attribute Field

Bidang atribut yang menggambarkan trajektori objek bergerak. Jumlah nilai untuk bidang atribut, seperti bidang kecepatan, sama dengan jumlah titik trajektori objek bergerak.

Trajectory Field Value

Nilai dari bidang atribut pada waktu tertentu.

Trajectory Events

Peristiwa yang terjadi sepanjang trajektori. Sebagai contoh, peristiwa ini mencakup pengisian bahan bakar, kerusakan, dan peristiwa penguncian mobil yang bergerak sepanjang trajektori. Peristiwa terdiri dari ID jenis peristiwa dan waktu peristiwa.

Gambar berikut menunjukkan trajektori objek yang bergerak.

Objek BoxNDF

Komputasi pada objek terkait trajektori, termasuk trajektori dan geometri, bersifat kompleks. Kubus lebih mudah dihitung dibandingkan dengan objek terkait trajektori tersebut dan dapat digunakan untuk mendeskripsikan kueri atau menyederhanakan operasi komputasi. Tipe data BoxNDF digunakan untuk mendeskripsikan kubus.

Objek BoxNDF adalah kubus spasio-temporal multi-dimensi yang dinyatakan oleh nilai minimum dan maksimum pada empat sumbu koordinat berikut: x, y, z, dan t. Sumbu z mewakili ruang, sedangkan sumbu t mewakili waktu. Kubus dapat mencakup sumbu yang berbeda. Sebagai contoh, kubus dapat mencakup sumbu x dan y atau mencakup sumbu x, y, z, dan t.

Saat menjalankan kueri, Anda dapat menggunakan kubus untuk menentukan ruang lingkup kueri. Selain itu, Anda dapat menggunakan kotak pembatas trajektori atau geometri untuk mempermudah kueri. Gambar berikut menunjukkan trajektori dan kotak pembatas objek yang bergerak pada sumbu x, sumbu y, dan sumbu t.

Gambar berikut menunjukkan kotak pembatas objek.

Example bounding box

Tipe data untuk nilai waktu di PostgreSQL

PostgreSQL mendukung tipe data berikut untuk nilai waktu:

  • TIMESTAMPTZ: nilai waktu dengan informasi zona waktu.

  • TIMESTAMP: nilai waktu tanpa informasi zona waktu.

  • INTERVAL: rentang waktu.

Dalam modul trajektori GanosBase, tipe TIMESTAMP digunakan, dan tipe INTERVAL digunakan untuk mempermudah komputasi. Dalam kebanyakan kasus, nilai TIMESTAMP dinyatakan sebagai string, seperti 2000-01-01 10:00:00. Pernyataan berikut menunjukkan operasi umum pada nilai waktu:

-- Buat nilai waktu dari tipe TIMESTAMP.
SELECT '2000-01-01 10:00:00'::timestamp;

-- Konversikan timestamp UNIX menjadi nilai waktu dari tipe TIMESTAMP. Ekstensi ganos_trajectory diperlukan.
SELECT ST_UnixEpochToTS(1649765331);

-- Konversikan nilai waktu dari tipe TIMESTAMP menjadi timestamp UNIX.
SELECT ST_TsToUnixEpoch('2022-04-12 12:08:51');

-- Tambahkan nilai dari tipe INTERVAL ke nilai waktu atau kurangi nilai dari tipe INTERVAL dari nilai waktu.
SELECT '2000-01-01 10:00:00'::timestamp + '30 day'::interval;
SELECT '2000-01-01 10:00:00'::timestamp - '1 month'::interval;

Geometri dalam GanosBase

Sebuah geometri dalam GanosBase adalah objek yang dapat berupa titik, garis, atau poligon dalam dua dimensi atau tiga dimensi. GanosBase kompatibel dengan antarmuka PostGIS. Dalam modul trajektori GanosBase, beberapa komputasi spasial antara trajektori dan geometri didukung.

-- Bangun titik (2,4).
SELECT 'POINT(2 4)'::geometry;

-- Bangun garis patah (2,4)->(0,0)->(5,3).
SELECT 'LINESTRING(2 4, 0 0, 5 3)';

-- Bangun poligon. Dalam contoh ini, segitiga dengan simpul (3,3), (2,2), dan (5,5) dibangun.
SELECT 'POLYGON(3 3, 5 5, 2 2, 3 3)';

-- Bangun lingkaran dengan pusat (0,1) dan jari-jari 3. Lingkaran didekati oleh poligon. Dalam kebanyakan kasus, fungsi seperti ST_DistanceWithin daripada ST_Buffer digunakan untuk menanyakan persimpangan lingkaran. 
SELECT ST_Buffer('POINT(0 1)', 3);

Dalam ruang 2D, pernyataan di atas dapat langsung digunakan. Jarak Euclidean tidak cocok dalam beberapa skenario. Jika Anda menghitung jarak antara dua titik yang dinyatakan menggunakan lintang dan bujur, Anda harus menghitung jarak antara titik-titik tersebut di permukaan Bumi, bukan jarak Euclidean. Dalam beberapa kasus, Anda diminta untuk mengukur jarak dalam meter. Pengenal referensi spasial (SRID) diatur ke 4326 untuk lintang dan bujur. SRID 4326 menunjukkan bahwa sistem World Geodetic System 1984 (WGS84) digunakan.

-- Bangun titik (2,4).
SELECT 'SRID=4326;POINT(2 4)'::geometry;

-- Bangun garis patah (2,4)->(0,0)->(5,3).
SELECT 'SRID=4326;LINESTRING(2 4, 0 0, 5 3)';

-- Bangun poligon. Dalam contoh ini, segitiga dengan simpul (3,3), (2,2), dan (5,5) dibangun.
SELECT 'SRID=4326;POLYGON(3 3, 5 5, 2 2, 3 3)';

-- Bangun lingkaran dengan pusat (0,1) dan jari-jari 3. Lingkaran didekati oleh poligon. Dalam kebanyakan kasus, fungsi seperti ST_DistanceWithin daripada ST_Buffer digunakan untuk menanyakan persimpangan lingkaran. 
SELECT ST_SetSRID(ST_Buffer('POINT(0 1)', 3),4326);

Koordinat titik bervariasi berdasarkan sistem koordinat proyeksi (PCS). Untuk mempermudah perhitungan jarak, Anda dapat mengonversi koordinat lintang dan bujur menjadi koordinat dalam meter.

-- Konversikan PCS ke EPSG:3857, yaitu sistem koordinat proyeksi Mercator Spherical yang dipopulerkan oleh layanan web seperti layanan Google. Dalam sistem ini, meter digunakan untuk mengukur titik. EPSG:3857 sering digunakan dalam aplikasi peta.
SELECT ST_Transform('SRID=4326;POINT(114 39)'::geometry, 3857);

-- Konversikan PCS ke EPSG:4479, proyeksi Gauss Kruger yang lebih akurat untuk China.
SELECT ST_Transform('SRID=4326;POINT(114 39)'::geometry, 4479);