CZML Reference Properties
- A reference string has the form
"<entityId>#<propertyPath>", e.g. "leadVehicle#position" or
"labelEntity#label.outlineColor" (dotted path into a nested graphics property).
- Single-value reference: any property that normally takes a literal value can instead take
{ "reference": "<entityId>#<propertyPath>" }, e.g.
"position": { "reference": "leadVehicle#position" } so this entity always tracks another
entity's (possibly time-varying) position, or
"material": { "solidColor": { "color": { "reference": "labelEntity#label.outlineColor" } } } so
a shape's fill color follows another entity's color property.
- Array of references (e.g. building a polygon's corner positions entirely from other
entities' positions, so the shape updates as those entities move):
"positions": { "references": ["vertexA#position", "vertexB#position", "vertexC#position"] } —
each referenced property must itself resolve to a single position.
Example: a polygon whose corners track three other moving entities
[
{ "id": "document", "name": "Reference positions", "version": "1.0" },
{
"id": "vertexA",
"position": {
"epoch": "2026-01-01T00:00:00Z",
"cartographicDegrees": [0, -90, 30, 0, 3600, -89.9, 30, 0]
}
},
{
"id": "vertexB",
"position": {
"epoch": "2026-01-01T00:00:00Z",
"cartographicDegrees": [0, -89.9, 30.1, 0, 3600, -89.8, 30.1, 0]
}
},
{
"id": "vertexC",
"position": {
"epoch": "2026-01-01T00:00:00Z",
"cartographicDegrees": [0, -90, 30.1, 0, 3600, -89.9, 30.1, 0]
}
},
{
"id": "tracking-polygon",
"polygon": {
"positions": { "references": ["vertexA#position", "vertexB#position", "vertexC#position"] },
"material": { "solidColor": { "color": { "rgba": [255, 0, 0, 128] } } }
}
}
]
1---2name: czml-reference-properties3description: CZML reference properties that link one entity's property to another entity's value, including a single reference, an array of references (e.g. building a polygon's corners from other entities' positions), and referencing non-position properties like colors or materials. Use when the intent describes an entity that references, follows, tracks, or is driven by another entity's property instead of defining its own value.4---56# CZML Reference Properties78- A reference string has the form `"<entityId>#<propertyPath>"`, e.g. `"leadVehicle#position"` or9 `"labelEntity#label.outlineColor"` (dotted path into a nested graphics property).10- Single-value reference: any property that normally takes a literal value can instead take11 `{ "reference": "<entityId>#<propertyPath>" }`, e.g.12 `"position": { "reference": "leadVehicle#position" }` so this entity always tracks another13 entity's (possibly time-varying) position, or14 `"material": { "solidColor": { "color": { "reference": "labelEntity#label.outlineColor" } } }` so15 a shape's fill color follows another entity's color property.16- **Array of references** (e.g. building a polygon's corner positions entirely from other17 entities' positions, so the shape updates as those entities move):18 `"positions": { "references": ["vertexA#position", "vertexB#position", "vertexC#position"] }` —19 each referenced property must itself resolve to a single position.2021## Example: a polygon whose corners track three other moving entities2223```json24[25 { "id": "document", "name": "Reference positions", "version": "1.0" },26 {27 "id": "vertexA",28 "position": {29 "epoch": "2026-01-01T00:00:00Z",30 "cartographicDegrees": [0, -90, 30, 0, 3600, -89.9, 30, 0]31 }32 },33 {34 "id": "vertexB",35 "position": {36 "epoch": "2026-01-01T00:00:00Z",37 "cartographicDegrees": [0, -89.9, 30.1, 0, 3600, -89.8, 30.1, 0]38 }39 },40 {41 "id": "vertexC",42 "position": {43 "epoch": "2026-01-01T00:00:00Z",44 "cartographicDegrees": [0, -90, 30.1, 0, 3600, -89.9, 30.1, 0]45 }46 },47 {48 "id": "tracking-polygon",49 "polygon": {50 "positions": { "references": ["vertexA#position", "vertexB#position", "vertexC#position"] },51 "material": { "solidColor": { "color": { "rgba": [255, 0, 0, 128] } } }52 }53 }54]55```