All Products
Search
Document Center

Hologres:Fungsi spasial PostGIS

Last Updated:Aug 19, 2026

PostGIS memperluas Hologres dengan tipe data spasial, fungsi, dan operator untuk menyimpan, mengkueri, serta menganalisis data geografis — mulai dari filter kotak pembatas dan pencarian kedekatan hingga pemeriksaan irisan poligon dan perhitungan jarak.

Hologres mendukung PostGIS 3.0.0.

Dukungan mesin

Di Hologres V1.3 dan versi lebih baru, sebagian besar fungsi PostGIS berjalan pada Hologres Query Engine (HQE) yang dikembangkan oleh Alibaba Cloud, sehingga memberikan performa kueri lebih baik dibandingkan PostgreSQL Query Engine (PQE). Pada versi sebelum V1.3, fungsi-fungsi tersebut berjalan di PQE, sehingga performanya mungkin lebih rendah. Untuk mengetahui mesin yang digunakan setiap fungsi, lihat Fungsi spasial: setiap tabel fungsi menyebutkan mesin untuk seluruh kelompok atau mencantumkannya di kolom Required engine.

Instal dan uninstal ekstensi PostGIS

Jalankan pernyataan berikut sebagai superuser untuk menginstal PostGIS ke dalam database. Instalasi dilakukan per database — ulangi langkah ini untuk setiap database yang memerlukan dukungan spasial.

-- Install PostGIS secara eksplisit ke dalam skema public.
CREATE EXTENSION IF NOT EXISTS postgis SCHEMA public;
PostGIS tidak dapat diinstal di skema pg_catalog.

Untuk memverifikasi instalasi, jalankan:

SELECT public.postgis_full_version();

Instalasi yang berhasil mengembalikan string versi seperti POSTGIS="3.0.0 ...".

Catatan

postgis_full_version() adalah fungsi PL/pgSQL di skema public. search_path default di Hologres mencakup public, sehingga Anda dapat memanggil fungsi tanpa awalan skema. Jika search_path sesi saat ini tidak mencakup public, pemanggilan akan gagal dengan pesan function postgis_full_version() does not exist. Contoh dalam topik ini menggunakan awalan public. agar berfungsi di bawah search_path apa pun.

Uninstal PostGIS

Untuk menghapus ekstensi:

DROP EXTENSION postgis;

Jika database masih berisi objek yang bergantung pada tipe geometry atau geography — misalnya, tabel yang dibuat seperti dijelaskan dalam Buat dan kueri tabel geometry — pernyataan tersebut akan gagal dengan pesan cannot drop extension postgis because other objects depend on it. Hapus terlebih dahulu objek yang bergantung tersebut:

  1. Cari objek dan kolom yang masih menggunakan tipe spasial:

    SELECT n.nspname AS schema_name, c.relname AS object_name, a.attname AS column_name, t.typname
    FROM pg_attribute a
      JOIN pg_class c ON c.oid = a.attrelid
      JOIN pg_type t ON t.oid = a.atttypid
      JOIN pg_namespace n ON n.oid = c.relnamespace
    WHERE t.typname IN ('geometry', 'geography')
      AND c.relkind IN ('r', 'p', 'm', 'f')
      AND a.attnum > 0
      AND NOT a.attisdropped
      AND n.nspname NOT LIKE 'pg_%';
  2. Hapus setiap tabel yang dikembalikan oleh kueri, atau hapus hanya kolom spasialnya:

    DROP TABLE <TABLE_NAME>;
    Catatan

    Jika recycle bin tabel diaktifkan — yang merupakan pengaturan default di Hologres V3.1 dan versi lebih baru — DROP TABLE memindahkan tabel ke recycle bin, sehingga Anda harus menyelesaikan langkah berikutnya. Untuk melewati recycle bin dan menghindari langkah berikutnya, jalankan DROP TABLE <TABLE_NAME> FORCE;. Untuk informasi lebih lanjut, lihat Recycle bin tabel.

  3. Kosongkan recycle bin. Tabel di recycle bin masih bergantung pada tipe spasial, sehingga tipe tersebut tetap sedang digunakan sampai recycle bin dikosongkan:

    CALL hologres.hg_purge_all_tables();
    Penting

    hg_purge_all_tables() menghapus secara permanen semua tabel di recycle bin database saat ini. Tindakan ini tidak dapat dibatalkan. Sebelum menjalankannya, pastikan recycle bin tidak berisi tabel yang masih Anda perlukan. Perintah ini harus dijalankan oleh superuser instans saat ini.

  4. Uninstal ekstensi:

    DROP EXTENSION postgis;
