Fungsi konstruktor spasial membangun dan mengonversi objek geometri di AnalyticDB for MySQL. Fungsi ini digunakan untuk membuat geometri POINT, LINESTRING, dan POLYGON dari koordinat atau teks, mengonversi antara representasi Well-Known Text (WKT) dan Well-Known Binary (WKB), serta mengonversi antara sistem koordinat planar dan bola.
Sebagian besar fungsi spasial mengembalikan nilai GEOMETRY biner. Menanyakan nilai-nilai ini secara langsung denganSELECTmenghasilkan output yang tidak dapat dibaca. Bungkus hasilnya denganST_AsText()untuk mendapatkan string WKT yang dapat dibaca.
Rangkuman fungsi
| Kategori | Fungsi | Deskripsi |
|---|---|---|
| Bangun dari koordinat | ST_Point | Membangun titik dari koordinat x dan y |
| Bangun dari WKT | ST_GeometryFromText / ST_GeomFromText | Membangun tipe geometri apa pun dari string WKT |
ST_LineFromText | Membangun LineString dari string WKT | |
ST_PointFromText | Membangun titik dari string WKT | |
ST_PolygonFromText | Membangun poligon dari string WKT | |
| Bangun dari array titik | ST_LineString | Membangun LineString dari array titik |
ST_MultiPoint | Membangun MultiPoint dari array titik | |
| Konversi ke teks | ST_AsText | Mengonversi geometri ke representasi WKT-nya |
| Konversi ke/dari biner | ST_AsBinary | Mengonversi geometri ke representasi WKB-nya |
ST_GeomFromBinary | Membangun geometri dari nilai WKB | |
| Validasi | ST_IsValidWKT | Memeriksa apakah string merupakan WKT yang valid |
| Sistem koordinat | To_spherical_geography | Mengonversi geometri planar menjadi objek geografi bola |
To_geometry | Mengonversi kembali objek geografi bola menjadi geometri planar | |
| Interop Hadoop | Geometry_from_hadoop_shape | Membangun geometri dari nilai biner Spatial Framework for Hadoop |
| Buffer | ST_Buffer | Mengembalikan semua titik dalam jarak d dari suatu geometri |
ST_Point
ST_Point(x double, y double) → GEOMETRY (subtype POINT)Mengembalikan geometri POINT dari nilai koordinat x dan y yang ditentukan. Nilai kembali berupa biner — bungkus dengan ST_AsText() untuk mendapatkan hasil yang dapat dibaca.
Contoh
SELECT ST_AsText(ST_Point(1, 1));Hasil:
+--------------------------+
| ST_AsText(ST_Point(1,1)) |
+--------------------------+
| POINT (1 1) |
+--------------------------+ST_AsText
ST_AsText(geometry) → WKTMengembalikan representasi Well-Known Text (WKT) dari suatu geometri. Gunakan fungsi ini untuk mengonversi output biner dari fungsi spasial lainnya menjadi teks yang dapat dibaca.
Contoh
SELECT ST_AsText(ST_Point(1, 1));Hasil:
+--------------------------+
| ST_AsText(ST_Point(1,1)) |
+--------------------------+
| POINT (1 1) |
+--------------------------+ST_GeometryFromText / ST_GeomFromText
ST_GeometryFromText(wkt varchar) → GEOMETRY
ST_GeomFromText(wkt varchar) → GEOMETRYMembangun objek geometri dari string WKT. ST_GeometryFromText dan ST_GeomFromText setara. Nilai kembali berupa biner — bungkus dengan ST_AsText() untuk mendapatkan hasil yang dapat dibaca.
Contoh
SELECT ST_AsText(ST_GeometryFromText('Point(1 1)'));Hasil:
+----------------------------------------------+
| ST_AsText(ST_GeometryFromText('Point(1 1)')) |
+----------------------------------------------+
| POINT (1 1) |
+----------------------------------------------+ST_IsValidWKT
ST_IsValidWKT(wkt varchar) → INTMengembalikan 1 jika string input merupakan WKT yang valid, atau 0 jika tidak valid.
Contoh
SELECT ST_IsValidWKT('MULTIPOINT (1 2, 2 4, 3 6, 4 8)');Hasil:
+---------------------------------------------------+
| ST_IsValidWKT('MULTIPOINT (1 2, 2 4, 3 6, 4 8)') |
+---------------------------------------------------+
| 1 |
+---------------------------------------------------+ST_LineFromText
ST_LineFromText(wkt varchar) → GEOMETRYMengembalikan geometri LineString dari string WKT. Nilai kembali berupa biner — bungkus dengan ST_AsText() untuk mendapatkan hasil yang dapat dibaca.
Contoh
SELECT ST_AsText(ST_LineFromText('LINESTRING (1 1, 2 2, 1 3)'));Hasil:
+----------------------------------------------------------+
| ST_AsText(ST_LineFromText('LINESTRING (1 1, 2 2, 1 3)')) |
+----------------------------------------------------------+
| LINESTRING (1 1, 2 2, 1 3) |
+----------------------------------------------------------+ST_PointFromText
ST_PointFromText(wkt varchar) → GEOMETRYMengembalikan objek Point dari string WKT. Nilai kembali berupa biner — bungkus dengan ST_AsText() untuk mendapatkan hasil yang dapat dibaca.
Contoh
SELECT ST_AsText(ST_PointFromText('POINT (1 2)'));Hasil:
+-------------------------------------------+
| ST_AsText(ST_PointFromText('POINT (1 2)')) |
+-------------------------------------------+
| POINT (1 2) |
+-------------------------------------------+ST_PolygonFromText
ST_PolygonFromText(wkt varchar) → GEOMETRYMengembalikan objek PolygonString dari string WKT. Nilai kembali berupa data biner—bungkus dengan ST_AsText() untuk mendapatkan hasil yang dapat dibaca.
Contoh
SELECT ST_AsText(ST_PolygonFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'));Hasil:
+----------------------------------------------------------------+
| ST_AsText(ST_PolygonFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))')) |
+----------------------------------------------------------------+
| POLYGON ((1 1, 1 4, 4 4, 4 1)) |
+----------------------------------------------------------------+ST_LineString
ST_LineString(array(Point)) → GEOMETRYMengembalikan geometri LineString yang dibangun dari array objek geometri titik. Nilai kembali berupa biner — bungkus dengan ST_AsText() untuk mendapatkan hasil yang dapat dibaca.
Contoh
SELECT ST_AsText(ST_LineString(array[ST_Point(1, 2), ST_Point(3, 4)]));Hasil:
+------------------------------------------------------------------+
| ST_AsText(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)])) |
+------------------------------------------------------------------+
| LINESTRING (1 2, 3 4) |
+------------------------------------------------------------------+ST_MultiPoint
ST_MultiPoint(array(Point)) → GEOMETRYMengembalikan geometri MultiPoint yang dibangun dari array objek geometri titik. Nilai kembali berupa biner — bungkus dengan ST_AsText() untuk mendapatkan hasil yang dapat dibaca.
Contoh
SELECT ST_AsText(
ST_MultiPoint(array[
ST_GeometryFromText('POINT(1 2)'),
ST_GeometryFromText('POINT (3 4)')
])
);Hasil:
+---------------------------+
| ST_AsText(...) |
+---------------------------+
| MULTIPOINT ((1 2), (3 4)) |
+---------------------------+ST_GeomFromBinary
ST_GeomFromBinary(wkb varbinary) → GEOMETRYMengembalikan geometri dari nilai Well-Known Binary (WKB). Nilai kembali berupa biner — bungkus dengan ST_AsText() untuk mendapatkan hasil yang dapat dibaca.
Contoh
Contoh berikut mengonversi geometri ke WKB dengan ST_AsBinary(), lalu merekonstruksi dan membacanya kembali dengan ST_GeomFromBinary() dan ST_AsText().
SELECT ST_AsText(
ST_GeomFromBinary(
ST_AsBinary(ST_GeometryFromText('MULTIPOINT ((1 2), (3 4))'))
)
);Hasil:
+---------------------------+
| ST_AsText(...) |
+---------------------------+
| MULTIPOINT ((1 2), (3 4)) |
+---------------------------+Geometry_from_hadoop_shape
Geometry_from_hadoop_shape(wkb varbinary) → GEOMETRYMengembalikan geometri dari nilai biner Spatial Framework for Hadoop. Nilai kembali berupa biner — bungkus dengan ST_AsText() untuk mendapatkan hasil yang dapat dibaca.
Contoh
SELECT ST_AsText(
Geometry_from_hadoop_shape(
from_hex('000000000101000000000000000000F03F0000000000000040')
)
);Hasil:
+---------------------+
| ST_AsText(...) |
+---------------------+
| POINT (1 2) |
+---------------------+To_spherical_geography
To_spherical_geography(geometry) → GEOMETRYMengonversi geometri planar menjadi objek geografi bola. Fungsi ini mengubah representasi yang didefinisikan dalam ruang 2D menjadi yang didefinisikan dalam ruang 3D. Nilai kembali berupa biner.
Contoh
SELECT To_spherical_geography(ST_Point(-71.0882, 42.3607));To_geometry
To_geometry(geography) → GEOMETRYMengonversi kembali objek geografi bola menjadi geometri planar. Setiap objek geografi merupakan objek geometri yang valid. Nilai kembali berupa biner — bungkus dengan ST_AsText() untuk mendapatkan hasil yang dapat dibaca.
Contoh
SELECT ST_AsText(
To_geometry(To_spherical_geography(ST_Point(61.56, -58.54)))
);Hasil:
+----------------------+
| ST_AsText(...) |
+----------------------+
| POINT (61.56 -58.54) |
+----------------------+ST_AsBinary
ST_AsBinary(geometry) → VARBINARYMengembalikan representasi WKB dari suatu geometri sebagai nilai VARBINARY. Gunakan fungsi ini untuk menyimpan atau mentransmisikan data geometri dalam format biner, lalu merekonstruksinya kembali dengan ST_GeomFromBinary().
Contoh
SELECT ST_AsText(
ST_GeomFromBinary(
ST_AsBinary(ST_GeometryFromText('MULTIPOINT ((1 2), (3 4))'))
)
);Hasil:
+---------------------------+
| ST_AsText(...) |
+---------------------------+
| MULTIPOINT ((1 2), (3 4)) |
+---------------------------+ST_Buffer
ST_Buffer(geometry, d double) → GEOMETRYMengembalikan geometri yang mencakup semua titik yang jaraknya dari geometri input kurang dari atau sama dengan d. Untuk input berupa titik, hasilnya adalah poligon yang menyerupai lingkaran dengan jari-jari d yang berpusat pada titik tersebut. Nilai kembali berupa biner — bungkus dengan ST_AsText() untuk mendapatkan hasil yang dapat dibaca.
Contoh
SELECT ST_AsText(ST_Buffer(ST_Point(0, 0), 0.5));Hasil (disingkat):
+--------------------------------------------------------------------+
| ST_AsText(ST_Buffer(ST_Point(0, 0), 0.5)) |
+--------------------------------------------------------------------+
| POLYGON ((0.5 0, 0.4989294616193014 0.03270156461507146, ...)) |
+--------------------------------------------------------------------+Hasil lengkapnya adalah poligon yang menyerupai lingkaran berjari-jari 0,5 yang berpusat di titik asal. Poligon tersebut didefinisikan oleh 96 simpul.