Release v1.13.0
Better Navigation UI with Track Arrows
v1.13.0 makes navigation routes clearer with directional arrows along your track. Plus: a new helper for displaying user location, Android stability fixes, and better cross-platform API parity.
Track Arrows: See Where You're Going
Navigation routes can be hard to follow on a map, especially when the path curves or maneuvers aren't obvious. Track arrows solve this by rendering directional indicators along your route.
New in 1.13.0: GLMapTrackArrow draws directional arrows as part of the track line — complete with head, middle, and tail segments. The arrows flow naturally with the route geometry, making it immediately clear which direction the route goes.
Why this matters:
- Clearer navigation — Users instantly see which way the route flows
- Better maneuver visibility — Turn directions are obvious even before reaching them
- Works for any track — Navigation routes, recorded tracks, hiking trails, delivery routes
The rendering is efficient (arrows are drawn as styled lines with casing + head images) and works seamlessly with existing GLRoute and track rendering code.
GLMapUserLocation Helper
Displaying the user's current position is one of the most common map features. GLMapUserLocation is a new helper class that handles this out of the box — less boilerplate to get a blue dot on screen with proper styling and updates.
Android Stability & Cross-Platform Parity
- Fixed deadlock on Android — animation and rendering thread synchronization issue resolved
- Fixed crash in triangulation — edge case in geometry processing
- Fixed data races in scale ruler — thread-safe updates
- GestureDetector rewrite — cleaner gesture handling, removed legacy state machine
- Android API improvements — better parity with iOS (route builder methods, normalized Javadoc)
Under the Hood
- Shader optimizations (OpenGL ES 3.0 → 2.0 auto-translation, better compilation caching)
- Updated world map (world.vm) with February 2026 OSM data
- Updated AGP, NDK, and CMake for Android
- Fixed memory leaks in custom function callbacks (iOS)
- Improved error handling for map downloads
Breaking Changes & Migration
iOS
User Location API
The old manual user location API has been replaced with GLMapUserLocation helper:
// 1.12.0
map.setUserLocationImage(locationImage, movementImage: movementImage)
map.showUserLocation = true
map.locationManager(manager, didUpdateLocations: locations)
// 1.13.0
let userLocation = GLMapUserLocation(drawOrder: 100)
userLocation.add(toMap: map)
locationManager.delegate = userLocation
The new helper handles location updates, accuracy circles, and image management automatically.
Track API
// 1.12.0
track.setTrackData(trackData, style: style)
// 1.13.0
track.setData(trackData, style: style)
Image API
// 1.12.0
image.setImage(img, for: map)
// 1.13.0
image.setImage(img)
Android
Animation API
// 1.12.0
renderer.animate(animation -> {
animation.setFlyToMode(GLMapAnimation.FlyToMode.Enabled);
renderer.setMapCenter(point);
});
// 1.13.0
renderer.animate(animation -> {
animation.flyToPoint(point);
// or use animation.setContinueFlyTo(true)
});
Questions? Reach out at [email protected].
