Unified Dispatching System: a live map for 112, 101, 102, 103 and 104
Context
A nationwide platform for 112, fire (101), police (102), ambulance (103) and gas emergency (104) services. Operators manage incidents, track vehicles, coordinate brigades and monitor statuses.
The problem
Dispatchers need to see where every vehicle is right now. Location updates arrive over sockets at high frequency, alongside a steady stream of event notifications. Rendering every update naively freezes the map and floods the UI.
Constraints
Government users on ordinary hardware; the map must stay responsive during peak incidents; no room for missed notifications.
What I did
Built the live map on OpenLayers. Modelled the socket feed as RxJS streams with buffering and throttling so the map redraws at a sustainable rate without dropping the latest position. Built SignalR-driven notification and live-update components with PrimeNG and Angular Material for consistency and accessibility.
What happened
The map redraws at a steady rate no matter how many vehicles report at once, so it stays usable through the peaks that used to freeze it. Dispatchers stopped clicking on a vehicle and getting the wrong one. The position stream is now the only place the map learns about vehicles, which made it easy to record a feed and replay it for testing.