feat: Comprehensive GPS visualisation and annotation system #7880
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
GPS Visualisation Feature: Complete GPS Data Annotation System
Reason for Change
This feature directly addresses Issue #7587 - "GPS Visualizer – Interactive Time-Based GPS Signal Visualisation" opened by @cloudmark. The issue highlighted that Label Studio could not visualise GPS signals on a map, making it difficult to analyse movement, identify stationary periods, or annotate events meaningfully for geospatial data.
Problem: As described in the issue, users were limited to displaying GPS data in tables or time series charts, which "is not an intuitive or effective way to understand spatial and temporal patterns in GPS data." This made it difficult to analyse movement, identify stationary periods, or annotate events in a way that is meaningful for geospatial data.
Solution: Implemented a comprehensive GPS Visualizer component that fulfils all the requirements outlined in the issue, providing interactive, map-based visualisation of time-based GPS signals with full annotation capabilities.
Requirements Fulfilled from Issue #7587
✅ Display GPS tracks on a map, with each point linked to its timestamp
✅ Detect and visualise stationary clusters as circles, showing where and when stops occurred
✅ Draw arrows on the outline of each stationary cluster, pointing toward the next cluster, with a distance label in front of the arrow
✅ Synchronise a timeline or waveform (or any syncable) with the map, allowing users to play, pause, and scrub through time
✅ Support annotation of regions or events, linking them between the map and the timeline
✅ Allow toggling of clusters, arrows, and labels for a customizable view
Use Cases for GPS Data Annotation
As mentioned in the issue, this feature is especially useful for:
Screenshots
Video demonstration available at
The video demonstrates all the requirements from Issue #7587:
Rollout Strategy
Testing
Comprehensive Testing Completed:
Test Data Used:
Test Configuration:
Manual Testing Completed:
Risks
Low Risk:
Mitigation:
Reviewer Notes
Key Components Added:
Core Visualization Components:
GPSVisualization.tsx
- Main map visualisation with Deck.GLGPSVisualizationWithWaveform.tsx
- Combined map + waveform viewGPSMetricsWaveform.ts
- Temporal waveform with metrics displayMap Layers (Addressing Issue GPS Visualizer – Interactive Time-Based GPS Signal Visualization #7587 Requirements):
StaticPathLayer.tsx
- GPS path visualisation with timestamp linkingCurrentPointLayer.tsx
- Current position indicatorBearingLayer.tsx
- Direction indicatorsClusterLayer.tsx
- Stationary cluster visualisation as circlesClusterArcLayers.tsx
- Direction arrows between clusters with distance labelsAnimatedTrailLayer.tsx
- Animated playback trailWaveform Components:
MetricWaveform.ts
- Speed and altitude waveform renderingClusterMarkers.ts
- Cluster visualisation on waveformRegions.ts
- Region creation and managementPlayHead.ts
- Playback position indicatorGPS Region Model:
GPSRegionModel.js
- Region data model with seeking functionalityGPSRegionProperties.tsx
- Region properties panelSupporting Infrastructure:
types.ts
- Comprehensive TypeScript interfacesUtils.ts
- GPS calculation utilitiesclusters.ts
- Cluster detection algorithmsmapProviders.js
- Map tile provider configurationsCode Quality:
Testing Focus Areas:
General Notes
This feature directly addresses the community feature request in Issue #7587 and provides a comprehensive solution for GPS data visualisation and annotation. The implementation fulfils all the requirements outlined in the original issue while extending the functionality with additional features for a complete GPS annotation experience.
Technical Implementation Highlights:
Performance Optimizations:
Real-world Validation:
Future Considerations:
The video demonstration and real-world testing clearly show that this implementation fully addresses the requirements outlined in Issue #7587, providing the community with the GPS visualisation capabilities they requested while extending the functionality for comprehensive multi-modal AI training data annotation.