Lindorm GanosBase mendukung tipe data geometri berdasarkan standar Open Geospatial Consortium (OGC). Tipe-tipe ini digunakan untuk menentukan kolom spasial dalam tabel spatio-temporal serta membaca dan menulis objek geometri dalam format Well-Known Text (WKT) atau Well-Known Binary (WKB).
Hierarki tipe
Geometry adalah tipe induk abstrak. Semua nilai geometri termasuk dalam salah satu subtipenya yang konkret, yang terbagi menjadi dua kategori:
Atomic types — merepresentasikan satu bentuk: Point, LineString, Polygon
Collection types — merepresentasikan sekumpulan bentuk: MultiPoint, MultiLineString, MultiPolygon, GeometryCollection
Gunakan subtype tertentu saat menentukan kolom spasial. Kolom bertipe Geometry dapat menyimpan semua subtype, tetapi indeks spatio-temporal yang dibuat untuk subtype tertentu tidak dapat diterapkan pada kolom Geometry.
Tipe geometri
| Type | Description | Use cases |
|---|---|---|
| Geometry | Tipe induk abstrak. Menyimpan semua subtype, tetapi pengindeksan spatio-temporal tidak tersedia pada level subtype. Hindari menggunakan Geometry sebagai tipe kolom; gunakan subtype tertentu sebagai gantinya. | — |
| Point | Lokasi tunggal yang diidentifikasi oleh bujur (x) dan lintang (y). Objek titik tiga dimensi tidak dapat digunakan untuk perhitungan; Lindorm GanosBase mengonversinya menjadi dua dimensi selama perhitungan. | Koordinat GPS untuk kendaraan dan kapal |
| LineString | Urutan terurut dari dua titik atau lebih, di mana titik akhir segmen garis merupakan titik awal segmen berikutnya. Dua segmen dapat berbagi vertex. | Jalan raya, lintasan kendaraan |
| Polygon | Bentuk tertutup yang batas luarnya merupakan garis tertutup (titik awal sama dengan titik akhir). Memerlukan minimal tiga titik. Dapat memiliki batas dalam (hole). | Geofence, blok lahan, pembagian administratif, persegi panjang, lingkaran |
| MultiPoint | Kumpulan nol atau lebih objek Point. | Lokasi loket tiket di taman hiburan |
| MultiLineString | Kumpulan nol atau lebih objek LineString. | Jalan yang terdiri atas beberapa segmen garis |
| MultiPolygon | Kumpulan nol atau lebih objek Polygon. | Kota yang terdiri atas beberapa kabupaten atau distrik |
| GeometryCollection | Kumpulan nol atau lebih objek geometri dari tipe apa pun. | Set data geometri campuran |
Pilih subtype
| If your data represents... | Use |
|---|---|
| Lokasi tunggal (titik GPS, landmark) | Point |
| Lintasan atau trajektori (segmen jalan, rute kendaraan) | LineString |
| Area tertutup (batas, wilayah, zona) | Polygon |
| Beberapa lokasi diskrit | MultiPoint |
| Beberapa lintasan | MultiLineString |
| Beberapa area | MultiPolygon |
| Campuran berbagai bentuk | GeometryCollection |
Format WKT
Well-Known Text (WKT) adalah format teks yang ditentukan oleh OGC untuk mendeskripsikan objek geometri. Untuk informasi lebih lanjut, lihat Well-Known Text.
String WKT tidak boleh mengandung Spatial Reference IDentifier (SRID).
GanosBase mendukung WKT untuk tipe-tipe berikut: Point, LineString, Polygon, MultiPoint, MultiLineString, dan MultiPolygon.
Referensi sintaksis
| Type | Syntax |
|---|---|
| Point | POINT(x y) — x adalah bujur, y adalah lintang |
| LineString | LINESTRING(x1 y1, x2 y2, ..., xn yn) — urutan n titik |
| Polygon | POLYGON((x1 y1, ..., xn yn), (xa ya, ..., xm ym)) — batas luar diikuti oleh batas dalam opsional |
| MultiPoint | MULTIPOINT(x1 y1, x2 y2, ..., xn yn) — kumpulan n titik |
| MultiLineString | MULTILINESTRING((x11 y11, ..., x1n y1n), (x21 y21, ..., x2m y2m), ...) — kumpulan objek LineString |
| MultiPolygon | MULTIPOLYGON(((x11 y11, ..., x1n y1n)), ((x21 y21, ..., x2m y2m)), ...) — kumpulan objek Polygon |
| GeometryCollection | GEOMETRYCOLLECTION(Point/LineString/Polygon/MultiPoint/MultiLineString/MultiPolygon) — kumpulan campuran |
Contoh WKT
-- Point
POINT(-10.1 3.3)
POINT EMPTY
-- LineString
LINESTRING(3 4, 10 50, 20 25)
LINESTRING EMPTY
-- Polygon: hanya batas luar
POLYGON((2 2, 2 8, 8 8, 8 2, 2 2))
-- Polygon: batas luar + batas dalam (hole)
POLYGON((0.5 0.5, 5 0, 5 5, 0 5, 0.5 0.5), (1.5 1, 4 3, 4 1, 1.5 1))
POLYGON EMPTY
-- MultiPoint
MULTIPOINT(10 40, 40 30, 20 20, 30 10)
-- Setara dengan: POINT(10 40), POINT(40 30), POINT(20 20), POINT(30 10)
-- MultiLineString
MULTILINESTRING((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10))
-- Setara dengan: LINESTRING(10 10, 20 20, 10 40) dan LINESTRING(40 40, 30 30, 40 20, 30 10)
-- MultiPolygon: dua poligon hanya dengan batas luar
MULTIPOLYGON(((30 20, 45 40, 10 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5)))
-- MultiPolygon: satu poligon hanya dengan batas luar + satu poligon dengan batas luar dan dalam
MULTIPOLYGON(((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20)))
-- GeometryCollection
GEOMETRYCOLLECTION(POINT(40 10), LINESTRING(10 10, 20 20, 10 40), POLYGON((40 40, 20 45, 45 30, 40 40)))Buat objek geometri dari WKT
Gunakan ST_GeomFromText untuk membuat objek geometri dari string WKT. Untuk informasi lebih lanjut, lihat Geometry constructors.
Buat objek geometri dari koordinat
Gunakan ST_MakePoint untuk membuat objek Point dari koordinat, atau ST_LineFromMultiPoint untuk membuat LineString dari beberapa koordinat titik. Untuk informasi lebih lanjut, lihat Geometry constructors.
Format WKB
Well-Known Binary (WKB) adalah format biner yang ditentukan oleh OGC untuk mendeskripsikan objek geometri. Untuk informasi lebih lanjut, lihat Well-Known Binary.
GanosBase mendukung WKB untuk tipe-tipe berikut: Point, LineString, Polygon, MultiPoint, MultiLineString, dan MultiPolygon.
Objek geometri dikeluarkan sebagai string WKB heksadesimal. Contoh berikut menunjukkan kueri yang menghasilkan output WKB:
SELECT ST_GeomFromText('POINT(-10.1 3.3)') as p;Output:
+--------------------------------+
| p |
+--------------------------------+
| 0020000001000010E6C02433333333 |
| 3333400A666666666666 |
+--------------------------------+Gunakan ST_AsText untuk mengeluarkan objek geometri sebagai string WKT. Untuk informasi lebih lanjut, lihat Output functions.