A speed reading even on bad GPS hardware
Many aftermarket head units report a speed of zero forever. The app detects that and switches to computing speed from consecutive position fixes instead.
Maps and speed warnings for the screen in your car
Z-Maps Car runs on the Android head unit already fitted to your car, on OpenStreetMap data. No Google Play Services, no API key, no extra hardware — install the APK and drive.
400 mTurn right onto Nguyen Van Linh12 min · 8.4 km
QL1A — Hoa Vang, Da Nang
GPS good · speed computed from fixes
On a real screen
Screenshots from a real device, not mockups.



What it does
The app reads nothing from the car's ECU. What you see is derived from position fixes and map data — which is also why installing the APK is the whole setup.
Many aftermarket head units report a speed of zero forever. The app detects that and switches to computing speed from consecutive position fixes instead.
A maxspeed tag is used when the data has one. When it does not, the limit is inferred from road class and built-up area — and shown with a visible '~ estimated' marker so you know it is an inference.
A 3 km/h hysteresis band stops GPS noise from flickering an alert while you drive near the limit. Cooldowns of 30/20/12 seconds by severity — but an escalation speaks immediately.
MapLibre caches 512 MB of the roads you have driven. Drive a familiar route with no data connection and the map is still there.
Where the app guesses wrong, fix it from the driving screen. Your figure is remembered for that stretch of road and used the next time you drive it.
Distance, time, average and maximum speed, and the number of overspeed events, stored per journey. Trips under 300 m are not recorded.
Decisions
Every row below is a place where a different choice was available. They are written down so that you know what you are installing.
| Area | Chosen | Why |
|---|---|---|
| Target devices | minSdk 23 → targetSdk 35 | Covers old Chinese head units as well as recent ones, rather than only the recent ones. |
| Map rendering | MapLibre Native 11.11 | A real Android SDK: vector tiles, GPU rendering, and deep customisation. |
| Tile source | OpenFreeMap (liberty) | OpenMapTiles schema, no API key and no quota — nobody has to sign up for anything. |
| Offline | 512 MB ambient cache | Caches what you drive. Losing signal mid-route still leaves a map, without downloading a whole province first. |
| Location and speed | Plain LocationManager | Fused Location is silent on devices without Google Play Services — which is the main target group. |
| Speed limits | OSM maxspeed → road-class fallback | Vietnamese roads are very often missing the maxspeed tag, and public tiles do not carry it at all. |
Version 0.1.0
Download the APK that matches your unit's chip, allow installing from unknown sources, grant location permission. The guide walks through every step.