// the find
googlemaps/android-maps-utils
Maps SDK for Android Utility Library
Official Google utility library for the Android Maps SDK, covering marker clustering, heatmaps, KML/GeoJSON/GPX import, polyline encoding, spherical geometry, and marker animation. It's the standard answer when you need any of these things on top of Google Maps for Android. Version 5.0.0 moved to Kotlin and split into focused submodules, so you can pull in just clustering without dragging in the KML parser.
The submodule split in 5.0.0 is genuinely useful — `android-maps-utils-clustering` alone is a very common dependency and you no longer pay for the full library. The clustering implementation ships multiple algorithms (grid-based, non-hierarchical distance-based, centroid-based, view-based) with a clean `Algorithm` interface, so you can swap strategies or write your own without touching the renderer. KML and GeoJSON parsers handle a real subset of the specs including nested folders, ground overlays, and multi-geometry — enough to cover most practical import use cases. The quadtree behind clustering is well-tested and has a published benchmark dashboard, which is more than most similar libraries bother with.
Hard dependency on Google Maps SDK for Android means you're locked to Google Play Services — no Mapbox, no MapLibre, no offline-capable alternative. If Play Services is unavailable (certain regions, sideloaded apps), you get nothing. The KML/GeoJSON renderer goes through the deprecated legacy Marker API by default; migrating fully to Advanced Markers requires opting into a separate renderer path that isn't the obvious default. The library's own Terms of Service disclaimer is worth reading: it explicitly says Google Maps Platform SLAs and deprecation policies do not apply to this library, so a breaking Maps SDK change can strand you without any formal obligation from Google to fix it. GPX support exists but is buried in the `data` module with minimal documentation — easy to miss and not mentioned in the main README.