Pin drops were the original visualization: a colored marker at the estimated transmitter position, placed on the map with a confidence radius. They worked for proof of concept, but they communicated the wrong thing. A pin implies a precise point location — "the transmitter is here" — when the reality is a probability distribution spread across a region of road segments. The visual metaphor was misleading.
The replacement is road-segment polyline stripes: colored lines painted directly onto the road network near each detection, similar to how traffic apps display congestion. When the engine geolocates a transmission, instead of dropping a single pin it highlights the nearby road segments where the transmitter is most likely located. The visual now communicates what the engine actually knows: "there is police/EMS/fire activity somewhere along these roads."
The implementation spans all three layers of the platform. On the server side, the geolocation engine queries PostGIS for road segments near the estimated position and packages them as an array of coordinate pairs in the PIN_DROP payload. A highway filter excludes the 238,000 service-class segments (parking lots, driveways, alleys — 65% of the road table) that aren’t meaningful display targets, cutting the candidate pool from 367,000 to 129,000 segments.
On the Android side, a RoadStripeRenderer class manages the polyline overlays on the Google Maps SDK. Each stripe set is keyed by RID and talkgroup, color-coded by category (blue for police, red for EMS, amber for fire), and automatically expires after 180 seconds. The renderer handles lifecycle management — adding, expiring, and clearing stripe sets — and the main activity wires it into the PIN_DROP processing flow.
The removal of pin-drop code was extensive. The dropDemoBurst() method, dropPinAt(), flushPendingIfPossible(), the pendingTriggers bookkeeping, all marker-hue helper functions, and the marker click listener were all deleted. The alert card (the slide-down banner with the colored severity bar), the audio ding, and the burst log all remain — the stripe system replaces only the map markers, not the notification flow.
The web dashboard received the same treatment: stripe rendering via Leaflet polylines with category-appropriate colors, automatic expiry, and the same server-side road_stripes payload. Both clients are now pure display layers — the server decides which road segments to highlight, and the clients just draw them.