KandaIdea needed an in-house, reusable Android GIS foundation instead of rebuilding a mapping app per client — and one built on free OpenStreetMap tiles and open routing rather than a metered Google Maps API. I built it solo over roughly seven weeks.
Features
- OSMDroid interactive map with a base layer plus five swappable, opacity-adjustable custom tile sources
- Freehand polygon and polyline drawing with draggable vertices and live area (Shoelace over a UTM projection) and distance measurement
- Point-to-point routing via OSRM
- Named, persistent overlays — drawn shapes serialized to GeoJSON and stored in Realm, reloadable and toggleable from a drawer
- GPS location-history tracking with a live speed readout, exportable to a GPX file
- KML import of a remote overlay, plus a custom .NET backend integration for login, search, and reverse geocoding
Architecture
- MVVM with AndroidX Data Binding; reactive networking with Retrofit + RxJava 2; Realm for local persistence
- A HashMap-based layer manager built specifically to tame OSMDroid's flat, order-sensitive overlay list
