Tüm Ürünler
Search
Belge Merkezi

ApsaraDB RDS:Temel kavramlar

Son Güncelleme:Oct 05, 2026

Trajectory SQL, ApsaraDB RDS for PostgreSQL için geliştirilmiş bir GanosBase uzantısıdır. Nesnelerin uzay ve zaman içindeki hareketini modeller ve sorgular. Bu konu, zamansal-mekansal sorgular yazmaya başlamadan önce bilmeniz gereken temel veri türlerini ve kavramları tanıtır.

Trajectory nesneleri

Bir trajectory (hareket izi), bir nesnenin tam hareket kaydını temsil eder; nesnenin nerede olduğunu, ne zaman orada bulunduğunu ve her an neler gerçekleştiğini içerir. Trajectory SQL bu kaydı aşağıdaki bileşenlere ayırır:

Kavram Açıklama
Trajectory Point Belirli bir anda hareket halindeki bir nesnenin anlık görüntüsüdür. Konumu (2B veya 3B koordinatlar) ve hız ya da yakıt seviyesi gibi herhangi bir sayıda nitelik alanını içerir.
Trajectory Object Zamanı, mekanı, nitelikleri ve olayları birleştiren, hareket halindeki bir nesnenin eksiksiz yüksek boyutlu kaydıdır.
Trajectory Timeline Bir trajectory içindeki zaman damgalarının sıralı dizisidir. Zaman damgaları ardışık olmalıdır.
Trajectory Spatial Bir trajectory yolunun mekansal geometrisidir; genellikle bir LineString olarak temsil edilir.
Trajectory Leaf Hareket halindeki bir nesnenin tek bir zaman noktasındaki mekansal konumudur. Bir Trajectory Point'in konumuna eşdeğerdir.
Trajectory Attributes Trajectory boyunca her nokta için kaydedilen nitelik verileridir (hız ve yön gibi). Her niteliğin her Trajectory Point için bir değeri vardır.
Trajectory Attribute Field Trajectory içindeki adlandırılmış bir nitelik sütunudur (örneğin, speed). Alan, Trajectory Point sayısı kadar değere sahiptir.
Trajectory Field Value Belirli bir Trajectory Attribute Field'ın belirli bir zaman noktasındaki değeridir.
Trajectory Events Trajectory boyunca gerçekleşen ayrık olaylardır. Örneğin, bir araç rotasında yakıt doldurma molası, arıza veya kapı kilitleme olayı. Her olay bir olay türü kimliği ve bir zaman damgası kaydeder.

Örnek: Bir teslimat aracının trajectory'si düzenli aralıklarla kaydedilen Trajectory Point'ler içerir. Her Trajectory Point aracın GPS koordinatlarını (Trajectory Leaf) saklarken; speed_kmh ve engine_temp gibi Trajectory Attribute Field'lar her noktadaki sensör okumalarını kaydeder. Araç yakıt almak için durduğunda bu durak bir Trajectory Event olarak yakalanır.

Aşağıdaki şekil, hareket halindeki bir nesnenin trajectory'sini gösterir.

BoxNDF nesneleri

Ham trajectory verileri üzerinde yapılan zamansal-mekansal hesaplamalar maliyetlidir. BoxNDF veri türü, arama alanını hassas trajectory işlemlerini uygulamadan önce daraltarak sorguları hızlandıran çok boyutlu bir sınırlayıcı kutu olan hafif bir yaklaşım sunar.

Bir BoxNDF nesnesi, en fazla dört eksen üzerindeki minimum ve maksimum değerlerle tanımlanan bir küptür: x, y, z (mekan) ve t (zaman). Tüm eksenler gerekli değildir; bir BoxNDF yalnızca x ve y eksenlerini veya aynı anda tüm dört ekseni kapsayabilir.

BoxNDF kullanımı:

  • Sorgu bölgesi belirtin: Aramak istediğiniz mekansal ve zamansal sınırları tanımlayın.

  • Bir trajectory veya geometriyi yaklaşık olarak temsil edin: Hassas kesişim veya içerme kontrollerini çalıştırmadan önce hızlı bir ön filtre olarak sınırlayıcı kutuyu kullanın.

Aşağıdaki şekil, x ekseni, y ekseni ve t ekseni boyunca hareket eden bir nesnenin sınırlayıcı kutusunu gösterir.

Example bounding box

Zaman değeri veri türleri

PostgreSQL üç adet zamanla ilgili veri türünü destekler. Kullanım durumunuza göre seçim yapın:

