All Products
Search
Document Center

AnalyticDB:Fungsi Operasi

Last Updated:Mar 29, 2026

Fungsi operasi menghitung hubungan spasial dan transformasi pada nilai GEOMETRY. Semua fungsi yang mengembalikan GEOMETRY menghasilkan output biner—bungkus hasilnya dalam ST_AsText() untuk mendapatkan Well-Known Text (WKT) yang dapat dibaca.

FunctionDescription
ST_Intersection(g1, g2)Mengembalikan irisan geometris antara g1 dan g2
ST_Envelope(g)Mengembalikan persegi panjang pembatas minimum dari suatu geometri
ST_Union(g1, g2)Mengembalikan gabungan himpunan titik dari dua geometri
geometry_union(array[g1, g2, ...])Mengembalikan gabungan himpunan titik dari array geometri
ST_Boundary(g)Mengembalikan batas suatu geometri sebagai geometri baru
ST_EnvelopeAsPts(g)Mengembalikan titik pojok kiri-bawah dan kanan-atas dari persegi panjang pembatas
ST_Difference(g1, g2)Mengembalikan bagian dari g1 yang tidak beririsan dengan g2
ST_ExteriorRing(g1)Mengembalikan cincin luar poligon sebagai linestring
ST_SymDifference(g1, g2)Mengembalikan bagian dari g1 dan g2 yang tidak saling beririsan

ST_Intersection

ST_Intersection(g1, g2)

Mengembalikan geometri yang merepresentasikan irisan antara g1 dan g2.

Tipe kembalian: GEOMETRY

Contoh:

Menjalankan SELECT ST_Intersection(...) secara langsung menghasilkan output biner. Gunakan ST_AsText() untuk mengonversinya menjadi teks yang dapat dibaca:

SELECT ST_AsText(ST_Intersection(ST_GeometryFromText('MULTIPOINT (50 100, 50 200)'), ST_GeometryFromText('Point (50 100)')));

Hasil:

+-----------------------------------------------------------------------------------------------------------------------+
| ST_AsText(ST_Intersection(ST_GeometryFromText('MULTIPOINT (50 100, 50 200)'), ST_GeometryFromText('Point (50 100)'))) |
+-----------------------------------------------------------------------------------------------------------------------+
| POINT (50 100)                                                                                                        |

Fungsi terkait: ST_Union, ST_Difference, ST_SymDifference, ST_AsText

ST_Envelope

ST_Envelope(g)

Mengembalikan representasi biner dari persegi panjang pembatas minimum (envelope) yang melingkupi geometri input.

Tipe input yang didukung: LINE, POLYGON, MULTILINE, MULTIPOLYGON

Input POINT tidak didukung.

Tipe kembalian: GEOMETRY

Contoh 1 — Envelope dari LINESTRING:

