Release v1.12.0
TL;DR
- Unified screen-to-map conversion API on Android – now uses android.graphics.PointF, eliminating the old MapPoint/Point mix-up.
- Property clean-up on iOS – mapZoom → mapScale (and heads-up about 1.13 renaming of mapZoomLevel).
- Smarter tile pipeline on both platforms – fewer aborts, fewer duplicate downloads, better cache hit-rate.
- NDK r28.1 & 16 KB page-size support for Android – rebuilt libs and updated CMake configs.
What’s new
🌍 Cross-platform
Area | Details |
---|---|
Tile request strategy | Instead of firing every tile that might be visible and cancelling later, 1.12.0 starts with the coarsest visible zoom, queues deeper tiles lazily, and only cancels if the request hasn’t begun. If the download has already started, the SDK finishes it and stores the data in the on-device cache. |
Consistent naming | We’re converging on the Android naming scheme: scale = real-world scale, zoom = discrete zoom level. See iOS section below. |
🤖 Android
Change | Notes |
---|---|
NDK 28.1 | Pre-built .so files were rebuilt with NDK r28.1. |
Coordinate-conversion API modernised | Before 1.12.0 methods such as convertDisplayToInternal(MapPoint val)/convertInternalToDisplay(MapPoint val) relied on MapPoint both for screen and map space. |
Minor
- Added setSurface(surface, w, h, scale) helper (useful for custom Surface routing).
- destroySurface() is now public.
Migration hints
// 1.11.x
MapPoint geo = renderer.convertDisplayToInternal(new MapPoint(x, y));
// 1.12.0+
MapPoint geo = renderer.convertDisplayToInternal(x, y);
⸻
🍏 iOS
Change | Notes |
---|---|
mapZoom → mapScale | The floating-point scale property is now called mapScale, matching Android’s getMapScale()/setMapScale(). |
Upcoming (1.13.0) | mapZoomLevel will be renamed mapZoom (integer/float, same semantic as Android’s mapZoom). |
Tile pipeline | Same algorithmic change as Android – dramatically fewer cancellations under fast pan/zoom. |
Other | Added isTapZoomInverted property (default = false). |
Migration quick-check
// Replace
double scale = mapView.mapZoom; // 1.11.x
// With
double scale = mapView.mapScale; // 1.12.0
Thank you!
Big thanks to everyone who reported issues, tested pre-releases, and sent pull requests. Drop feedback to [email protected].