Penting

Hapus objek yang bergantung seperti dijelaskan di atas daripada menggunakan DROP EXTENSION postgis CASCADE, meskipun pesan error PostgreSQL menyarankan opsi CASCADE. Opsi CASCADE menghapus data ekstensi (data PostGIS, RoaringBitmap, Proxima, Binlog, dan BSI) bersama dengan semua objek yang bergantung pada ekstensi, termasuk metadata, tabel, tampilan, dan data server. Tindakan ini tidak dapat dibatalkan.

Selesaikan konflik spatial_ref_sys

Jika CREATE EXTENSION postgis gagal dengan error relation spatial_ref_sys already exists, database berisi sisa tabel sistem spatial_ref_sys dari instalasi sebelumnya. Perintah DROP EXTENSION postgis biasa tidak meninggalkan sisa apa pun, sehingga error ini biasanya muncul setelah migrasi dari database lain atau ketika tabel dengan nama yang sama dibuat secara manual. Selesaikan konflik sebagai berikut:

  1. Hapus ekstensi yang terinstal sebagian:

    DROP EXTENSION IF EXISTS postgis;
  2. Hapus tabel sistem sisa. Sebelum menjalankan pernyataan ini, pastikan bahwa tabel tersebut merupakan sisa dari instalasi sebelumnya, bukan tabel bisnis:

    DROP TABLE IF EXISTS spatial_ref_sys CASCADE;
  3. Instal ulang ekstensi PostGIS:

    CREATE EXTENSION IF NOT EXISTS postgis SCHEMA public;
  4. Verifikasi instalasi:

    SELECT public.postgis_full_version();

Buat dan kueri tabel geometry

PostGIS mendukung dua tipe data spasial di Hologres: geometry (koordinat planar/Kartesius) dan geography (koordinat bujur/latitude bola). Untuk detail tentang tipe geography, lihat dokumentasi geography PostGIS.

Tipe geometry lebih umum digunakan. Langkah-langkah berikut menunjukkan cara membuat tabel geometry dan menjalankan kueri spasial.

1. Buat tabel geometry

Saat membuat tabel, Anda dapat menentukan subtipe geometry. Subtipe yang didukung: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon.

Tanpa subtipe:

CREATE TABLE holo_gis_1 (
  id   INT,
  geom geometry,
  PRIMARY KEY (id)
);

Dengan subtipe dan identifier sistem referensi spasial (SRID):

CREATE TABLE holo_gis_2 (
  id   INT,
  geom geometry(point, 4326),
  PRIMARY KEY (id)
);

Pada contoh ini, subtipe adalah Point dan SRID-nya adalah 4326 (WGS 84). Jika SRID tidak ditentukan, nilai default-nya adalah 0. SRID geometri yang Anda masukkan atau gunakan dalam predikat kueri harus sesuai dengan SRID kolom. Jika tidak, pernyataan akan gagal dengan error seperti Geometry SRID (0) does not match column SRID (4326) atau Operation on mixed SRID geometries. Untuk informasi lebih lanjut tentang SRID, lihat dokumentasi PostGIS.

2. Masukkan data spasial

-- Tanpa SRID
INSERT INTO holo_gis_1 VALUES (1, ST_GeomFromText('point(116 39)'));

-- Dengan SRID 4326
INSERT INTO holo_gis_2 VALUES (1, ST_GeomFromText('point(116 39)', 4326));

Untuk informasi lebih lanjut tentang fungsi spasial, lihat Fungsi spasial.

3. Kueri data spasial

Setelah memasukkan data, Anda dapat menjalankan jenis kueri berikut.

