HERE Map Content Schema

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.

Note: HERE uses the 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

Attribute layers follow the same pattern in the definition of their fields:
  • 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.