Commit Graph

353 Commits

Author SHA1 Message Date
Eric Wolfe
f91072a6b0 [ios][macos] Document that transitions using setStyleURL are not supported (#8475) 2017-03-20 17:00:53 -07:00
Jesse Bounds
73ed8aa7be [ios] Guard against over calling pause or resume 2017-03-18 19:09:45 -07:00
Jordan Kiley
789a49d46d [ios, macos] update iOS SDK guides (#8354)
- Added DDS guide
- Updated "For Style Authors" guide
2017-03-17 19:13:24 -04:00
Jordan Kiley
2c0005c262 [ios, macos] Add more information to interpolation mode docs (#8425)
Addresses #8192 until #8354 lands.
2017-03-15 13:57:37 -07:00
Minh Nguyễn
4430e65603 [ios, macos] Expanded feature querying documentation
Also fixed a couple incorrect Swift method names on macOS.
2017-03-14 14:42:57 -07:00
Jordan Kiley
e8f6c75896 [ios, macos] API doc revisions (#8396)
- Changed `make style-code-darwin` to `make darwin-style-code` in relevant files
- Added some doc clarifications:
   - `MGLInterpolationModeExponential` and `MGLInterpolationModeInterval` can be used with `MGLCameraStyleFunction` (I am not sure how to accurately reflect this in the documentation for `MGLCompositeStyleFunction`)
    - Do not add a style layer to the style property on a map view before the style has finished loading
    - Create individual style layers from a `MGLShapeCollectionFeature`
2017-03-14 12:31:31 -07:00
Minh Nguyễn
e91be23b7f [ios, macos] Fixed documentation parameter mismatches
Also enabled compiler warnings about incorrect Doxygen commands.
2017-03-13 12:35:09 -07:00
Minh Nguyễn
936cc33d52 [ios, macos] Resolved unused variable warnings
Resolved unused variable warnings in Release configuration that occurred because they were only used within NSAssert() invocations, which are omitted from Release builds.
2017-03-13 11:05:38 -07:00
Minh Nguyễn
b74d7bfdb4 [ios, macos] Corrected polyline equality
Now that annotation classes override -isEqual:, it’s no longer appropriate to rely on -isEqual: or -containsObject: to check for the preexistence of an annotation. Those methods become deep equality tests, which have worse performance. Checking for identity allows the developer to add a polyline and polygon with identical coordinates, title, etc. to the map.

Implemented a missing -[MGLPolyline isEqual:].

Removed outdated comments about -annotationTagForAnnotation: being expensive.
2017-03-10 15:08:00 -08:00
Fabian Guerra Soto
20712b7c84 Per-attribute transition properties on MGLStyleLayer (#8225)
* [ios, macos] new struct MGLTransition

* [ios] MGLTransition struct moved to MGLTypes.h

* [ios] MGLTransition implemented for style layer properties

* [ios, macos] added support for getting property transitions

* [ios, macos] updated to MGLDurationFromTimeInterval and MGLTimeIntervalFromDuration

* [ios, macos] added transition properties test

* [ios, macos] modified key strings imp

* [ios, macos] The impl for transition properties were changed to public methods

* [ios, macos] Changelog update

* [ios] Fixed layer space formatting

* [core] The name space was fixed for getters that returned TransitionOptions

* [ios, macos] Added rawLayer transition property tests

* [ios] Added a factory method for MGLTransition and transition-related methods to NSValue(MGLAdditions)

* [ios, macos] Copyedited changelog blurbs about transition properties
2017-03-10 11:33:31 -08:00
Ivo van Dongen
a7fd788b5d [macos, ios] query source features 2017-03-10 11:08:32 -08:00
Minh Nguyễn
d82092d606 [ios, macos] Fixed camera function exception message
This exception message had a typo; developers would’ve been advised to use a method that doesn’t exist, due to case sensitivity. Moreover, the method has been renamed since this message was written.
2017-03-10 10:22:44 -08:00
Konstantin Käfer
e9cf787779 [darwin] Use explicit initialization rather than global static variables for the default RunLoop
When linking Mapbox GL as a static library, the object file (MGLFoundation.o) containing the global static variable initialization was not linked into the resulting binary since it was not referenced. This resulted in the RunLoop not being initialized in the main thread.

Reverts 03a14ff000
2017-03-10 06:48:42 -08:00
Fabian Guerra Soto
05dd34f584 [ios, macos] Removed duplicated NSDate test files, improved duration converstion for NSDate+MGLAdditions (#8290) 2017-03-08 13:15:52 -08:00
Nadia Barbosa
4d058ffd94 [ios, macos] Exclude MGLUserTrackingMode from macOS 2017-03-03 18:59:30 -08:00
Fabian Guerra Soto
1f1cc131ea [ios] Fixed conversion between Duration and NSTimeInerval (#8276) 2017-03-03 20:11:06 -05:00
Jesse Bounds
4e074aa4db [ios, macos] Alias MGLStyleConstantValue to MGLConstantStyleValue 2017-03-03 09:10:31 -08:00
Jesse Bounds
d25e2c772d [ios, macos] Rename MGLStyleConstantValue to MGLConstantStyleValue 2017-03-03 09:10:31 -08:00
Jesse Bounds
0027f5cdc2 [ios] Pause file source activity on background
This uses the pause/resume API on the default file source to pause
network and revalidation activity when the host iOS application goes
into the background. Activity is resumed when the host application goes
into the foreground.

The intention of this change is to avoid edge cases on some OSs where
resources (i.e. sqlite) are not available when the host app is not
visible to the user.
2017-03-01 08:25:44 -08:00
Anand Thakker
f901e776b3 [core] Implement data-driven styling for {text,icon}-{color,opacity,halo-color,halo-blur,halo-width} (#7939)
* Add symbol dds attributes and adapt style code generation

* Update to mapbox-gl-js/master

* Refactor SymbolFeature as a subclass of GeometryTileFeature

Prepares for enabling DDS on symbol paint properties by allowing the
SymbolFeatures, which we keep around after constructing SymbolLayout,
to be used in evaluating data-driven paint properties later in the
layout process.

* Draft approach for splitting icon/text paint properties

The `Program` types are set up to bind GL attributes to each of the
data-driven paint properties specified in the `PaintProperties` type
provided.  Since `SymbolPaintProperties` specifies both `Text*` and
`Icon*` properties, the symbolIcon, symbolIconSDF, and symbolGlyph
programs each attempt to bind roughly double the number of attributes
that they actually need.

This change addresses this by:
- Adding the more specific `IconPaintProperties` and `TextPaintProperties` types, which are subsets of the full `SymbolPaintProperties`.
- The symbol layer continues to use its `SymbolPaintProperties paint` member to track layer property state, but it provides helpers that construct objects of each the specific `{Icon,Text}PaintProperties::Evaluated` type, for use by the painter.
- The three symbol programs instantiate `Program<>` using the appropriate `{Icon,Text}PaintProperties` type.

* check in generated style code

* Populate paint buffers for symbol DDS properties

* Address first round of review comments

* Refactor VectorTile{Layer,Feature} to explicitly share data

* Update submodule
2017-02-28 19:54:24 -08:00
Jesse Bounds
7d9018093a [ios, macos] Make source removal consistent with layer removal
This refactors the source removal methods to make them consistent
with the way layers are removed. This makes removal of nonexistent
sources and removal of sources of a different type but same
identifier as a previously added source a no-ops.

As with layers, the check at the top of the method to ensure that the
raw pointer is the same as the one in mbgl for the same
identifier string should make it impossible to attempt to remove
a source of a different type than the one in mbgl for the same
identifier. However, for consistency with the layer implementation,
the reinterpret_cast has been replaced with a dynamic_cast and check
for nullptr.
2017-02-23 15:07:43 -08:00
Jesse Bounds
59820fb63d [ios, macos] Simplify implementation of layer removal from map view
This reverts a previous change that recreated the pending and raw
layer pointers if an identifier match caused a layer to be removed
but the removed layer was of a different type than the layer triggering
the removal

This refactors the pointer replacement to use a simpler solution that
returns early if the layer does not have a raw pointer loaded in the
mbgl map instance.
2017-02-23 15:07:43 -08:00
Jesse Bounds
c0718a863d [core, ios, macos] Return null when removing nonexistent source 2017-02-23 15:07:43 -08:00
Jesse Bounds
e860fa6f0a [ios, macos] Recreate pending and raw layer ref when layer is removed 2017-02-23 15:07:43 -08:00
Minh Nguyễn
2f388d6635 Merge branch 'release-ios-v3.4.0' into 1ec5-release-ios-v3.4.2 2017-02-21 22:47:15 -08:00
Minh Nguyễn
b512af6a66 [ios, macos] Smarten apostrophes after backticks
jazzy is inconsistently converting straight apostrophes that immediately follow backticks into either &lsquo; or &rsquo; from one run to the next. Smarten the apostrophe to keep it stable.
2017-02-21 22:14:29 -08:00
Konstantin Käfer
6c0310209d [macos,ios] expose callback for transforming URLs 2017-02-20 14:36:27 +01:00
Konstantin Käfer
03a14ff000 [darwin] move RunLoop initialization to static variable 2017-02-20 14:36:27 +01:00
Minh Nguyễn
8669f933fd [ios, macos] Convert NSColor/UIColor expressions to CSS color string values
When converting a constant NSExpression to an mbgl::Value, turn an NSColor or UIColor into an std::string containing a CSS color string. This allows developers to set an attribute of an MGLFeature to an NSColor or UIColor (rather than a CSS color string, which would be foreign), then use it in an MGLStyleFunction with identity interpolation.
2017-02-18 14:42:16 -08:00
Minh Nguyễn
d790132eda [ios, macos] Short-circuit redundant camera changes
Avoid canceling transitions (and triggering preexisting completion handlers) until we get a chance to ensure that a new transition really does have to begin. Consistently avoid mbgl transitions for redundant camera changes. Upon bailing, schedule the completion handler to run asynchronously on a delay equivalent to the requested animation duration.

Added a “functional” equality method to MGLMapCamera that avoids trivial differences.

Fixed invocations of XCTAssertEqualWithAccuracy() that incorrectly expressed the accuracy as a number of digits rather than a scalar tolerance.
2017-02-18 14:14:09 -08:00
Anand Thakker
062b18374d [core] Enable property functions for text-{field,transform} (#7944) 2017-02-17 13:16:25 -08:00
Anand Thakker
685f237d02 Refactor: use conversion system to convert MGLStyleFunction to mbgl core types (#8026)
This leverages the work already happening in `mbgl::style::conversion` to convert style functions from style-spec definitions into `mbgl::style::{Camera,Source,Composite}Function`s.  In particular, this allows the conversions system to handle the differing typing requirements based on whether the output type of the style function is interpolatable or non-interpolatable.
2017-02-15 17:16:54 -05:00
John Firebaugh
a1a639120d [core] Introduce dedicated filter types for $type and $id special cases (#7971)
* [core] Introduce dedicated filter types for $type and $id special cases

* [ios, macos] Special-case $id, $type in predicates

Also support $id ≟ nil.
2017-02-09 14:18:57 -08:00
John Firebaugh
f35ca0d9df [core, ios, macos] Refactor composite stop types and conversions 2017-02-09 11:16:26 -06:00
Jesse Bounds
a49301ad25 [ios, macos] Don't add documentation to NS_ENUM 2017-02-08 21:11:43 -08:00
Jason Wray
0e80318627 [ios, macos] Add more bullets to style property docs 2017-02-08 21:11:43 -08:00
Jesse Bounds
a383edaae8 [ios, macos] Add function and interpolation mode to style property docs 2017-02-08 21:11:43 -08:00
Jesse Bounds
bd2f3a28a5 [ios, macos] Update documentation examples to use new style functions (#7960) 2017-02-08 12:29:51 -08:00
Jesse Bounds
c639105c9f [ios, macos] Document DDS enumerations (#7931)
[ios, macos] Document DDS enumerations
2017-02-08 12:28:50 -08:00
Jesse Bounds
06a8ed7959 Add back MGLStyleFunction and re-document MGLStyleValue (#7943)
[ios, macos] Add back MGLStyleFunction and re-document MGLStyleValue
2017-02-08 12:27:12 -08:00
John Firebaugh
150b938b49 [build, ios, macos] Simplify version portion of user agent string
The X.Y.Z version portion was unreliable, as it pulled from the latest tag regardless of platform. Set version to 0.0.0 and retrieve only the hash, which allows us to drop the node/npm dependency.
2017-02-08 10:59:59 -06:00
Eimantas Vaiciunas
7b0881030f Make MGLOfflinePack instances post notifications
This commit also gets rid of private `MGLOfflinePackDelegate` protocol.
`userInfo` dictionary in notification objects retain the `state` and
`progress` values for backwards compatibility. They can be removed in
later major release.
2017-02-06 12:39:11 -08:00
Jesse Bounds
e5c9db4793 [ios, macos] Implement default value for identity functions 2017-02-03 09:41:28 -08:00
Jesse Bounds
22b3834caa [ios, macos] Add support for data-driven property functions 2017-02-02 09:44:42 -08:00
Fredrik Karlsson
2ab3af4b1b [ios, macos] added a distance formatter 2017-01-27 19:41:13 +01:00
Konstantin Käfer
62ea1f2185 [core] remove trailing whitespace, add trailing newlines, add space after // 2017-01-27 11:44:16 +01:00
Minh Nguyễn
a662508ddd Merge branch 'release-ios-v3.4.0' into 1ec5-release-ios-v3.4.1-master 2017-01-26 17:56:46 -08:00
Konstantin Käfer
19bd68d3a2 [macos,ios] don't roundtrip through encodePNG when converting images 2017-01-26 15:26:55 +01:00
fabian-guerra
8ac9975941 [ios, macos] Deprecate style class API (#7785) 2017-01-25 22:38:53 -05:00
Jordan Kiley
f5bcf186f6 [ios] changed URL -> url (#7841)
Changed `@param URL` -> `@param url` in `MGLShapeSource.h` Fixes #7840
2017-01-25 11:11:45 -08:00