Kueri rentang persegi panjang

Mengembalikan semua titik dalam kotak pembatas.

Tanpa SRID:

SELECT st_astext(geom)
FROM holo_gis_1
WHERE ST_Covers(
  ST_MakeBox2D(ST_Point(116, 39), ST_Point(117, 40)),
  geom
);

Dengan SRID:

SELECT st_astext(geom)
FROM holo_gis_2
WHERE ST_Covers(
  ST_SetSRID(ST_MakeBox2D(ST_Point(116, 39), ST_Point(117, 40)), 4326),
  geom
);

Kedua kueri mengembalikan:

st_astext
-------------
POINT(116 39)
Catatan

Untuk dataset besar, gunakan operator kotak pembatas && sebagai filter kasar sebelum menjalankan predikat spasial eksak. Ini mengurangi jumlah baris yang mencapai perhitungan eksak. Operator && berjalan di HQE, sehingga biayanya lebih rendah dibandingkan fungsi topologis seperti ST_Intersects dan ST_Covers, yang dipush down ke PQE. Contohnya:

SELECT st_astext(geom)
FROM holo_gis_1
WHERE geom && ST_MakeBox2D(ST_Point(116, 39), ST_Point(117, 40))
  AND ST_Intersects(ST_GeomFromText('POLYGON((116 39,117 39,117 40,116 40,116 39))'), geom);

Jika Anda hanya membutuhkan filter rentang persegi panjang dan tidak memerlukan semantik topologis eksak, gunakan geom && ST_MakeBox2D(...) saja. Jika kolom memiliki SRID, bungkus kotak tersebut dalam ST_SetSRID dengan SRID yang sama. Jika tidak, pernyataan akan gagal dengan error Operation on mixed SRID geometries.

Pemeriksaan irisan poligon

Untuk menemukan titik yang berada di dalam poligon arbitrer atau berada di batasnya, gunakan ST_Intersects dengan poligon tersebut. Berbeda dengan kotak pembatas yang dibuat oleh ST_MakeBox2D, poligon dapat memiliki bentuk apa pun, dan ST_Intersects menganggap kontak batas sebagai kecocokan.

Tanpa SRID:

SELECT st_astext(geom)
FROM holo_gis_1
WHERE ST_Intersects(
  ST_GeomFromText('POLYGON((116 39,117 39,117 40,116 40,116 39))'),
  geom
);

Dengan SRID:

SELECT st_astext(geom)
FROM holo_gis_2
WHERE ST_Intersects(
  ST_SetSRID(ST_GeomFromText('POLYGON((116 39,117 39,117 40,116 40,116 39))'), 4326),
  geom
);

Kedua kueri mengembalikan:

st_astext
-------------
POINT(116 39)

Fungsi spasial

PostGIS menyediakan fungsi spasial untuk mengonversi dan menganalisis nilai geometry. Sintaks fungsi menggunakan parameter berikut:

  • geom: nilai geometry atau ekspresi yang dievaluasi menjadi geometry

  • precision: INTEGER yang mengontrol presisi output koordinat. Nama parameter, semantik, dan nilai default berbeda-beda tergantung fungsinya:

    • ST_AsText(geom [, precision]): jumlah digit signifikan. Nilai default 15.

    • ST_AsGeoJSON(geom [, maxdecimaldigits]): jumlah maksimum tempat desimal. Nilai default 9. Tentukan parameter ini secara eksplisit jika Anda perlu mempertahankan presisi lebih tinggi; jika tidak, koordinat yang diekspor akan kehilangan presisi.

    Kami merekomendasikan Anda menentukan nilai antara 1 hingga 20. Nilai di luar rentang ini diterima tetapi tidak menghasilkan digit tambahan yang bermakna, karena float presisi ganda hanya membawa sekitar 15 hingga 17 digit signifikan.

  • index: INTEGER; indeks berbasis 1 kecuali dinyatakan lain

  • srid: INTEGER; identifier sistem referensi spasial

Setiap fungsi berjalan pada salah satu mesin kueri berikut:

