All Products
Search
Document Center

ApsaraDB RDS:ST_AsMVTGeom3D

Last Updated:Mar 29, 2026

Mengonversi geometri 3D ke dalam sistem koordinat tile yang diperlukan oleh ST_AsMVT3D untuk menghasilkan output Mapbox Vector Tile (MVT). Fungsi ini memperluas ST_AsMVTGeom dengan dukungan sumbu-z, mempertahankan nilai koordinat z selama transformasi koordinat.

Sintaksis

geometry ST_AsMVTGeom3D(
  geometry geom,
  box2d bounds,
  integer extent = 4096,
  integer buffer = 256,
  boolean clip_geom = true
);

Parameter

ParameterTipeDeskripsiBawaanNilai valid
geomgeometryObjek geometri 3D yang akan ditransformasi.
boundsbox2dBatas persegi panjang tile dalam sistem referensi koordinat (CRS) target, tidak termasuk buffer. Gunakan ST_TileEnvelope untuk menghasilkan nilai ini.
extentintegerUkuran tile dalam ruang koordinat tile, sebagaimana didefinisikan oleh spesifikasi MVT.4096256–8192
bufferintegerUkuran buffer dalam ruang koordinat tile untuk pemotongan geometri.2561–4096
clip_geombooleanMenentukan apakah geometri 3D harus dipotong sesuai batas tile.true

Deskripsi

ST_AsMVTGeom3D menyiapkan geometri 3D untuk digunakan dengan ST_AsMVT3D. Fungsi ini mentransformasikan koordinat geometri ke dalam ruang tile dan memotong geometri sesuai batas tile jika parameter clip_geom bernilai true.

Perilaku utama:

  • Melakukan transformasi data sumbu-z bersamaan dengan koordinat x dan y, sehingga geometri 3D tetap utuh selama proses konversi tile.

  • Memerlukan batas tile dalam CRS yang sama dengan geometri input agar transformasi dan pemotongan geometri berjalan tepat. Gunakan ST_TileEnvelope untuk menghasilkan batas tersebut.

  • Tidak mendukung objek poligon 3D yang memiliki ring interior.

Contoh

Transformasi string garis 3D ke dalam ruang koordinat tile

Contoh berikut mentransformasikan string garis 3D dari SRID 4326 ke Web Mercator (SRID 3857), lalu mengonversinya ke dalam ruang koordinat tile untuk tile (1, 0, 0).

SELECT ST_AsText(
  ST_AsMVTGeom3D(
    ST_Transform('SRID=4326; LINESTRING(-10 -10 30, -10 -20 30)'::geometry, 3857),
    ST_TileEnvelope(1, 0, 0)
  )
) AS geom;

Output yang diharapkan:

                                        geom
------------------------------------------------------------------------------------
 MULTILINESTRING Z ((3868.44444444444 4324.7197219642 30,3868.44444444444 4352 30))
(1 row)

Hasilkan tile MVT 3D menggunakan ST_AsMVT3D

Contoh berikut menunjukkan kueri lengkap pembuatan tile menggunakan CTE. Geometri dari tabel ditransformasikan ke dalam ruang koordinat tile dan diagregasikan ke dalam format biner MVT untuk tile (12, 513, 412).

WITH mvtgeom AS (
  SELECT ST_AsMVTGeom3D(
    ST_Transform(geom, 3857),
    ST_TileEnvelope(12, 513, 412),
    extent => 4096,
    buffer => 256
  ) AS geom
  FROM your_3d_table
  WHERE geom && ST_Transform(ST_TileEnvelope(12, 513, 412), 4326)
)
SELECT ST_AsMVT3D(mvtgeom.*)
FROM mvtgeom;

Ganti your_3d_table dengan nama tabel Anda yang berisi data geometri 3D.

Lihat juga