Membuat piramida vektor pada tabel data geometri spasial untuk mempercepat rendering data spasial.
Sintaksis
boolean ST_BuildPyramid(cstring table, cstring geom, cstring fid, cstring config)Parameter
| Parameter | Deskripsi |
|---|---|
table | Nama tabel data geometri spasial. |
geom | Nama kolom geometri. |
fid | Nama bidang ID elemen. |
config | Konfigurasi piramida, ditentukan sebagai string JSON. |
Bidang config
| Bidang | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
name | string | Sama dengan nama tabel | Nama piramida. |
parallel | integer | 0 | Jumlah maksimum tugas yang dijalankan secara paralel untuk membangun piramida. Memerlukan parameter max_prepared_transactions agar diatur. Atur ke 0 untuk menghapus batasan. |
tileSize | integer | 1024 | Ukuran tile piramida. Nilai valid: lebih besar dari 0 dan kurang dari 4096. |
tileExtend | integer | 8 | Ukuran ekstensi tile piramida. Nilai valid: lebih besar dari 0. |
userExtent | array[double] | null | Cakupan geografis piramida, didefinisikan sebagai array JSON dengan empat nilai: minx, miny, maxx, dan maxy. Atur ke [] untuk menggunakan nilai null. |
splitSize | integer | 10000 | Jumlah maksimum elemen per pemisahan node indeks. Nilai yang lebih tinggi menghasilkan piramida yang lebih jarang. |
maxLevel | integer | 16 | Jumlah maksimum level piramida. Nilai valid: 0 hingga 20. |
sourceSRS | integer | -1 | Sistem referensi spasial (SRS) data sumber. Secara bawaan, fungsi membaca identifier referensi spasial (SRID) dari metadata tabel. |
destSRS | integer | 3857 | Kode EPSG sistem koordinat tile. Nilai valid: 3857 (EPSG 3857) dan 4326 (EPSG 4326). |
buildRules | array[object] | null | Aturan untuk membangun piramida. Mendukung beberapa aturan. |
Bidang buildRules
| Bidang | Tipe | Deskripsi |
|---|---|---|
level | array[integer] | Level piramida tempat aturan tersebut berlaku. |
value | object | Konfigurasi aturan. Berisi sub-bidang berikut: filter, attrFields, dan merge. |
value.filter | string | Ekspresi filter PostgreSQL yang diterapkan pada data. |
value.attrFields | array[string] | Bidang atribut yang disertakan saat menggunakan format Mapbox Vector Tile (MVT). |
value.merge | array[string] | Kondisi filter untuk mengelompokkan catatan data. |
Contoh config
{
"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
Buat piramida untuk tabel data geometri spasial bernama roads:
SELECT ST_BuildPyramid('roads', 'geom', 'id', '');Output yang diharapkan:
st_buildpyramid
---------------
t