Mesin Kapan berlaku Performa
HQE (Hologres Query Engine) Hologres V1.3 dan versi lebih baru Lebih tinggi — dioptimalkan untuk beban kerja analitis
PQE (PostgreSQL Query Engine) Semua versi; diperlukan untuk fungsi tertentu Lebih rendah — mode kompatibilitas

Untuk spesifikasi lengkap fungsi PostGIS, lihat dokumentasi referensi PostGIS.

Catatan
  • Penugasan mesin dalam tabel berikut mencerminkan perilaku yang diukur pada Hologres V4.2 dan hanya menyebutkan mesin saat ini (HQE atau PQE). Mesin yang digunakan fungsi dapat berubah di berbagai versi. Untuk mengonfirmasi mesin untuk instans Anda, periksa apakah output EXPLAIN berisi node PQE. Untuk dukungan mesin keseluruhan berdasarkan versi, lihat Dukungan mesin.

  • Tabel berikut mencantumkan signature yang umum digunakan untuk setiap fungsi. Beberapa fungsi menerima overload tambahan — misalnya, ST_MakeLine juga menerima array geometri, dan ST_AddPoint juga menerima posisi penyisipan. Lihat dokumentasi referensi PostGIS untuk daftar lengkap overload, serta fungsi yang muncul dalam contoh tetapi tidak tercantum dalam tabel ini, seperti ST_MakeBox2D.

Konstruktor geometry

Semua fungsi dalam kelompok ini berjalan di HQE.

Fungsi Sintaks Nilai Kembali Deskripsi
ST_LineFromMultiPoint ST_LineFromMultiPoint(geom) GEOMETRY Membuat linestring dari geometri multipoint, mempertahankan urutan titik. Geometri yang dikembalikan memiliki SRID yang sama dengan input.
ST_MakeEnvelope ST_MakeEnvelope(xmin, ymin, xmax, ymax [, srid]) GEOMETRY (POLYGON) Membuat poligon persegi panjang yang didefinisikan oleh koordinat sudut yang diberikan, di mana koordinat menentukan sudut kiri bawah dan kanan atas. Hasilnya selalu POLYGON, bahkan ketika koordinat runtuh menjadi garis atau titik tunggal. Jika SRID disediakan, geometri yang dikembalikan menggunakan SRID tersebut; jika tidak, SRID-nya adalah 0.
ST_MakeLine ST_MakeLine(geom1, geom2) GEOMETRY (LINESTRING) Membuat linestring dari dua geometri input.
ST_MakePoint ST_MakePoint(x, y) GEOMETRY (POINT) Membuat titik dari nilai koordinat.
ST_Point ST_Point(x, y) GEOMETRY (POINT) Membuat titik dari nilai koordinat.
ST_Polygon ST_Polygon(linestring, srid) GEOMETRY (POLYGON) Membuat poligon yang cincin luarnya adalah linestring input, dengan SRID yang diberikan.

Aksesor geometry

Semua fungsi dalam kelompok ini berjalan di HQE, kecuali ST_IsPolygonCCW, yang berjalan di PQE. Fungsi-fungsi ini bukan komplemen: ketika cincin luar dan cincin dalam memiliki orientasi yang sama, keduanya mengembalikan false. Jangan menegasikan ST_IsPolygonCW untuk menguji orientasi berlawanan arah jarum jam. Saat Anda memfilter tabel besar berdasarkan orientasi cincin, perhatikan juga bahwa kedua fungsi ini berjalan di mesin yang berbeda.