SELECT ST_AsText(ST_Envelope(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3)')));

Hasil:

+---------------------------------------------------------------------------------+
| ST_AsText(ST_Envelope(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3)')))      |
+---------------------------------------------------------------------------------+
| POLYGON ((1 1, 2 1, 2 3, 1 3, 1 1))                                            |

Contoh 2 — Envelope dari MULTIPOINT:

SELECT ST_AsText(ST_Envelope(ST_GeometryFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)')));

Hasil:

+-------------------------------------------------------------------------------+
| ST_AsText(ST_Envelope(ST_GeometryFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)'))) |
+-------------------------------------------------------------------------------+
| POLYGON ((1 2, 4 2, 4 8, 1 8, 1 2))                                           |

Fungsi terkait: ST_EnvelopeAsPts, ST_Boundary

ST_Union

ST_Union(g1, g2)

Mengembalikan geometri yang merepresentasikan gabungan himpunan titik dari g1 dan g2.

Tipe kembalian: INT

Untuk menghitung gabungan array geometri, gunakan geometry_union.

Contoh:

SELECT ST_ASText(ST_Union(ST_GeometryFromText('MULTIPOLYGON (((1 1, 3 1, 3 3, 1 3, 1 1)))'), ST_GeometryFromText('MULTIPOLYGON (((2 2, 4 2, 4 4, 2 4, 2 2)))')));

Hasil:

+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ST_ASText(ST_Union(ST_GeometryFromText('MULTIPOLYGON (((1 1, 3 1, 3 3, 1 3, 1 1)))'), ST_GeometryFromText('MULTIPOLYGON (((2 2, 4 2, 4 4, 2 4, 2 2)))')))    |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| POLYGON ((1 1, 3 1, 3 2, 4 2, 4 4, 2 4, 2 3, 1 3, 1 1))                                                                                                      |

Fungsi terkait: geometry_union, ST_Intersection, ST_Difference, ST_SymDifference

geometry_union

geometry_union(array[g1, g2, ...])

Mengembalikan geometri yang merepresentasikan gabungan himpunan titik dari array geometri.

Tipe kembalian: GEOMETRY

Untuk menghitung gabungan tepat dua geometri, gunakan ST_Union.

Contoh:

SELECT ST_AsText(geometry_union(ARRAY[ST_Point(61.56, -158.54), ST_Point(61.56, -158.55)]));

Hasil:

+------------------------------------------------------------------------------------------------+
| ST_AsText(geometry_union(ARRAY[ST_Point(61.56, -158.54), ST_Point(61.56, -158.55)]))          |
+------------------------------------------------------------------------------------------------+
| MULTIPOINT ((61.56 -158.55), (61.56 -158.54))                                                 |

Fungsi terkait: ST_Union

ST_Boundary

ST_Boundary(g)

Mengembalikan batas geometri input sebagai geometri baru.

Tipe kembalian: GEOMETRY

Contoh:

SELECT ST_AsText(ST_Boundary(ST_GeometryFromText('LINESTRING (8 4, 5 7)')));

Hasil:

+----------------------------------------------------------------------------+
| ST_AsText(ST_Boundary(ST_GeometryFromText('LINESTRING (8 4, 5 7)')))      |
+----------------------------------------------------------------------------+
| MULTIPOINT ((8 4), (5 7))                                                  |

Fungsi terkait: ST_Envelope, ST_ExteriorRing

ST_EnvelopeAsPts

ST_EnvelopeAsPts(g)

Mengembalikan array dua nilai POINT yang merepresentasikan titik pojok kiri bawah dan kanan atas dari persegi panjang pembatas. Mengembalikan null jika geometri input kosong.

Tipe kembalian: Array[Geometry]

Contoh — geometri kosong mengembalikan null:

SELECT ST_EnvelopeAsPts(ST_GeometryFromText('LINESTRING EMPTY'));

Hasil:

+-----------------------------------------------------------------+
| ST_EnvelopeAsPts(ST_GeometryFromText('LINESTRING EMPTY'))      |
+-----------------------------------------------------------------+
| null                                                            |

Fungsi terkait: ST_Envelope

ST_Difference

ST_Difference(g1, g2)

Mengembalikan bagian dari g1 yang tidak beririsan dengan g2.

Tipe kembalian: GEOMETRY

Urutan parameter penting. ST_Difference(A, B) selalu mengembalikan bagian dari A, bukan B. Ini satu-satunya fungsi operasi di mana menukar argumen menghasilkan hasil yang berbeda.

Contoh:

SELECT ST_AsText(ST_Difference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')));

Hasil:

+---------------------------------------------------------------------------------------------------------------+
| ST_AsText(ST_Difference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')))      |
+---------------------------------------------------------------------------------------------------------------+
| POINT (50 100)                                                                                                |

Hasilnya adalah POINT (50 100) lengkap karena kedua titik tersebut saling lepas—tidak ada yang dikurangi.

Fungsi terkait: ST_Intersection, ST_SymDifference, ST_Union

ST_ExteriorRing

ST_ExteriorRing(g1)

Mengembalikan cincin luar poligon sebagai LINESTRING.

Tipe kembalian: GEOMETRY

Contoh:

SELECT ST_AsText(ST_ExteriorRing(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 1))')));

Hasil:

+------------------------------------------------------------------------------------+
| ST_AsText(ST_ExteriorRing(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 1))')))     |
+------------------------------------------------------------------------------------+
| LINESTRING (1 1, 4 1, 1 4, 1 1)                                                   |

Fungsi terkait: ST_Boundary

ST_SymDifference

ST_SymDifference(g1, g2)

Mengembalikan bagian dari g1 dan g2 yang tidak saling beririsan.

Tipe kembalian: GEOMETRY

Contoh:

SELECT ST_AsText(ST_SymDifference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (50 150)')));

Hasil:

+--------------------------------------------------------------------------------------------------------------+
| ST_AsText(ST_SymDifference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (50 150)')))   |
+--------------------------------------------------------------------------------------------------------------+
| MULTIPOINT ((50 100), (50 150))                                                                              |

Kedua titik tersebut saling lepas, sehingga selisih simetrisnya adalah gabungan kedua titik tersebut.

Fungsi terkait: ST_Difference, ST_Union, ST_Intersection

Catatan Penggunaan

  • Output biner: Semua fungsi yang mengembalikan GEOMETRY menghasilkan output biner saat digunakan dalam SELECT biasa. Selalu bungkus pemanggilan fungsi dengan ST_AsText() untuk mendapatkan output WKT yang dapat dibaca.

  • ST_Difference tidak simetris: ST_Difference(A, B) selalu mengembalikan subset dari A. Menukar argumen menghasilkan hasil yang berbeda.

  • ST_Envelope tidak mendukung input POINT. Memberikan geometri POINT ke ST_Envelope tidak didukung.

  • MULTILINE: AnalyticDB for MySQL menggunakan MULTILINE sebagai tipe jalur multi-segmen. Tipe standar OGC yang setara adalah MULTILINESTRING.