This fixes an issue where the map view would drop annotation views if the developer did not make full use of the reuse queue. The fixes are: - Guard against enqueuing a view for reuse if it does not have a `viewReuseIdentifier`. Previously, if the app developer created a new annotation view with no reuse id each time `[MGLMapViewDelegate mapView:viewForAnnotation:]` was called and then the view was scrolled offscreen, we attempted to add the view to the reuse queue (for no good reason) and did not update the views center ever again. This change avoids the reuse queue and just updates the center always. - Add any annotation view that should be displayed but is not in the annotation container view to the annotation container view. Previously, if the app developer created a new annotation view with a reuse id each time `[MGLMapViewDelegate mapView:viewForAnnotation:]` was called, and then if the annotation was scrolled off and then on screen again, we did not add the new view to the container view because it was not happening in the normal `addAnnotation` cycle. This adds add logic to catch that case and add annotation views created in this way to the view.
Mapbox GL Native
A library for embedding interactive, customizable vector maps into native applications on multiple platforms. It takes stylesheets that conform to the Mapbox Style Specification, applies them to vector tiles that conform to the Mapbox Vector Tile Specification, and renders them using OpenGL. Mapbox GL JS is the WebGL-based counterpart, designed for use on the Web.
The Mapbox GL ecosystem
This repository hosts the cross-platform Mapbox GL Native library, plus convenient SDKs for several platforms. The cross-platform library comes with a GLFW-based demo application for Ubuntu Linux and macOS. The SDKs target the usual languages on their respective platforms:
| SDK | Languages | Build status |
|---|---|---|
| Mapbox GL Native | C++14 | |
| Mapbox Android SDK | Java | |
| Mapbox iOS SDK | Objective-C or Swift | |
| Mapbox macOS SDK | Objective-C, Swift, or AppleScript | |
| node-mapbox-gl-native | Node.js | |
| Mapbox Qt SDK | C++03 |
Additional Mapbox GL Native–based libraries are developed outside of this repository:
- React Native Mapbox GL for React Native applications on iOS and Android
- Telerik’s Mapbox plugin for Apache Cordova Hybrid applications
- Telerik’s Mapbox plugin for NativeScript Hybrid applications
- Xamarin's Mapbox component for Xamarin Hybrid applications
If your platform or hybrid application framework isn’t listed here, consider embedding Mapbox GL JS using the standard Web capabilities on your platform.