Fungsi Sintaks Nilai Kembali Deskripsi
GeometryType GeometryType(geom) TEXT Mengembalikan nama subtipe geometri input sebagai string, tanpa awalan dan dalam huruf kapital, seperti POINT atau POLYGON.
ST_Boundary ST_Boundary(geom) GEOMETRY Mengembalikan batas geometri input. Geometri kosong mengembalikan input apa adanya; titik atau multipoint tidak kosong mengembalikan koleksi geometri kosong; linestring mengembalikan multipoint dari titik batasnya; poligon tanpa cincin dalam mengembalikan linestring tertutup; poligon dengan cincin dalam atau multipolygon mengembalikan multilinestring dari semua cincin batas.
ST_Dimension ST_Dimension(geom) INTEGER Mengembalikan dimensi intrinsik dari subtipe geometri.
ST_Envelope ST_Envelope(geom) GEOMETRY Mengembalikan kotak pembatas minimum dari geometri input. Mengembalikan titik jika kotak tersebut runtuh menjadi titik, linestring dua titik jika berdimensi satu, atau poligon berorientasi searah jarum jam jika tidak. Geometri yang dikembalikan memiliki SRID yang sama dengan input.
ST_ExteriorRing ST_ExteriorRing(geom) GEOMETRY (LINESTRING) Mengembalikan cincin luar poligon sebagai linestring tertutup.
ST_GeometryN ST_GeometryN(geom, index) GEOMETRY Mengembalikan geometri pada indeks berbasis 1 yang diberikan. Untuk geometri sederhana (titik, linestring, poligon) dengan indeks 1, mengembalikan geometri itu sendiri; jika tidak, mengembalikan null. Untuk koleksi, mengembalikan elemen pada indeks tersebut.
ST_GeometryType ST_GeometryType(geom) TEXT Mengembalikan nama subtipe geometri input sebagai string, dengan awalan ST_, seperti ST_Point atau ST_Polygon. Awalan ini adalah satu-satunya perbedaan dari GeometryType, jadi pertimbangkan formatnya saat menulis kondisi kesetaraan.
ST_InteriorRingN ST_InteriorRingN(geom, index) GEOMETRY (LINESTRING) Mengembalikan cincin dalam poligon pada posisi indeks yang diberikan sebagai linestring tertutup.
ST_IsClosed ST_IsClosed(geom) BOOLEAN Mengembalikan true jika geometri tertutup. Titik atau multipoint selalu tertutup. Linestring tertutup jika titik awal dan akhirnya berimpit. Poligon tertutup jika semua cincin tidak kosong dan titik awal serta akhirnya berimpit.
ST_IsCollection ST_IsCollection(geom) BOOLEAN Mengembalikan true jika geometri adalah GEOMETRYCOLLECTION, MULTIPOINT, MULTILINESTRING, atau MULTIPOLYGON.
ST_IsEmpty ST_IsEmpty(geom) BOOLEAN Mengembalikan true jika geometri tidak berisi titik.
ST_IsPolygonCCW ST_IsPolygonCCW(geom) BOOLEAN Mengembalikan true jika cincin luar poligon input berorientasi berlawanan arah jarum jam dan semua cincin dalam berorientasi searah jarum jam. Mengembalikan false jika cincin luar dan cincin dalam memiliki orientasi yang sama. Juga mengembalikan true untuk titik, linestring, multipoint, dan multilinestring, untuk koleksi geometri yang elemen poligonnya memenuhi kondisi sebelumnya, dan untuk poligon kosong (POLYGON EMPTY).
ST_IsPolygonCW ST_IsPolygonCW(geom) BOOLEAN Mengembalikan true jika cincin luar poligon input berorientasi searah jarum jam dan semua cincin dalam berorientasi berlawanan arah jarum jam. Mengembalikan false jika cincin luar dan cincin dalam memiliki orientasi yang sama. Juga mengembalikan true untuk titik, linestring, multipoint, dan multilinestring, untuk koleksi geometri yang elemen poligonnya memenuhi kondisi sebelumnya, dan untuk poligon kosong (POLYGON EMPTY).
ST_IsSimple ST_IsSimple(geom) BOOLEAN Mengembalikan true jika geometri tidak memiliki titik geometris anomali seperti self-intersections.
ST_NPoints ST_NPoints(geom) INTEGER Mengembalikan jumlah titik dalam geometri.
ST_NRings ST_NRings(geom) INTEGER Mengembalikan jumlah cincin dalam geometri.
ST_NumGeometries ST_NumGeometries(geom) INTEGER Mengembalikan jumlah elemen dalam koleksi geometri.
ST_NumInteriorRings ST_NumInteriorRings(geom) INTEGER Mengembalikan jumlah cincin dalam pada poligon.
ST_NumPoints ST_NumPoints(geom) INTEGER Mengembalikan jumlah titik dalam geometri.
ST_PointN ST_PointN(geom, index) GEOMETRY (POINT) Mengembalikan titik pada indeks yang diberikan dalam linestring. Nilai indeks negatif dihitung dari akhir: -1 mengembalikan titik terakhir.
ST_Points ST_Points(geom) GEOMETRY (MULTIPOINT) Mengembalikan semua titik tidak kosong dalam geometri sebagai multipoint. Titik duplikat, termasuk titik awal dan akhir cincin, dipertahankan.
ST_StartPoint ST_StartPoint(geom) GEOMETRY Mengembalikan titik pertama linestring. Geometri yang dikembalikan memiliki SRID yang sama dengan input.
ST_X ST_X(point) DOUBLE PRECISION Mengembalikan koordinat X dari titik.
ST_Y ST_Y(point) DOUBLE PRECISION Mengembalikan koordinat Y dari titik.

