Geolocation management system
Real-time tracking of tourist buses to maintain wifi connectivity
We created a tracking system to monitor and collect insights from geospatial data. The data is generated by a fleet of smart devices mounted on charter buses to supply passengers with a wifi connection.
The primary use case is as an entertainment system allowing onboard movie streaming on smartphones, laptops, and tablets. This geolocation project is a major component of a much larger system for passenger entertainment providing both real-time visual information to bus managers and also real-time features to passengers without signal interruption.
- Build a system that offers real-time tracking of buses
- Notify passengers before a bus moves into a new wifi signal area
The key challenge was working out how to let passenger devices know in advance that the wifi signal was about to change, without knowing the precise future route of each bus - i.e. where it would go next.
We solved this by creating a network of geofences, constructed from the locations of each of the buses, and then comparing the current position of each bus to the nearest geofence every few seconds.
This allowed us to reliably predict which geofence the bus would cross next (therefore which wifi signal area it would enter) and notify passenger devices in real-time.
The central element of the geolocation system is in the data layer. To ensure data persistence, we used Elasticsearch along with Filebeat and Logstash as the pipeline for storing the data.
We used Nodejs servers for processing and Leaflet on the front end to display the heatmap. The geolocation system is also used in a React Native passenger-facing app which informs the user of signal changes.