Mission Report · MapMyIndia [Gtropy]Project case study

Vahan Shakti

The challenge was never drawing the vehicles. It was keeping the map useful once thousands of them were moving at the same time.

Status
Shipped
Owned
Frontend · map UX
Users
200,000+
Distribution
Live on Play Store
Sector
Government
Stack
  • React
  • Mappls SDK
  • TypeScript
  • RxJS

ResultsMeasured

200,000+
Users · Government fleet programme
Live
On the Play Store
101001K10K100K1M
  • 200,000+ users
Log scale · faint markers are this site’s other measured figures

I built

  • React map components: live location, custom markers, route plotting, clustering, heatmaps
Brief

Vehicle tracking and analytics for a government fleet programme.

Context

A map that shows everything shows nothing. Past a certain density, every additional marker removes information rather than adding it.

Users

Government fleet operators and administrators, 200,000+ of them.

Discovery

A map of a national fleet is unreadable at the scale it needs to serve. The work began by identifying which questions operators asked at which zoom levels (where is everything, where is the density, where is this one vehicle) and designing a different answer for each.

Problem

Live location at national scale, rendered in a browser, without the interface collapsing into noise.

Hypothesis

If the map changes what it emphasises with altitude (clusters and heat at the top, individual markers and routes close in), one interface can serve both the overview and the individual case without either collapsing into noise.

Strategy

Build the map as a set of React components over the Mappls SDK, each owning one visual concern (markers, clusters, heatmap, routes, geofences), so performance work could target the layer that was actually slow.

Prioritization

Clustering and lazy rendering first, because without them nothing else was usable at 200,000 vehicles. Then live-update throttling, then the analytics views that sit on top.

UX

Clustering and heatmaps carry density; custom markers and plotted routes carry the individual case. The map changes what it emphasises as you zoom, so the answer stays legible at every altitude.

Design

Custom vehicle markers with dynamic state, cluster badges that read at a glance, heat layers for movement and activity, and route playback for the individual journey.

Technology

React map components over the Mappls SDK: live location, custom markers, route plotting, clustering and heatmaps.

Build

Debounce-based load optimisation to cut redundant API calls and re-renders, clustering and lazy rendering for the dense views, and caching for navigation between map-heavy screens. Live on the Play Store.

Outcome

Live on the Play Store, serving 200,000+ users.

Learnings

At this scale, performance is a UX decision. Every optimisation changed what the operator could see, so the two conversations had to happen together.

Next missionIntouchBuilt for ten thousand vehicles, architected for fifty thousand, because the second number is the one that arrives without warning.