Editor geometry

Semua fungsi dalam kelompok ini berjalan di HQE.

Fungsi Sintaks Nilai Kembali Deskripsi
ST_AddPoint ST_AddPoint(geom1, geom2) GEOMETRY Mengembalikan linestring dengan titik yang ditambahkan.
ST_Multi ST_Multi(geom) GEOMETRY (MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, atau GEOMETRYCOLLECTION) Mengonversi geometri ke tipe multi yang sesuai. Jika input sudah bertipe multi atau koleksi, mengembalikan salinan.
ST_RemovePoint ST_RemovePoint(geom, index) GEOMETRY Mengembalikan linestring dengan titik pada indeks berbasis nol yang diberikan dihapus. Geometri yang dikembalikan memiliki SRID yang sama dengan input.
ST_Reverse ST_Reverse(geom) GEOMETRY Membalik urutan vertex geometri linear atau areal. Untuk titik atau multipoint, mengembalikan salinan. Untuk koleksi, membalik vertex setiap elemen.
ST_SetPoint ST_SetPoint(geom1, index, geom2) GEOMETRY Mengembalikan linestring dengan titik pada indeks yang diberikan diganti dengan koordinat titik input.

Validasi geometry

Fungsi Sintaks Mengembalikan Mesin yang diperlukan Deskripsi
ST_IsValid ST_IsValid(geom) BOOLEAN PQE Mengembalikan true jika geometri valid menurut spesifikasi OGC.

Fungsi sistem referensi spasial

Semua fungsi dalam kelompok ini berjalan di HQE.

Fungsi Sintaks Nilai Kembali Deskripsi
ST_SetSRID ST_SetSRID(geom, srid) GEOMETRY Mengembalikan geometri input dengan SRID-nya diperbarui ke nilai yang diberikan. Tidak mereproyeksikan koordinat.
ST_SRID ST_SRID(geom) INTEGER Mengembalikan SRID dari geometri input.

Input geometry

Fungsi Sintaks Nilai Kembali Mesin yang diperlukan Deskripsi
ST_GeomFromText ST_GeomFromText(wkt_string [, srid]) GEOMETRY PQE Membangun geometri dari representasi well-known text (WKT)-nya.

Output geometry

Semua fungsi dalam kelompok ini berjalan di HQE.

Fungsi Sintaks Nilai Kembali Deskripsi
ST_AsBinary ST_AsBinary(geom) BYTEA Mengembalikan representasi well-known binary (WKB) dari geometri, dikodekan sebagai string heksadesimal menggunakan karakter ASCII 0–9 dan A–F.
ST_AsEWKB ST_AsEWKB(geom) BYTEA Mengembalikan representasi extended well-known binary (EWKB) dari geometri.
ST_AsEWKT ST_AsEWKT(geom) TEXT Mengembalikan representasi extended well-known text (EWKT) dari geometri.
ST_AsGeoJSON ST_AsGeoJSON(geom [, maxdecimaldigits]) TEXT Mengembalikan representasi GeoJSON dari geometri.
ST_AsText ST_AsText(geom [, precision]) TEXT Mengembalikan representasi WKT dari geometri.

Predikat hubungan spasial

