summaryrefslogtreecommitdiff
path: root/platform/darwin/src/MGLStyleLayer.h
blob: 2f1a777455e0e44983dd3db784ca9207ae68ac81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#import <Foundation/Foundation.h>

#import "MGLFoundation.h"
#import "MGLTypes.h"

NS_ASSUME_NONNULL_BEGIN

/**
 `MGLStyleLayer` is an abstract base class for style layers. A style layer
 manages the layout and appearance of content at a specific z-index in a style.
 An `MGLStyle` object consists of one or more `MGLStyleLayer` objects.

 Each style layer defined by the style JSON file is represented at runtime by an
 `MGLStyleLayer` object, which you can use to refine the map’s appearance. You
 can also add and remove style layers dynamically.

 Do not create instances of this class directly, and do not create your own
 subclasses of this class. Instead, create instances of
 `MGLBackgroundStyleLayer` and the concrete subclasses of
 `MGLForegroundStyleLayer`.
 */
MGL_EXPORT
@interface MGLStyleLayer : NSObject

#pragma mark Initializing a Style Layer

- (instancetype)init __attribute__((unavailable("Use -initWithIdentifier: instead.")));

/**
 Returns a style layer object initialized with the given identifier.

 The default implementation of this initializer in MGLStyleLayer creates an
 invalid style layer. Call this initializer on `MGLBackgroundStyleLayer` or one of
 the concrete subclasses of `MGLForegroundStyleLayer` to create a valid style
 layer.

 After initializing and configuring the style layer, add it to a map view’s
 style using the `-[MGLStyle addLayer:]` or
 `-[MGLStyle insertLayer:belowLayer:]` method.

 @param identifier A string that uniquely identifies the layer in the style to
    which it is added.
 @return An initialized style layer.
 */
- (instancetype)initWithIdentifier:(NSString *)identifier;

#pragma mark Identifying a Style Layer

/**
 A string that uniquely identifies the style layer in the style to which it is
 added.
 */
@property (nonatomic, copy, readonly) NSString *identifier;

#pragma mark Configuring a Style Layer’s Visibility

/**
 Whether this layer is displayed. A value of `NO` hides the layer.
 */
@property (nonatomic, assign, getter=isVisible) BOOL visible;

/**
 The maximum zoom level at which the layer gets parsed and appears.
 */
@property (nonatomic, assign) float maximumZoomLevel;

/**
 The minimum zoom level at which the layer gets parsed and appears.
 */
@property (nonatomic, assign) float minimumZoomLevel;

#pragma mark Layer Transitions

- (void)setTransition:(MGLTransition)transition forKey:(NSString *)key;

- (MGLTransition)transitionForKey:(NSString *)key;

/**
 Returns an array of strings that identify transition keys attached to the layer.
 */
- (NSArray *)transitionKeys;

@end

NS_ASSUME_NONNULL_END