summaryrefslogtreecommitdiff
path: root/platform/darwin/src/MGLSymbolStyleLayer.mm
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/src/MGLSymbolStyleLayer.mm')
-rw-r--r--platform/darwin/src/MGLSymbolStyleLayer.mm32
1 files changed, 32 insertions, 0 deletions
diff --git a/platform/darwin/src/MGLSymbolStyleLayer.mm b/platform/darwin/src/MGLSymbolStyleLayer.mm
index ad023a1a03..4c0fcfe539 100644
--- a/platform/darwin/src/MGLSymbolStyleLayer.mm
+++ b/platform/darwin/src/MGLSymbolStyleLayer.mm
@@ -50,6 +50,11 @@ namespace mbgl {
{ MGLSymbolPlacementLineCenter, "line-center" },
});
+ MBGL_DEFINE_ENUM(MGLSymbolZOrder, {
+ { MGLSymbolZOrderViewportY, "viewport-y" },
+ { MGLSymbolZOrderSource, "source" },
+ });
+
MBGL_DEFINE_ENUM(MGLTextAnchor, {
{ MGLTextAnchorCenter, "center" },
{ MGLTextAnchorLeft, "left" },
@@ -573,6 +578,23 @@ namespace mbgl {
return MGLStyleValueTransformer<float, NSNumber *>().toExpression(propertyValue);
}
+- (void)setSymbolZOrder:(NSExpression *)symbolZOrder {
+ MGLAssertStyleLayerIsValid();
+
+ auto mbglValue = MGLStyleValueTransformer<mbgl::style::SymbolZOrderType, NSValue *, mbgl::style::SymbolZOrderType, MGLSymbolZOrder>().toPropertyValue<mbgl::style::PropertyValue<mbgl::style::SymbolZOrderType>>(symbolZOrder, false);
+ self.rawLayer->setSymbolZOrder(mbglValue);
+}
+
+- (NSExpression *)symbolZOrder {
+ MGLAssertStyleLayerIsValid();
+
+ auto propertyValue = self.rawLayer->getSymbolZOrder();
+ if (propertyValue.isUndefined()) {
+ propertyValue = self.rawLayer->getDefaultSymbolZOrder();
+ }
+ return MGLStyleValueTransformer<mbgl::style::SymbolZOrderType, NSValue *, mbgl::style::SymbolZOrderType, MGLSymbolZOrder>().toExpression(propertyValue);
+}
+
- (void)setText:(NSExpression *)text {
MGLAssertStyleLayerIsValid();
@@ -1440,6 +1462,16 @@ namespace mbgl {
return symbolPlacement;
}
++ (NSValue *)valueWithMGLSymbolZOrder:(MGLSymbolZOrder)symbolZOrder {
+ return [NSValue value:&symbolZOrder withObjCType:@encode(MGLSymbolZOrder)];
+}
+
+- (MGLSymbolZOrder)MGLSymbolZOrderValue {
+ MGLSymbolZOrder symbolZOrder;
+ [self getValue:&symbolZOrder];
+ return symbolZOrder;
+}
+
+ (NSValue *)valueWithMGLTextAnchor:(MGLTextAnchor)textAnchor {
return [NSValue value:&textAnchor withObjCType:@encode(MGLTextAnchor)];
}