This change eliminates the call to the problematic
`annotationTagsInRect:` by using the annotation views themselves
and the map view to check if a view is visible or not.
Add an UIView subclass that can be used as the base class for all
client provided UIViews for annotations.
Teach MGLMapView to be able to display annotation views over the map if provided by the client delegate. For now, if the delegate provides a UIView then it will be used. If not, the map view will fall back to the old strategy of using GL annotations with an image provided by the delegate or a default image if not.
The map keeps a reuse queue and will store annotation views that are panned
offscreen in the queue if the application developer supplied a reuse queue identifer. The views in the queue are reused when more annotation
views are required. This view reuse provides a performance gain when many
annotations are shown and most of them are offscreen.
iosapp now implements the new delegate method to supply
a native view.
Add a playground to the workspace to facilitate experimentation
with new features. A playground is capable of importing frameworks if it
exists in the same workspace that builds the imported framework. The
initial playground demonstrates annotation views.
This also fixes a crash due to nullptr in annotations array If the `annotations` method is called while the user dot's callout view was showing, the userdot annotation is represented as null in the annotation context map. This
caused a crash when the null pointer was attempted to be converted
into an NSArray via C array. This protects against this bug by filtering out such a null annotation.
Previously, vector tile coordinates were being normalized to util::EXTENT in each place they were used, and for annotation and GeoJSON sources that don't require normalization.
Qt Quick requires third-party rendering codes to follow its standards
with regards to viewport transform. Qt 5.6 adds a 'mirrorVertically'
property but that only solves the solution for that version of Qt
onwards. Telling Mapbox GL core to flip the Y axis makes QQuickMapboxGL
item available for Qt 5.2 onwards.
Qt 'mirrorVertically' property documentation:
http://doc.qt.io/qt-5/qquickframebufferobject.html#mirrorVertically-propFixes#4866.
An error in the packaging script caused Mapbox.framework to be placed inside a folder named Mapbox.framework. This change moves the framework up one level.
Reformatted documentation comments in public headers in the OS X SDK and public headers shared between the iOS and OS X SDKs to wrap at column 80 and avoid excessive indentation that causes SourceKitten to detect code blocks.
Added a target, script, and make rule for generating OS X SDK documentation with jazzy, along with a docset cover page.
Switched the umbrella header from framework header syntax to user header syntax so SourceKit can find all the headers.
Fixes#4871.