-
Notifications
You must be signed in to change notification settings - Fork 17
/
vector_tile.proto
148 lines (112 loc) · 5.89 KB
/
vector_tile.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
package vector_tile;
option optimize_for = LITE_RUNTIME;
message Tile {
// GeomType is described in section 4.3.4 of the specification
enum GeomType {
UNKNOWN = 0;
POINT = 1;
LINESTRING = 2;
POLYGON = 3;
SPLINE = 4; // like a LineString, but a spline
}
// Variant type encoding
// The use of values is described in section 4.4.1 of the specification
// Deprecated in version 3.
message Value {
// Exactly one of these values must be present in a valid message
optional string string_value = 1;
optional float float_value = 2;
optional double double_value = 3;
optional int64 int_value = 4;
optional uint64 uint_value = 5;
optional sint64 sint_value = 6;
optional bool bool_value = 7;
extensions 8 to max;
}
message Scaling {
// Formula for values in dimension:
// value = base + multiplier * (delta_encoded_value + offset)
// Offset for deltas in this specific tile.
// If not set, offset = 0
optional sint64 offset = 1;
// If not set, multiplier = 1.0
optional double multiplier = 2;
// If not set, base = 0.0
optional double base = 3;
}
// Features are described in section 4.2 of the specification
message Feature {
optional uint64 id = 1 [ default = 0 ];
// Tags of this feature are encoded as repeated pairs of
// integers.
// A detailed description of tags is located in sections
// 4.2 and 4.4 of the specification
// Deprecated in version 3. Use attributes instead.
repeated uint32 tags = 2 [ packed = true ];
// The type of geometry stored in this feature.
optional GeomType type = 3 [ default = UNKNOWN ];
// Contains a stream of commands and parameters (vertices).
// A detailed description on geometry encoding is located in
// section 4.3 of the specification.
repeated uint32 geometry = 4 [ packed = true ];
// Attributes of this feature in a special inline encoding. See
// the spec section 4.4.2 for details.
repeated uint64 attributes = 5 [ packed = true ];
// Attributes of this feature that are tied to its geometry.
// The value for each key-value pair must be a list type
// that contains one element per moveto, lineto, or closepath
// in the geometry.
repeated uint64 geometric_attributes = 6 [ packed = true ];
// Delta-encoded elevation for each moveto, lineto, or closepath
// in the geometry.
// These values are scaled and offset using the layer's
// elevation_scaling, if present.
repeated sint32 elevation = 7 [ packed = true];
repeated uint64 spline_knots = 8 [ packed = true ];
optional uint32 spline_degree = 9 [ default = 2];
// A string as a unique identifier for the Feature. Use either
// id or string_id, but not both. See spec section 4.2.
optional string string_id = 10;
}
// Layers are described in section 4.1 of the specification
message Layer {
// Any compliant implementation must first read the version
// number encoded in this message and choose the correct
// implementation for this version number before proceeding to
// decode other parts of this message.
required uint32 version = 15 [ default = 1 ];
required string name = 1;
// The actual features in this tile.
repeated Feature features = 2;
// Dictionary encoding for keys
repeated string keys = 3;
// Dictionary encoding for values
// Deprecated in version 3.
repeated Value values = 4;
// Although this is an "optional" field it is required by the specification.
// See https://github.com/mapbox/vector-tile-spec/issues/47
optional uint32 extent = 5 [ default = 4096 ];
// Table of values of type string. Used for Inline Attributes
// in version 3. See spec section 4.4.2 for details.
repeated string string_values = 6;
// Table of values of type float. Used for Inline Attributes
// in version 3. See spec section 4.4.2 for details.
repeated float float_values = 7 [ packed = true ];
// Table of values of type double. Used for Inline Attributes
// in version 3. See spec section 4.4.2 for details.
repeated double double_values = 8 [ packed = true ];
// Table of values of type integer. Used for Inline Attributes
// in version 3. See spec section 4.4.2 for details.
repeated fixed64 int_values = 9 [ packed = true ];
optional Scaling elevation_scaling = 10;
// Individual feature attributes refer to these Scalings
// by their index within this sequence in the Layer.
repeated Scaling attribute_scalings = 11;
optional uint32 tile_x = 12;
optional uint32 tile_y = 13;
optional uint32 tile_zoom = 14;
extensions 16 to max;
}
repeated Layer layers = 3;
extensions 16 to 8191;
}