All Products
Search
Document Center

ApsaraDB RDS:ST_InsertAttr

Last Updated:Jun 25, 2025

Topik ini menjelaskan fungsi ST_InsertAttr, yang digunakan untuk menambahkan atribut ke sebuah trajektori.

Sintaksis

trajectory ST_InsertAttr(trajectory traj, anyarray arr, text name, integer loc default -1);

Nilai Kembali

Trajektori baru.

Parameter

Parameter

Deskripsi

traj

Trajektori asli.

arr

Sebuah array yang berisi nilai dari atribut baru.

name

Nama atribut baru.

loc

Posisi di mana atribut baru dimasukkan. Nilai valid: [-n,n]. Nilai n menunjukkan jumlah atribut yang ada.

  • Jika nilai n adalah bilangan positif, nilai tersebut dimulai dari 0. Nilai 0 menunjukkan bahwa atribut baru dimasukkan sebelum kolom paling kiri, dan nilai n menunjukkan bahwa atribut baru dimasukkan setelah kolom ke-N dari kiri ke kanan.

  • Jika nilai n adalah bilangan negatif, atribut baru dimasukkan dari kolom paling kanan. Nilai -1 menunjukkan bahwa atribut baru dimasukkan setelah kolom paling kanan, dan nilai -n menunjukkan bahwa atribut baru dimasukkan setelah kolom paling kiri.

Deskripsi

Fungsi ini menyisipkan array yang berisi atribut baru ke dalam trajektori.

Contoh

With traj as (select ST_MakeTrajectory('STPOINT'::leaftype,
                                       st_geomfromtext('LINESTRING (114 35, 115 36, 116 37)', 4326),
                                       '[2010-01-01 14:30, 2010-01-01 15:30)'::tsrange,
                                       '{"leafcount":3,"attributes":{"velocity": {"type": "integer", "length": 2,"nullable" : true,"value": [120, 130, 140]}, "accuracy": {"type": "float", "length": 4, "nullable" : false,"value": [120, 130, 140]}, "bearing": {"type": "float", "length": 8, "nullable" : false,"value": [120, 130, 140]}, "acceleration": {"type": "string", "length": 20, "nullable" : true,"value": ["120", "130", "140"]}, "active": {"type": "timestamp", "nullable" : false,"value": ["Fri Jan 01 14:30:00 2010", "Fri Jan 01 15:00:00 2010", "Fri Jan 01 15:30:00 2010"]}}}') as tj)
SELECT ST_InsertAttr(tj, ARRAY[1, 4, 6], 'add', 3) from traj;

Hasil:

{"trajectory":{"version":1,"type":"STPOINT","leafcount":3,"start_time":"2010-01-01 14:30:00","end_time":"2010-01-01 15:30:00","spatial":"SRID=4326;LINESTRING(114 35,115 36,116 37)","timeline":["2010-01-01 14:30:00","2010-01-01 15:00:00","2010-01-01 15:30:00"],"attributes":{"leafcount":3,"velocity":{"type":"integer","length":2,"nullable":true,"value":[120,130,140]},"accuracy":{"type":"float","length":4,"nullable":false,"value":[120.0,130.0,140.0]},"bearing":{"type":"float","length":8,"nullable":false,"value":[120.0,130.0,140.0]},"add":{"type":"integer","length":4,"nullable":true,"value":[1,4,6]},"acceleration":{"type":"string","length":20,"nullable":true,"value":["120","130","140"]},"active":{"type":"timestamp","length":8,"nullable":false,"value":["2010-01-01 14:30:00","2010-01-01 15:00:00","2010-01-01 15:30:00"]}}}}