Mesin bervariasi tergantung fungsinya dalam kelompok ini. Lihat kolom Mesin yang diperlukan.

Fungsi Sintaks Nilai Kembali Mesin yang diperlukan Deskripsi
ST_Contains ST_Contains(geom1, geom2) BOOLEAN PQE Mengembalikan true jika setiap titik geom2 berada di geom1 dan interior keduanya beririsan. Setara dengan ST_Within(geom2, geom1).
ST_ContainsProperly ST_ContainsProperly(geom1, geom2) BOOLEAN PQE Mengembalikan true jika kedua geometri tidak kosong dan semua titik geom2 berada di interior (bukan batas) geom1.
ST_CoveredBy ST_CoveredBy(geom1, geom2) BOOLEAN HQE Mengembalikan true jika setiap titik geom1 berada di geom2. Setara dengan ST_Covers(geom2, geom1).
ST_Covers ST_Covers(geom1, geom2) BOOLEAN PQE Mengembalikan true jika setiap titik geom2 berada di geom1. Setara dengan ST_CoveredBy(geom2, geom1).
ST_Crosses ST_Crosses(geom1, geom2) BOOLEAN HQE Mengembalikan true jika kedua geometri beririsan.
ST_Disjoint ST_Disjoint(geom1, geom2) BOOLEAN HQE Mengembalikan true jika kedua geometri tidak berbagi titik.
ST_DWithin ST_DWithin(geom1, geom2, threshold) BOOLEAN PQE Mengembalikan true jika jarak Euclidean antara kedua geometri tidak melebihi ambang batas.
ST_DWithin_S2 ST_DWithin_S2(x1, y1, x2, y2, threshold) BOOLEAN HQE Mengembalikan true jika jarak bola antara dua lokasi geografis kurang dari atau sama dengan threshold (satuan: meter). Parameter secara berurutan: bujur Lokasi 1, latitude Lokasi 1, bujur Lokasi 2, latitude Lokasi 2, ambang batas jarak. Didukung di Hologres V2.0.8 dan versi lebih baru. Input konstan tidak didukung di versi saat ini.
ST_Equals ST_Equals(geom1, geom2) BOOLEAN HQE Mengembalikan true jika kedua geometri memiliki himpunan titik yang sama dan interior keduanya beririsan.
ST_Intersects ST_Intersects(geom1, geom2) BOOLEAN PQE Mengembalikan true jika kedua geometri berbagi setidaknya satu titik.
ST_Touches ST_Touches(geom1, geom2) BOOLEAN HQE Mengembalikan true jika kedua geometri saling menyentuh — mereka beririsan tetapi tidak berbagi titik interior.
ST_Within ST_Within(geom1, geom2) BOOLEAN PQE Mengembalikan true jika setiap titik geom1 berada di geom2 dan interior keduanya beririsan. Setara dengan ST_Contains(geom2, geom1).

Fungsi pengukuran

