diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2017-01-16 11:38:35 -0800 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2017-01-16 11:38:35 -0800 |
commit | 7ef2843e6a62116667be6a2c12de085951fdd5ea (patch) | |
tree | 40eca249e044e2706efd1193d617e6eb8e59d708 /platform/darwin/src/MGLCircleStyleLayer.h | |
parent | 76301b252cbc4bc3ae1fc84322bcbcdbd26cae8a (diff) | |
parent | 13b97dd0cebffe36b187bdb74923910def6bd87b (diff) | |
download | qtlocation-mapboxgl-7ef2843e6a62116667be6a2c12de085951fdd5ea.tar.gz |
Merge branch 'release-ios-v3.4.0' into 1ec5-release-ios-v3.4.0-beta.7
Diffstat (limited to 'platform/darwin/src/MGLCircleStyleLayer.h')
-rw-r--r-- | platform/darwin/src/MGLCircleStyleLayer.h | 211 |
1 files changed, 170 insertions, 41 deletions
diff --git a/platform/darwin/src/MGLCircleStyleLayer.h b/platform/darwin/src/MGLCircleStyleLayer.h index 17ac3e5881..8d8c4588e7 100644 --- a/platform/darwin/src/MGLCircleStyleLayer.h +++ b/platform/darwin/src/MGLCircleStyleLayer.h @@ -10,40 +10,71 @@ NS_ASSUME_NONNULL_BEGIN /** Controls the scaling behavior of the circle when the map is pitched. - Values of this type are used in the `circlePitchScale` property of `MGLCircleStyleLayer`. + Values of this type are used in the `MGLCircleStyleLayer.circleScaleAlignment` + property. */ -typedef NS_ENUM(NSUInteger, MGLCirclePitchScale) { +typedef NS_ENUM(NSUInteger, MGLCircleScaleAlignment) { /** Circles are scaled according to their apparent distance to the camera. */ - MGLCirclePitchScaleMap, + MGLCircleScaleAlignmentMap, /** Circles are not scaled. */ - MGLCirclePitchScaleViewport, + MGLCircleScaleAlignmentViewport, }; /** Controls the translation reference point. - Values of this type are used in the `circleTranslateAnchor` property of `MGLCircleStyleLayer`. + Values of this type are used in the `MGLCircleStyleLayer.circleTranslationAnchor` + property. */ -typedef NS_ENUM(NSUInteger, MGLCircleTranslateAnchor) { +typedef NS_ENUM(NSUInteger, MGLCircleTranslationAnchor) { /** The circle is translated relative to the map. */ - MGLCircleTranslateAnchorMap, + MGLCircleTranslationAnchorMap, /** The circle is translated relative to the viewport. */ - MGLCircleTranslateAnchorViewport, + MGLCircleTranslationAnchorViewport, }; /** - A circle layer which allows customization of styling properties at runtime. You may - instantiate a new circle layer to add to a map style or you may query an - `MGLMapView` for its `style` and obtain existing layers using the - `-[MGLStyle layerWithIdentifier:]` method. + An `MGLCircleStyleLayer` is a style layer that renders one or more filled + circles on the map. + + Use a circle style layer to configure the visual appearance of point or point + collection features in vector tiles loaded by an `MGLVectorSource` object or + `MGLPointAnnotation`, `MGLPointFeature`, `MGLPointCollection`, or + `MGLPointCollectionFeature` instances in an `MGLShapeSource` object. + + A circle style layer renders circles whose radii are measured in screen units. + To display circles on the map whose radii correspond to real-world distances, + use many-sided regular polygons and configure their appearance using an + `MGLFillStyleLayer` object. + + You can access an existing circle style layer using the + `-[MGLStyle layerWithIdentifier:]` method if you know its identifier; + otherwise, find it using the `MGLStyle.layers` property. You can also create a + new circle style layer and add it to the style using a method such as + `-[MGLStyle addLayer:]`. + + ### Example + + ```swift + let layer = MGLCircleStyleLayer(identifier: "circles", source: population) + layer.sourceLayerIdentifier = "population" + layer.circleColor = MGLStyleValue(rawValue: .green) + layer.circleRadius = MGLStyleValue(interpolationBase: 1.75, stops: [ + 12: MGLStyleValue(rawValue: 2), + 22: MGLStyleValue(rawValue: 180) + ]) + layer.circleOpacity = MGLStyleValue(rawValue: 0.7) + layer.predicate = NSPredicate(format: "%K == %@", "marital-status", "married") + mapView.style?.addLayer(layer) + ``` */ MGL_EXPORT @interface MGLCircleStyleLayer : MGLVectorStyleLayer @@ -51,9 +82,12 @@ MGL_EXPORT #pragma mark - Accessing the Paint Attributes /** - Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity. + Amount to blur the circle. 1 blurs the circle such that only the centerpoint is + full opacity. - The default value of this property is an `MGLStyleValue` object containing an `NSNumber` object containing the float `0`. Set this property to `nil` to reset it to the default value. + The default value of this property is an `MGLStyleValue` object containing an + `NSNumber` object containing the float `0`. Set this property to `nil` to reset + it to the default value. */ @property (nonatomic, null_resettable) MGLStyleValue<NSNumber *> *circleBlur; @@ -61,90 +95,185 @@ MGL_EXPORT /** The fill color of the circle. - The default value of this property is an `MGLStyleValue` object containing `UIColor.blackColor`. Set this property to `nil` to reset it to the default value. + The default value of this property is an `MGLStyleValue` object containing + `UIColor.blackColor`. Set this property to `nil` to reset it to the default + value. */ -@property (nonatomic, null_resettable) MGLStyleValue<MGLColor *> *circleColor; +@property (nonatomic, null_resettable) MGLStyleValue<UIColor *> *circleColor; #else /** The fill color of the circle. - The default value of this property is an `MGLStyleValue` object containing `NSColor.blackColor`. Set this property to `nil` to reset it to the default value. + The default value of this property is an `MGLStyleValue` object containing + `NSColor.blackColor`. Set this property to `nil` to reset it to the default + value. */ -@property (nonatomic, null_resettable) MGLStyleValue<MGLColor *> *circleColor; +@property (nonatomic, null_resettable) MGLStyleValue<NSColor *> *circleColor; #endif /** The opacity at which the circle will be drawn. - The default value of this property is an `MGLStyleValue` object containing an `NSNumber` object containing the float `1`. Set this property to `nil` to reset it to the default value. + The default value of this property is an `MGLStyleValue` object containing an + `NSNumber` object containing the float `1`. Set this property to `nil` to reset + it to the default value. */ @property (nonatomic, null_resettable) MGLStyleValue<NSNumber *> *circleOpacity; /** - Controls the scaling behavior of the circle when the map is pitched. + Circle radius. - The default value of this property is an `MGLStyleValue` object containing an `NSValue` object containing `MGLCirclePitchScaleMap`. Set this property to `nil` to reset it to the default value. + This property is measured in points. + + The default value of this property is an `MGLStyleValue` object containing an + `NSNumber` object containing the float `5`. Set this property to `nil` to reset + it to the default value. */ -@property (nonatomic, null_resettable) MGLStyleValue<NSValue *> *circlePitchScale; +@property (nonatomic, null_resettable) MGLStyleValue<NSNumber *> *circleRadius; /** - Circle radius. - - This property is measured in points. + Controls the scaling behavior of the circle when the map is pitched. - The default value of this property is an `MGLStyleValue` object containing an `NSNumber` object containing the float `5`. Set this property to `nil` to reset it to the default value. + The default value of this property is an `MGLStyleValue` object containing an + `NSValue` object containing `MGLCircleScaleAlignmentMap`. Set this property to + `nil` to reset it to the default value. + + This attribute corresponds to the <a + href="https://www.mapbox.com/mapbox-gl-style-spec/#paint-circle-pitch-scale"><code>circle-pitch-scale</code></a> + layout property in the Mapbox Style Specification. */ -@property (nonatomic, null_resettable) MGLStyleValue<NSNumber *> *circleRadius; +@property (nonatomic, null_resettable) MGLStyleValue<NSValue *> *circleScaleAlignment; + +@property (nonatomic, null_resettable) MGLStyleValue<NSValue *> *circlePitchScale __attribute__((unavailable("Use circleScaleAlignment instead."))); #if TARGET_OS_IPHONE /** The stroke color of the circle. - The default value of this property is an `MGLStyleValue` object containing `UIColor.blackColor`. Set this property to `nil` to reset it to the default value. + The default value of this property is an `MGLStyleValue` object containing + `UIColor.blackColor`. Set this property to `nil` to reset it to the default + value. */ -@property (nonatomic, null_resettable) MGLStyleValue<MGLColor *> *circleStrokeColor; +@property (nonatomic, null_resettable) MGLStyleValue<UIColor *> *circleStrokeColor; #else /** The stroke color of the circle. - The default value of this property is an `MGLStyleValue` object containing `NSColor.blackColor`. Set this property to `nil` to reset it to the default value. + The default value of this property is an `MGLStyleValue` object containing + `NSColor.blackColor`. Set this property to `nil` to reset it to the default + value. */ -@property (nonatomic, null_resettable) MGLStyleValue<MGLColor *> *circleStrokeColor; +@property (nonatomic, null_resettable) MGLStyleValue<NSColor *> *circleStrokeColor; #endif /** The opacity of the circle's stroke. - The default value of this property is an `MGLStyleValue` object containing an `NSNumber` object containing the float `1`. Set this property to `nil` to reset it to the default value. + The default value of this property is an `MGLStyleValue` object containing an + `NSNumber` object containing the float `1`. Set this property to `nil` to reset + it to the default value. */ @property (nonatomic, null_resettable) MGLStyleValue<NSNumber *> *circleStrokeOpacity; /** - The width of the circle's stroke. Strokes are placed outside of the `circleRadius`. - + The width of the circle's stroke. Strokes are placed outside of the + "circle-radius". + This property is measured in points. - The default value of this property is an `MGLStyleValue` object containing an `NSNumber` object containing the float `0`. Set this property to `nil` to reset it to the default value. + The default value of this property is an `MGLStyleValue` object containing an + `NSNumber` object containing the float `0`. Set this property to `nil` to reset + it to the default value. */ @property (nonatomic, null_resettable) MGLStyleValue<NSNumber *> *circleStrokeWidth; +#if TARGET_OS_IPHONE /** The geometry's offset. - + This property is measured in points. - The default value of this property is an `MGLStyleValue` object containing an `NSValue` object containing a `CGVector` struct set to 0 points from the left and 0 points from the top. Set this property to `nil` to reset it to the default value. + The default value of this property is an `MGLStyleValue` object containing an + `NSValue` object containing a `CGVector` struct set to 0 points rightward and 0 + points downward. Set this property to `nil` to reset it to the default value. + + This attribute corresponds to the <a + href="https://www.mapbox.com/mapbox-gl-style-spec/#paint-circle-translate"><code>circle-translate</code></a> + layout property in the Mapbox Style Specification. */ -@property (nonatomic, null_resettable) MGLStyleValue<NSValue *> *circleTranslate; +@property (nonatomic, null_resettable) MGLStyleValue<NSValue *> *circleTranslation; +#else +/** + The geometry's offset. + + This property is measured in points. + + The default value of this property is an `MGLStyleValue` object containing an + `NSValue` object containing a `CGVector` struct set to 0 points rightward and 0 + points upward. Set this property to `nil` to reset it to the default value. + + This attribute corresponds to the <a + href="https://www.mapbox.com/mapbox-gl-style-spec/#paint-circle-translate"><code>circle-translate</code></a> + layout property in the Mapbox Style Specification. + */ +@property (nonatomic, null_resettable) MGLStyleValue<NSValue *> *circleTranslation; +#endif + +@property (nonatomic, null_resettable) MGLStyleValue<NSValue *> *circleTranslate __attribute__((unavailable("Use circleTranslation instead."))); /** Controls the translation reference point. - The default value of this property is an `MGLStyleValue` object containing an `NSValue` object containing `MGLCircleTranslateAnchorMap`. Set this property to `nil` to reset it to the default value. + The default value of this property is an `MGLStyleValue` object containing an + `NSValue` object containing `MGLCircleTranslationAnchorMap`. Set this property + to `nil` to reset it to the default value. + + This property is only applied to the style if `circleTranslation` is non-`nil`. + Otherwise, it is ignored. + + This attribute corresponds to the <a + href="https://www.mapbox.com/mapbox-gl-style-spec/#paint-circle-translate-anchor"><code>circle-translate-anchor</code></a> + layout property in the Mapbox Style Specification. + */ +@property (nonatomic, null_resettable) MGLStyleValue<NSValue *> *circleTranslationAnchor; + +@property (nonatomic, null_resettable) MGLStyleValue<NSValue *> *circleTranslateAnchor __attribute__((unavailable("Use circleTranslationAnchor instead."))); + +@end + +/** + Methods for wrapping an enumeration value for a style layer attribute in an + `MGLCircleStyleLayer` object and unwrapping its raw value. + */ +@interface NSValue (MGLCircleStyleLayerAdditions) - This property is only applied to the style if `circleTranslate` is non-`nil`. Otherwise, it is ignored. +#pragma mark Working with Circle Style Layer Attribute Values + +/** + Creates a new value object containing the given `MGLCircleScaleAlignment` enumeration. + + @param circleScaleAlignment The value for the new object. + @return A new value object that contains the enumeration value. + */ ++ (instancetype)valueWithMGLCircleScaleAlignment:(MGLCircleScaleAlignment)circleScaleAlignment; + +/** + The `MGLCircleScaleAlignment` enumeration representation of the value. + */ +@property (readonly) MGLCircleScaleAlignment MGLCircleScaleAlignmentValue; + +/** + Creates a new value object containing the given `MGLCircleTranslationAnchor` enumeration. + + @param circleTranslationAnchor The value for the new object. + @return A new value object that contains the enumeration value. + */ ++ (instancetype)valueWithMGLCircleTranslationAnchor:(MGLCircleTranslationAnchor)circleTranslationAnchor; + +/** + The `MGLCircleTranslationAnchor` enumeration representation of the value. */ -@property (nonatomic, null_resettable) MGLStyleValue<NSValue *> *circleTranslateAnchor; +@property (readonly) MGLCircleTranslationAnchor MGLCircleTranslationAnchorValue; @end |