All Products
Search
Document Center

PolarDB:ST_BuildPyramid

Last Updated:Mar 28, 2026

Membangun piramida vektor untuk tabel data geometri spasial dengan melakukan pra-pembagian (pre-tiling) data geometri pada berbagai tingkat zoom guna mempercepat rendering peta di berbagai skala.

Sintaksis

boolean ST_BuildPyramid(cstring table, cstring geom, cstring fid, cstring config)

Parameter

ParameterDeskripsi
tableNama tabel data geometri spasial.
geomNama kolom geometri.
fidNama bidang ID elemen.
configOpsi pembuatan piramida, ditentukan sebagai string JSON. Lihat Field konfigurasi untuk daftar lengkap field yang didukung.

Field konfigurasi

Parameter config menerima objek JSON yang mencakup field-field berikut.

FieldTipeBawaanDeskripsi
namestringSama dengan nama tabelNama piramida.
parallelint0Jumlah maksimum tugas yang dijalankan secara paralel. Tetapkan ke 0 untuk tanpa batas. Memerlukan parameter max_prepared_transactions dikonfigurasi.
tileSizeint1024Ukuran tile. Harus lebih besar dari 0 dan kurang dari 4096.
tileExtendint8Ukuran ekstensi tile piramida. Harus lebih besar dari 0.
userExtentarray[double]nullKotak pembatas yang membatasi pembuatan piramida, ditentukan sebagai [minx, miny, maxx, maxy]. Tetapkan ke [] untuk tidak menggunakan kotak pembatas.
splitSizeint10000Jumlah maksimum elemen per node indeks. Nilai yang lebih besar menghasilkan piramida yang lebih jarang.
maxLevelint16Jumlah maksimum tingkat zoom. Nilai yang valid: 020.
sourceSRSint-1Spatial Reference Identifier (SRID) dari data sumber. Tetapkan ke -1 untuk membaca SRID dari metadata tabel.
destSRSint3857Kode EPSG untuk sistem koordinat tile output. Nilai yang didukung: 3857 (EPSG:3857, Web Mercator) dan 4326 (EPSG:4326, WGS84).
buildRulesarray[object]nullAturan per tingkat zoom untuk pembuatan piramida. Lihat field buildRules.

Field buildRules

Setiap objek dalam array buildRules menerapkan aturan pada satu set tingkat zoom. Aturan ini memungkinkan Anda mengontrol kerapatan data per tingkat—misalnya, menyaring fitur minor pada tingkat zoom rendah untuk mengurangi volume data, serta menyertakan detail atribut lengkap pada tingkat zoom tinggi guna mendukung interaktivitas peta.

FieldTipeDeskripsi
levelarray[int]Tingkat zoom tempat aturan diterapkan.
valueobjectDefinisi aturan. Berisi field-field berikut.
value.filterstringEkspresi filter PostgreSQL untuk hanya menyertakan fitur yang sesuai.
value.attrFieldsarray[string]Bidang atribut yang disertakan dalam output Mapbox Vector Tile (MVT).
value.mergearray[string]Kondisi filter yang digunakan untuk mengelompokkan catatan data.

Contoh konfigurasi

{
   "name": "hello",
   "parallel": 4,
   "tileSize": 512,
   "tileExtend": 8,
   "userExtent": [-180, -90, 180, 90],
   "splitSize": 5000,
   "maxLevel": 16,
   "destSRS": 3857,
   "buildRules": [
     {
       "level": [0, 1, 2],
       "value": {
         "filter": "code!=0",
         "attrFields": ["name", "color"],
         "merge": ["code=1"]
       }
     }
   ]
}

Contoh

Membangun piramida dengan pengaturan bawaan

Berikan string kosong sebagai config untuk menggunakan semua nilai bawaan.

SELECT ST_BuildPyramid('roads', 'geom', 'id', '');

Output yang diharapkan:

 st_buildpyramid
-----------------
 t