Fungsi Sintaks Nilai Kembali Mesin yang diperlukan Deskripsi
ST_Angle ST_Angle(geom1, geom2, geom3 [, geom4]) DOUBLE PRECISION HQE Mengembalikan sudut searah jarum jam dalam radian pada rentang [0, 2π). Dengan tiga titik, mengukur rotasi dari P1 ke P3 mengelilingi P2. Dengan empat titik, mengukur sudut antara garis berarah P1–P2 dan P3–P4; mengembalikan null jika P1 sama dengan P2 atau P3 sama dengan P4.
ST_Area ST_Area(geom) DOUBLE PRECISION HQE Mengembalikan luas Kartesius geometri dalam satuan yang sama dengan sistem koordinat. Mengembalikan 0 untuk titik, linestring, dan tipe multi-nya. Untuk koleksi, mengembalikan jumlah luas semua elemen.
ST_Azimuth ST_Azimuth(point1, point2) DOUBLE PRECISION HQE Mengembalikan azimuth Kartesius berbasis utara yang didefinisikan oleh dua titik.
ST_Distance ST_Distance(geom1, geom2) DOUBLE PRECISION HQE Mengembalikan jarak Kartesius antara dua geometri, dinyatakan dalam satuan yang sama dengan koordinat input. Untuk menghitung jarak bola dalam meter, gunakan ST_Distance_Sphere_S2, yang menerima nilai bujur dan latitude daripada geometri.
ST_Distance_Sphere_S2 ST_Distance_Sphere_S2(x1, y1, x2, y2) DOUBLE PRECISION HQE Mengembalikan jarak bola antara dua lokasi geografis dalam meter. Parameter secara berurutan: bujur Lokasi 1, latitude Lokasi 1, bujur Lokasi 2, latitude Lokasi 2. Rentang latitude valid: [-90, +90]. Rentang bujur valid: [-180, +180]. Didukung di Hologres V2.0.8 dan versi lebih baru. Input konstan tidak didukung di versi saat ini.
ST_Length ST_Length(geom) DOUBLE PRECISION HQE Mengembalikan panjang Kartesius geometri linear dalam satuan yang sama dengan sistem koordinat. Mengembalikan 0 untuk titik, multipoint, dan geometri areal. Untuk koleksi, mengembalikan panjang total.
ST_Perimeter ST_Perimeter(geom) DOUBLE PRECISION HQE Mengembalikan perimeter Kartesius (panjang batas) geometri areal dalam satuan yang sama dengan sistem koordinat. Mengembalikan 0 untuk titik, multipoint, dan geometri linear. Untuk koleksi, mengembalikan jumlah perimeter semua elemen.

Fungsi overlay

Fungsi Sintaks Mengembalikan Mesin yang diperlukan Deskripsi
ST_Intersection ST_Intersection(geom1, geom2) GEOMETRY HQE Mengembalikan irisan geometris dari dua geometri.

Fungsi pemrosesan geometry

Fungsi Sintaks Mengembalikan Mesin yang diperlukan Deskripsi
ST_Buffer ST_Buffer(geom, radius) Sama dengan tipe input: GEOMETRY untuk input geometry, GEOGRAPHY untuk input geography PQE Mengembalikan geometri yang merepresentasikan semua titik dalam radius yang diberikan dari geometri input.
ST_ConvexHull ST_ConvexHull(geom) GEOMETRY HQE Mengembalikan convex hull dari semua titik tidak kosong dalam geometri input.
ST_Simplify ST_Simplify(geom, tolerance) GEOMETRY HQE Mengembalikan salinan geometri yang disederhanakan menggunakan algoritma Ramer-Douglas-Peucker dengan toleransi yang diberikan. Topologi mungkin tidak dipertahankan.

Fungsi kotak pembatas

Semua fungsi dalam kelompok ini berjalan di PQE.

Fungsi Sintaks Pengembalian Deskripsi
ST_XMax ST_XMax(geom) DOUBLE PRECISION Mengembalikan koordinat X maksimum dari kotak pembatas geometri. Tipe parameter adalah box3d; input geometry dikonversi secara implisit.
ST_XMin ST_XMin(geom) DOUBLE PRECISION Mengembalikan koordinat X minimum dari kotak pembatas geometri. Tipe parameter adalah box3d; input geometry dikonversi secara implisit.
ST_YMax ST_YMax(geom) DOUBLE PRECISION Mengembalikan koordinat Y maksimum dari kotak pembatas geometri. Tipe parameter adalah box3d; input geometry dikonversi secara implisit.
ST_YMin ST_YMin(geom) DOUBLE PRECISION Mengembalikan koordinat Y minimum dari kotak pembatas geometri. Tipe parameter adalah box3d; input geometry dikonversi secara implisit.

Fungsi referencing linear

Fungsi Sintaks Nilai Kembali Mesin yang diperlukan Deskripsi
ST_LineInterpolatePoint ST_LineInterpolatePoint(geom, fraction) GEOMETRY (POINT) HQE Mengembalikan titik pada jarak fraksional sepanjang garis, diukur dari awal. Misalnya, fraction=0.5 mengembalikan titik tengah.

Praktik terbaik penggunaan fungsi spasial

Untuk contoh end-to-end pola analisis geografis umum, lihat Gunakan fungsi spasial untuk mengkueri data.