diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style')
3 files changed, 55 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Property.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Property.java index ba3619567d..1c87b9004b 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Property.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Property.java @@ -108,6 +108,27 @@ public final class Property { @Retention(RetentionPolicy.SOURCE) public @interface SYMBOL_PLACEMENT {} + // SYMBOL_Z_ORDER: Controls the order in which overlapping symbols in the same layer are rendered + + /** + * Symbols will be sorted by their y-position relative to the viewport. + */ + public static final String SYMBOL_Z_ORDER_VIEWPORT_Y = "viewport-y"; + /** + * Symbols will be rendered in the same order as the source data with no sorting applied. + */ + public static final String SYMBOL_Z_ORDER_SOURCE = "source"; + + /** + * Controls the order in which overlapping symbols in the same layer are rendered + */ + @StringDef({ + SYMBOL_Z_ORDER_VIEWPORT_Y, + SYMBOL_Z_ORDER_SOURCE, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface SYMBOL_Z_ORDER {} + // ICON_ROTATION_ALIGNMENT: In combination with `symbol-placement`, determines the rotation behavior of icons. /** diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java index c619d0141a..670548f12e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java @@ -1765,6 +1765,26 @@ public class PropertyFactory { } /** + * Controls the order in which overlapping symbols in the same layer are rendered + * + * @param value a String value + * @return property wrapper around String + */ + public static PropertyValue<String> symbolZOrder(@Property.SYMBOL_Z_ORDER String value) { + return new LayoutPropertyValue<>("symbol-z-order", value); + } + + /** + * Controls the order in which overlapping symbols in the same layer are rendered + * + * @param value a String value + * @return property wrapper around String + */ + public static PropertyValue<Expression> symbolZOrder(Expression value) { + return new LayoutPropertyValue<>("symbol-z-order", value); + } + + /** * If true, the icon will be visible even if it collides with other previously drawn symbols. * * @param value a Boolean value diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/SymbolLayer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/SymbolLayer.java index 3c4924bb6f..1d45f34bd3 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/SymbolLayer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/SymbolLayer.java @@ -171,6 +171,17 @@ public class SymbolLayer extends Layer { } /** + * Get the SymbolZOrder property + * + * @return property wrapper value around String + */ + @SuppressWarnings("unchecked") + public PropertyValue<String> getSymbolZOrder() { + checkThread(); + return (PropertyValue<String>) new PropertyValue("symbol-z-order", nativeGetSymbolZOrder()); + } + + /** * Get the IconAllowOverlap property * * @return property wrapper value around Boolean @@ -1005,6 +1016,9 @@ public class SymbolLayer extends Layer { private native Object nativeGetSymbolAvoidEdges(); @Keep + private native Object nativeGetSymbolZOrder(); + + @Keep private native Object nativeGetIconAllowOverlap(); @Keep |