Summary
Add an optional linearReference object to the OC4IDS Location schema, enabling road infrastructure projects to be referenced by route ID and measurement (e.g., "Road I-1, km 120+000 to km 135+500") in addition to GeoJSON coordinates.
Problem
Road infrastructure projects worldwide are referenced by route and kilometer markers — this is how engineers, planners, contractors, and asset management systems identify locations. The current OC4IDS location schema supports GeoJSON coordinates, gazetteers, addresses, and URIs, but has no way to express linear referencing, which is the universal spatial language of road agencies.
This creates a gap when:
- Connecting OC4IDS project data to road asset management systems (PMS/BMS), which index everything by LRS position
- Publishing data that road engineers can immediately relate to their domain context
- Linking construction contracts to the specific road segments they affect in national road registers
GeoJSON coordinates and linear references are complementary, not alternatives. Coordinates show where on a map; linear references say what in engineering terms (which road, which kilometer). Both are needed.
Proposal
Add an optional linearReference object to Location based on ISO 19148 (Linear Referencing) conceptual schema:
{
"locations": [
{
"id": "loc-1",
"description": "Road I-1, km 120 to km 135.5",
"geometry": {
"type": "LineString",
"coordinates": [[24.75, 42.14], [24.85, 42.16]]
},
"linearReference": {
"type": "absolute",
"routeId": "I-1",
"startMeasure": 120000,
"endMeasure": 135500,
"measureUnit": "meters",
"direction": "both",
"lrsAuthority": "Road Infrastructure Agency (Bulgaria)",
"referenceSystemUri": "https://api.bg/lrs/republican-roads"
}
}
]
}
Fields
| Field |
Type |
Required |
Description |
type |
string |
No |
absolute, relative, link-node, or interpolative |
routeId |
string |
Yes |
Route identifier in national road register |
routeName |
string |
No |
Human-readable route name |
startMeasure |
number |
Yes |
Start measurement along route |
endMeasure |
number |
No |
End measurement (omit for points) |
measureUnit |
string |
No |
meters (default) or kilometers |
direction |
string |
No |
increasing, decreasing, both |
referentId |
string |
No |
For relative: referent point ID (e.g., France "PR-15"). For link-node: link ID |
referentOffset |
number |
No |
For relative: offset from referent (e.g., France abscisse) |
endReferentId |
string |
No |
For relative segments: end referent point ID |
endReferentOffset |
number |
No |
For relative segments: offset from end referent |
referenceSystemUri |
uri |
No |
URI identifying the national LRS (disambiguates calibration versions) |
lrsAuthority |
string |
No |
Organization maintaining the LRS |
Use Case
We are preparing a dump of 500+ open data construction and reconstruction contracts from Bulgaria's Road Infrastructure Agency (АПИ), which manages 19,932 km of national roads. These contracts span two decades of road construction and represent billions of EUR in public investment.
Every contract is referenced internally by route and kilometer markers (e.g., "Road I-1, km 120+000 to km 135+500"). When we publish this data in OC4IDS format, we want to include these LRS references alongside GeoJSON coordinates, so that road engineers can immediately identify locations, and asset management systems (PMS/BMS, ISO 55001:2024) can link contracts to LRS-indexed asset registers.
АПИ is building an ISO 55001:2024-aligned national road management platform with a national asset register indexed by LRS (ISO 19148). Construction contracts need to flow from OC4IDS into the asset register — and both systems reference locations by route + kilometer, not coordinates.
This is not Bulgaria-specific. Every road agency uses LRS:
- NVDB (Sweden): 25+ years of LRS-indexed road data
- ARNOLD (USA): Federal requirement for all public roads
- National Highways (England): LRS-based asset data management
- Rijkswaterstaat (Netherlands): NWB-ID system
- INSPIRE Transport Networks (EU): Linear referencing for all member states
Any country publishing road construction data through OC4IDS/CoST would benefit from this extension.
Standards Reference
- ISO 19148:2021 — Geographic information — Linear referencing
- ISO 19133 — Location-based services — Tracking and navigation
- INSPIRE Transport Networks data specification
Implementation
We have drafted a complete extension following OCDS extension conventions:
extension.json — metadata
project-schema.json — schema patch adding linearReference to Location
codelists/linearReferenceType.csv — codelist for reference types
README.md — full documentation with examples
Happy to submit as a PR or contribute in whatever format is preferred.
Submitted by Mihail-Ernesto Mihailov (mmihailov@gmail.com)
Summary
Add an optional
linearReferenceobject to the OC4IDSLocationschema, enabling road infrastructure projects to be referenced by route ID and measurement (e.g., "Road I-1, km 120+000 to km 135+500") in addition to GeoJSON coordinates.Problem
Road infrastructure projects worldwide are referenced by route and kilometer markers — this is how engineers, planners, contractors, and asset management systems identify locations. The current OC4IDS location schema supports GeoJSON coordinates, gazetteers, addresses, and URIs, but has no way to express linear referencing, which is the universal spatial language of road agencies.
This creates a gap when:
GeoJSON coordinates and linear references are complementary, not alternatives. Coordinates show where on a map; linear references say what in engineering terms (which road, which kilometer). Both are needed.
Proposal
Add an optional
linearReferenceobject toLocationbased on ISO 19148 (Linear Referencing) conceptual schema:{ "locations": [ { "id": "loc-1", "description": "Road I-1, km 120 to km 135.5", "geometry": { "type": "LineString", "coordinates": [[24.75, 42.14], [24.85, 42.16]] }, "linearReference": { "type": "absolute", "routeId": "I-1", "startMeasure": 120000, "endMeasure": 135500, "measureUnit": "meters", "direction": "both", "lrsAuthority": "Road Infrastructure Agency (Bulgaria)", "referenceSystemUri": "https://api.bg/lrs/republican-roads" } } ] }Fields
typeabsolute,relative,link-node, orinterpolativerouteIdrouteNamestartMeasureendMeasuremeasureUnitmeters(default) orkilometersdirectionincreasing,decreasing,bothreferentIdreferentOffsetendReferentIdendReferentOffsetreferenceSystemUrilrsAuthorityUse Case
We are preparing a dump of 500+ open data construction and reconstruction contracts from Bulgaria's Road Infrastructure Agency (АПИ), which manages 19,932 km of national roads. These contracts span two decades of road construction and represent billions of EUR in public investment.
Every contract is referenced internally by route and kilometer markers (e.g., "Road I-1, km 120+000 to km 135+500"). When we publish this data in OC4IDS format, we want to include these LRS references alongside GeoJSON coordinates, so that road engineers can immediately identify locations, and asset management systems (PMS/BMS, ISO 55001:2024) can link contracts to LRS-indexed asset registers.
АПИ is building an ISO 55001:2024-aligned national road management platform with a national asset register indexed by LRS (ISO 19148). Construction contracts need to flow from OC4IDS into the asset register — and both systems reference locations by route + kilometer, not coordinates.
This is not Bulgaria-specific. Every road agency uses LRS:
Any country publishing road construction data through OC4IDS/CoST would benefit from this extension.
Standards Reference
Implementation
We have drafted a complete extension following OCDS extension conventions:
extension.json— metadataproject-schema.json— schema patch addinglinearReferencetoLocationcodelists/linearReferenceType.csv— codelist for reference typesREADME.md— full documentation with examplesHappy to submit as a PR or contribute in whatever format is preferred.
Submitted by Mihail-Ernesto Mihailov (mmihailov@gmail.com)