Page History
| Info |
|---|
Prior revisions of answers
...
[TISA-LR-OpenLR-FAQ3] Yes, OpenLR offers comprehensive documentation and open-source tools for implementation. Key resources include the official white paper, a Java-based reference implementation, and practical guides such as the |
Short Summary Answer
Yes, OpenLR offers comprehensive documentation and open-source tools for implementation. Key resources include the official white paper, a Java-based reference implementation, and practical guides such as the HOWTO.md on GitHub. These resources cover encoding, decoding, and integration workflows to support both beginners and experienced developers.
Stakeholder Relevance / Rationale
Public Authorities: Access to well-documented, transparent technology supports procurement and compliance.
Content Providers: Facilitates integration into existing data pipelines through clearly defined formats and tools.
Service Providers: Accelerates development and integration with support from reference code and best-practice examples.
OEMs: Enables rapid prototyping and integration into in-vehicle systems using proven libraries and flow diagrams.
Detailed Explanation
Types / Versions / Formats
ISO standard: ISO 21219-22 – TPEG2-OLR Standard
OpenLR v3 Core Documentation: The OpenLR White Paper explains the encoding/decoding process, location types, formats (binary/XML), and algorithmic flow. Version 3 is the current version. The document OpenLR_Decoding_bits_and_bytes v1.0,1 (PDF) provides further decoding details and examples.
GitHub Repository: Includes the official Java-based reference implementation with encoder/decoder modules, test data, and CLI tools.
HOWTO.md: Step-by-step guide for implementing OpenLR in your own systems: View here.
...
Encoder/Decoder Design: Requires both sides of the system to implement correct encoding and decoding logic.
Diagrams and Pseudo-Code: Included in the white paper and repository to support alternative language implementations.
No Hosted API: OpenLR is a library/specification—not a cloud service—so self-hosted integration is necessary.
Decision Guide
| Need | Resource/Tool |
|---|---|
| Understand the OpenLR concept | OpenLR White Paper |
| Understand the ISO TPEG2-OLR formats | |
| Understand the ISO TPEG2-OLR encoding | |
| Understand OpenLR encoding in DATEXII | |
| Implement OpenLR in Java | GitHub Repository |
| Implement OpenLR in python | |
| Follow hands-on instructions | HOWTO.md Guide |
| Explore dynamic location usage | INRIX Documentation |
| Re-implement in another language (e.g., C++) | Use flow diagrams and algorithm logic from white paper and GitHub |
Implementation Notes
There is no “plug-and-play” API; integration requires embedding the encoder and decoder into your own systems.
Ensure that test data is validated across both encoding and decoding ends to confirm map alignment.
Community forums and forks may offer additional language implementations or platform-specific tips.
References & Tools
OpenLR White Paper (PDF) and OpenLR_Decoding_bits_and_bytes v1.0,1 (PDF)
- DATEXII OpenLR™ (Point, linear and area location)
- TN-ITS integration: to become EN TS 16157, Part 14: TN-ITS (work-item in CEN TC278 W7, finalisation publication expected Q4 2025Q1 2026)
- TISA Github
- OpenLR Python Documentation
Comments
...
Who
...
What
...
Decision
...
Processed comments meeting July 9th
...
Who
...
What
...
Decision
...
Included:
EN TS 16157, Part 14: TN-ITS
DATEXII OpenLR™ (Point, linear and area location)
...
Proposal 1
...
Proposal text (MS Copilot generated)
...
Yes, there is comprehensive implementation documentation available for OpenLR. Here are some key resources:
GitHub Repository
The OpenLR GitHub repository contains the reference implementation of OpenLR. It includes modules for encoding and decoding OpenLR locations, as well as tools for map access and data handling [1].
HOWTO.md
The HOWTO.md file in the GitHub repository provides detailed instructions on how to encode and decode OpenLR locations on digital maps [2].
INRIX Documentation
INRIX offers documentation on Dynamic Location Referencing, which includes information on OpenLR. This resource provides insights into the implementation tools available, such as the Java-based encoder/decoder and map access layer [3].
...
1. Official OpenLR Documentation (by TomTom)
📄 OpenLR White Paper (Core Specification)
The foundational document that explains:
The encoding/decoding process
Location reference types
Binary and XML formats
Algorithms for location matching
📍 Link: https://www.openlr.org/docs/OpenLR-whitepaper.pdf
✅ 2. OpenLR Reference Implementation (Java Library)
📦 Official GitHub Repository
TomTom’s open-source Java implementation of OpenLR
Includes:
Encoding/decoding tools
Sample map and test data
CLI tools
Great for understanding the logic and getting started with your own integration
📍 GitHub: https://github.com/TomTom/openlr
✅ 3. OpenLR Encoder/Decoder Flow Diagrams
The whitepaper and GitHub repo include helpful flow diagrams and pseudo-code for:
Finding candidate locations
Generating location references
Decoding them onto different maps
This helps if you're implementing OpenLR in a language other than Java (e.g., C++, Python, JavaScript).
✅ 4. Community/Examples
While OpenLR isn't widely discussed in public forums, you can find:
Example implementations or forks on GitHub (search "OpenLR").
Occasional integration notes in projects using OpenStreetMap or routing engines like GraphHopper or OSRM.
❗Note: No "Plug-and-Play" Web API
OpenLR is a specification and library, not a hosted API or web service.
You typically:
Integrate the encoder on your side (to generate references).
Transmit the encoded data (binary or base64).
Use the decoder on the recipient side to map-match to their own map data.
Bonus: Alternatives and Extensions
If your use case goes beyond what the core OpenLR offers, you might consider:
OpenLR+ (an extended version used internally by some companies)
Custom adaptations for area locations, GeoCoordinate encoding, etc.
Yes, there is detailed implementation documentation for OpenLR you can follow. Here's a summary of what's available and how you can use it:
📘 Official Documentation Sources
1. OpenLR Whitepaper (v1.5) – Core Specification
Explains logical structure, physical formats (binary & XML), encoding/decoding steps, data types.
Covers location types: line, point (including POI), and area (circle, rectangle, polygon, etc.).
Includes detailed attribute specifications: FRC, FOW, bearings, offsets.
📄 Your uploaded file: openlr-whitepaper_v1.5.pdf is the full spec
📄 openlr-whitepaper-errata_v1.5.pdf fixes known issues (e.g., ClosedLine bugs)
2. Reference Implementation on GitHub (TomTom)
Repo: github.com/tomtom-international/openlr
Modules:
encoder/: Java-based encoder converting map location to OpenLRdecoder/: Converts OpenLR back to map-specific locationmap/: Interface you must implement to plug in your own map backend (OSM, HERE, etc.)maploader-tt-sqlite/: Example for using TomTom mapsxml/,binary/: Serialization support
Build: Maven + Java 8
Docs:
HOWTO.mdexplains integration and usage
🧪 Testing Tools
Includes unit tests for encoding/decoding various location types.
openlr-usage-samplemodule provides a minimal working example.
🧰 What You’ll Need to Implement
To integrate OpenLR:
Implement the
OpenLRMapReaderinterface to support your map (e.g., OSM, HERE).Use
LocationEncoderandLocationDecoderAPIs.Decide on binary vs XML encoding (or both).
Handle map attribute translation (e.g., FRC/FOW normalization if using OSM).
✅ Additional Help
You can also explore:
Stack Overflow (tag
OpenLR)OpenLR community: info@openlr-association.com
Description of changes
<description of the changes>
Comments
...
Who
...
What
...
Decision
...