Conventions
This topic describes common modeling conventions used by the HERE Map Content schemas.
Pooling
A shared message is often used multiple times within a partition. Since the Protocol Buffer format lacks the explicit concept of a reference, and to avoid having the same message or reference stored multiple times, HERE creates a repeated field (pool) for shared messages. References to the value messages are 0-based index into the pool.
google.protobuf.UInt32Value
to enable a null reference when the index reference is optional.The following example shows how this convention is used to share Address
messages across Location
messages in a LocationPartition
.
message LocationPartition {
repeated Location location = 1; // all locations in the partition
repeated Address address = 2; // all addresses in the partition
}
message Location {
// Optional 0-based index into shared addresses array containing the address for this location
google.protobuf.UInt32Value address_index = 1;
...
}
message Address {
...
}
Attribute Layer Pattern
- For convenience, the partition name is provided for the partition. This is typically the HERE quadkey.
- Any pools leveraged by the partition are defined. A common example is the inclusion of a
SegmentAnchor
pool. - Any attributes of the partition are defined. These attributes reference the preceding pools by index.
The Road
, Lane
, and Address
layers are all examples that follow this pattern.