Tür Açıklama Ne zaman kullanılır
TIMESTAMP Saat dilimi bilgisi içermeyen bir zaman noktasıdır. GanosBase trajectory modülünde bunu kullanın. Tüm trajectory zaman damgaları TIMESTAMP türünü kullanır.
TIMESTAMPTZ Saat dilimi bilgisi içeren bir zaman noktasıdır. Uygulamanız birden fazla saat dilimindeki verileri işlemek zorundaysa kullanın.
INTERVAL Bir süredir (örneğin, 30 gün, 1 ay). Bir TIMESTAMP değerine süre eklemek veya çıkarmak gibi tarih aritmetiği işlemleri için kullanın.
GanosBase trajectory modülü, zaman damgalarını TIMESTAMP türü kullanarak depolar ve sorgular.

Bir TIMESTAMP değeri YYYY-MM-DD HH:MM:SS formatını kullanır; örneğin 2000-01-01 10:00:00.

Yaygın zaman değeri işlemleri:

-- Create a TIMESTAMP value.
SELECT '2000-01-01 10:00:00'::timestamp;

-- Convert a UNIX timestamp to TIMESTAMP. Requires the ganos_trajectory extension.
SELECT ST_UnixEpochToTS(1649765331);

-- Convert a TIMESTAMP to a UNIX timestamp.
SELECT ST_TsToUnixEpoch('2022-04-12 12:08:51');

-- Add an INTERVAL to a TIMESTAMP.
SELECT '2000-01-01 10:00:00'::timestamp + '30 day'::interval;

-- Subtract an INTERVAL from a TIMESTAMP.
SELECT '2000-01-01 10:00:00'::timestamp - '1 month'::interval;

Geometri türleri

GanosBase, hem 2B hem de 3B uzayda noktaları, çizgileri ve çokgenleri destekler. Geometri türü PostGIS arayüzleriyle uyumludur ve trajectory modülü, trajectory'ler ile geometri nesneleri arasındaki mekansal hesaplamaları destekler.

Temel geometri oluşturma

Aşağıdaki örneklerde geometri nesnelerini oluşturmak için Well-Known Text (WKT) notasyonu kullanılmaktadır:

-- Construct a point at (2, 4).
SELECT 'POINT(2 4)'::geometry;

-- Construct a line through (2,4), (0,0), and (5,3).
SELECT 'LINESTRING(2 4, 0 0, 5 3)';

-- Construct a triangular polygon with vertices at (3,3), (5,5), and (2,2).
SELECT 'POLYGON(3 3, 5 5, 2 2, 3 3)';

-- Approximate a circle: center (0,1), radius 3.
-- For circular range queries, use ST_DistanceWithin instead of ST_Buffer.
SELECT ST_Buffer('POINT(0 1)', 3);

Koordinatlar ve mekansal referans sistemleri

Verilerinizin kapsadığı alana göre koordinat yaklaşımınızı seçin:

  • Düz Kartezyen koordinatlar (SRID yok): Verileriniz yüzeyi düz kabul edebileceğiniz küçük, sınırlı bir alandaysa kullanın. Öklid mesafe hesaplamaları yerel ölçekli veriler için yeterince hızlı ve doğrudur.

  • SRID 4326 (WGS84) ile coğrafi koordinatlar: Verileriniz enlem ve boylam kullanıyorsa (örneğin, geniş alanları kapsayan GPS koordinatları) kullanın. Coğrafi koordinatlarda Öklid mesafesi anlamlı değildir; bunun yerine Dünya yüzeyi mesafe hesaplamalarını kullanın.

-- Construct a point at longitude 2, latitude 4, using WGS84.
SELECT 'SRID=4326;POINT(2 4)'::geometry;

-- Construct a line with WGS84 coordinates.
SELECT 'SRID=4326;LINESTRING(2 4, 0 0, 5 3)';

-- Construct a polygon with WGS84 coordinates.
SELECT 'SRID=4326;POLYGON(3 3, 5 5, 2 2, 3 3)';

-- Approximate a circle at (0,1) with radius 3, then assign SRID 4326.
SELECT ST_SetSRID(ST_Buffer('POINT(0 1)', 3), 4326);

Projekte koordinat sistemleri

Coğrafi koordinatlar (enlem ve boylam) konumları mesafe olarak değil, açı olarak ifade eder. Mesafeleri metre cinsinden ölçmek için ST_Transform kullanarak projekte koordinat sistemine (PCS) dönüştürün.

İki yaygın projeksiyon:

Projeksiyon EPSG kodu Açıklama En uygun kullanım
Spherical Mercator EPSG:3857 Metre cinsinden ölçüm yapar; web haritalama hizmetlerinde yaygın olarak kullanılır Genel web harita uygulamaları
Gauss-Kruger EPSG:4479 Çin için daha doğru, metre tabanlı bir projeksiyondur Çin'deki yüksek doğruluklu mesafe hesaplamaları
-- Convert WGS84 coordinates to Spherical Mercator (meters).
SELECT ST_Transform('SRID=4326;POINT(114 39)'::geometry, 3857);

-- Convert WGS84 coordinates to Gauss-Kruger (meters, accurate for China).
SELECT ST_Transform('SRID=4326;POINT(114 39)'::geometry, 4479);