Gunakan fungsi ST_AsProtobuf untuk mentransformasi objek trajektori ke format Protobuf (Pbf) guna mendukung pertukaran data.
Sintaksis
bytea ST_AsProtobuf(trajectory traj);Parameter
Parameter | Deskripsi |
traj | Trajektori yang ingin Anda transformasikan. |
Nilai kembali
Mengembalikan objek trajektori dalam format Protobuf.
Lihat definisi Protobuf berikut:
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
message Trajectory {
required uint32 srid = 1 [default = 4326]; // Srid
repeated Field fields = 2; // Definisi Fields
repeated Point points = 3; // Semua titik trajektori
repeated Event events = 4; // Events
message Field {
required string name = 11; // Nama Field
required FieldType type = 12; // Tipe Field
required uint32 length = 13; // Panjang Field
required bool nullable = 14 [default = false]; // Field Nullable
}
message Value {
required bool is_null = 21 [default = false]; // Apakah null
oneof value_type {
string string_value = 22; // nilai string
double double_value = 23; // nilai double
float float_value = 24; // nilai float
sint32 int32_value = 25; // nilai int32, int8 dan int16 akan masuk dalam nilai ini
sint64 int64_value = 26; // nilai int64
bool bool_value = 27; // nilai bool
uint64 timestamp_value = 28; // nilai timestamp
}
}
enum FieldType {
string_type = 31;
double_type = 32;
integer_type = 33;
bool_type = 34;
timestamp_type = 35;
}
message Point {
required double x = 41; // koordinat x
required double y = 42; // koordinat y
optional double z = 43; // nilai z , opsional
optional double m = 44; // nilai m, opsional
required uint64 timestamp = 45; // timestamp
repeated Value attributes = 46; // semua nilai atribut
}
message Event {
required int32 type = 51; // tipe event
required uint64 timestamp = 52; // timestamp
}
}Deskripsi
Fungsi ST_AsProtobuf digunakan untuk mentransformasi objek trajektori ke format Protobuf, yang memungkinkan pertukaran atau tampilan data secara efisien.
Contoh
SELECT ST_AsProtobuf(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]}, "vesname": {"type": "string", "length": 20, "nullable" : true,"value": ["adsf", "sdf", "sdfff"]}, "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"]}}, "events": [{"1" : "Fri Jan 01 14:30:00 2010"}, {"2" : "Fri Jan 01 15:00:00 2010"}, {"3" : "Fri Jan 01 15:30:00 2010"}]}'));
---
st_asprotobuf
---------------------
\x08e62112105a0876656c6f63...