diff options
77 files changed, 1266 insertions, 236 deletions
diff --git a/circle.yml b/circle.yml index 122d8f3b9a..c40b6c9c11 100644 --- a/circle.yml +++ b/circle.yml @@ -403,7 +403,7 @@ jobs: - deploy: name: Publish to Maven command: | - if [ "${CIRCLE_BRANCH}" == "master" ]; then make run-android-upload-archives ; fi + if [ "${CIRCLE_BRANCH}" == "release-boba" ]; then make run-android-upload-archives ; fi # ------------------------------------------------------------------------------ diff --git a/platform/android/MapboxGLAndroidSDK/build.gradle b/platform/android/MapboxGLAndroidSDK/build.gradle index e2e0881857..173b4fa7f8 100644 --- a/platform/android/MapboxGLAndroidSDK/build.gradle +++ b/platform/android/MapboxGLAndroidSDK/build.gradle @@ -7,11 +7,6 @@ dependencies { implementation dependenciesList.supportFragmentV4 implementation dependenciesList.timber implementation dependenciesList.okhttp3 - compileOnly(dependenciesList.lost) { - exclude group: 'com.google.guava' - exclude group: 'com.android.support' - } - testImplementation dependenciesList.lost testImplementation dependenciesList.junit testImplementation dependenciesList.mockito testImplementation dependenciesList.robolectric diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java index 853ea1c11b..536f5d02ab 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java @@ -139,8 +139,10 @@ public final class Mapbox { * Returns the location engine used by the SDK. * * @return the location engine configured + * @deprecated use location layer plugin from + * https://github.com/mapbox/mapbox-plugins-android/tree/master/plugins/locationlayer instead. */ - // TODO Do we need to expose this? + @Deprecated public static LocationEngine getLocationEngine() { return INSTANCE.locationEngine; } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index 990c56cb51..cf70300c6e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -293,7 +293,9 @@ public class MapView extends FrameLayout { private void initialiseDrawingSurface(MapboxMapOptions options) { if (options.getTextureMode()) { TextureView textureView = new TextureView(getContext()); - mapRenderer = new TextureViewMapRenderer(getContext(), textureView, options.getLocalIdeographFontFamily()) { + String localFontFamily = options.getLocalIdeographFontFamily(); + boolean translucentSurface = options.getTranslucentTextureSurface(); + mapRenderer = new TextureViewMapRenderer(getContext(), textureView, localFontFamily, translucentSurface) { @Override protected void onSurfaceCreated(GL10 gl, EGLConfig config) { MapView.this.onSurfaceCreated(); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index 2fd9a9010c..4f2c940ea3 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -621,6 +621,9 @@ public final class MapboxMap { /** * Moves the center of the screen to a latitude and longitude specified by a LatLng object. This centers the * camera on the LatLng object. + * <p> + * Note that at low zoom levels, setLatLng is constrained so that the entire viewport shows map data. + * </p> * * @param latLng Target location to change to */ @@ -641,6 +644,21 @@ public final class MapboxMap { } /** + * Moves the center and the zoom of the camera specified by a LatLng object and double zoom. + * <p> + * Note that at low zoom levels, setLatLng is constrained so that the entire viewport shows map data. + * </p> + * + * @param latLng Target location to change to + */ + public void setLatLngZoom(@NonNull LatLng latLng, + @FloatRange(from = MapboxConstants.MINIMUM_ZOOM, + to = MapboxConstants.MAXIMUM_ZOOM) double zoom) { + setZoom(zoom); + setLatLng(latLng); + } + + /** * Moves the camera viewpoint angle to a particular angle in degrees. * * @param tilt Tilt angle to change to @@ -1882,7 +1900,6 @@ public final class MapboxMap { * * @param listener The callback that's invoked when the map is scrolled. * To unset the callback, use null. - * * @deprecated Use {@link #addOnScrollListener(OnScrollListener)} instead. */ @Deprecated @@ -1895,7 +1912,6 @@ public final class MapboxMap { * * @param listener The callback that's invoked when the map is scrolled. * To unset the callback, use null. - * */ public void addOnScrollListener(@Nullable OnScrollListener listener) { onRegisterTouchListener.onAddScrollListener(listener); @@ -1906,7 +1922,6 @@ public final class MapboxMap { * * @param listener The callback that's invoked when the map is scrolled. * To unset the callback, use null. - * */ public void removeOnScrollListener(@Nullable OnScrollListener listener) { onRegisterTouchListener.onRemoveScrollListener(listener); @@ -1917,7 +1932,6 @@ public final class MapboxMap { * * @param listener The callback that's invoked when the map is flinged. * To unset the callback, use null. - * * @deprecated Use {@link #addOnFlingListener(OnFlingListener)} instead. */ @Deprecated @@ -1950,7 +1964,6 @@ public final class MapboxMap { * * @param listener The callback that's invoked when the user clicks on the map view. * To unset the callback, use null. - * * @deprecated Use {@link #addOnMapClickListener(OnMapClickListener)} instead. */ @Deprecated @@ -1983,7 +1996,6 @@ public final class MapboxMap { * * @param listener The callback that's invoked when the user long clicks on the map view. * To unset the callback, use null. - * * @deprecated Use {@link #addOnMapLongClickListener(OnMapLongClickListener)} instead. */ @Deprecated diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java index 46dba28b98..49188a5a98 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java @@ -87,6 +87,7 @@ public class MapboxMapOptions implements Parcelable { private String apiBaseUrl; private boolean textureMode; + private boolean translucentTextureSurface; private String style; @@ -156,6 +157,7 @@ public class MapboxMapOptions implements Parcelable { style = in.readString(); apiBaseUrl = in.readString(); textureMode = in.readByte() != 0; + translucentTextureSurface = in.readByte() != 0; prefetchesTiles = in.readByte() != 0; zMediaOverlay = in.readByte() != 0; localIdeographFontFamily = in.readString(); @@ -289,6 +291,8 @@ public class MapboxMapOptions implements Parcelable { typedArray.getFloat(R.styleable.mapbox_MapView_mapbox_myLocationAccuracyThreshold, 0)); mapboxMapOptions.textureMode( typedArray.getBoolean(R.styleable.mapbox_MapView_mapbox_renderTextureMode, false)); + mapboxMapOptions.translucentTextureSurface( + typedArray.getBoolean(R.styleable.mapbox_MapView_mapbox_renderTextureTranslucentSurface, false)); mapboxMapOptions.setPrefetchesTiles( typedArray.getBoolean(R.styleable.mapbox_MapView_mapbox_enableTilePrefetch, true)); mapboxMapOptions.renderSurfaceOnTop( @@ -711,6 +715,11 @@ public class MapboxMapOptions implements Parcelable { return this; } + public MapboxMapOptions translucentTextureSurface(boolean translucentTextureSurface) { + this.translucentTextureSurface = translucentTextureSurface; + return this; + } + /** * Enable tile pre-fetching. Loads tiles at a lower zoom-level to pre-render * a low resolution preview while more detailed tiles are loaded. @@ -1085,6 +1094,10 @@ public class MapboxMapOptions implements Parcelable { return textureMode; } + public boolean getTranslucentTextureSurface() { + return translucentTextureSurface; + } + /** * Returns the font-family for locally overriding generation of glyphs in the * ‘CJK Unified Ideographs’ and ‘Hangul Syllables’ ranges. @@ -1159,6 +1172,7 @@ public class MapboxMapOptions implements Parcelable { dest.writeString(style); dest.writeString(apiBaseUrl); dest.writeByte((byte) (textureMode ? 1 : 0)); + dest.writeByte((byte) (translucentTextureSurface ? 1 : 0)); dest.writeByte((byte) (prefetchesTiles ? 1 : 0)); dest.writeByte((byte) (zMediaOverlay ? 1 : 0)); dest.writeString(localIdeographFontFamily); @@ -1340,6 +1354,7 @@ public class MapboxMapOptions implements Parcelable { ? Float.floatToIntBits(myLocationAccuracyThreshold) : 0); result = 31 * result + (apiBaseUrl != null ? apiBaseUrl.hashCode() : 0); result = 31 * result + (textureMode ? 1 : 0); + result = 31 * result + (translucentTextureSurface ? 1 : 0); result = 31 * result + (style != null ? style.hashCode() : 0); result = 31 * result + (prefetchesTiles ? 1 : 0); result = 31 * result + (zMediaOverlay ? 1 : 0); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java index 785b045779..06802180f5 100755 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java @@ -758,20 +758,8 @@ final class NativeMapView { return; } - // Check/correct config - if (image.getConfig() != Bitmap.Config.ARGB_8888) { - image = image.copy(Bitmap.Config.ARGB_8888, false); - } - - // Get pixels - ByteBuffer buffer = ByteBuffer.allocate(image.getByteCount()); - image.copyPixelsToBuffer(buffer); - // Determine pixel ratio - float density = image.getDensity() == Bitmap.DENSITY_NONE ? Bitmap.DENSITY_NONE : image.getDensity(); - float pixelRatio = density / DisplayMetrics.DENSITY_DEFAULT; - - nativeAddImage(name, image.getWidth(), image.getHeight(), pixelRatio, buffer.array()); + nativeAddImage(name, image, image.getDensity() / DisplayMetrics.DENSITY_DEFAULT); } public void addImages(@NonNull HashMap<String, Bitmap> bitmapHashMap) { @@ -1032,8 +1020,7 @@ final class NativeMapView { private native void nativeRemoveSource(Source source, long sourcePtr); - private native void nativeAddImage(String name, int width, int height, float pixelRatio, - byte[] array); + private native void nativeAddImage(String name, Bitmap bitmap, float pixelRatio); private native void nativeAddImages(Image[] images); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/egl/EGLConfigChooser.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/egl/EGLConfigChooser.java index 247ffea906..46238ee789 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/egl/EGLConfigChooser.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/egl/EGLConfigChooser.java @@ -54,6 +54,17 @@ public class EGLConfigChooser implements GLSurfaceView.EGLConfigChooser { @SuppressWarnings("JavadocReference") private static final int EGL_OPENGL_ES2_BIT = 0x0004; + private boolean translucentSurface; + + public EGLConfigChooser() { + this(false); + } + + public EGLConfigChooser(boolean translucentSurface) { + super(); + this.translucentSurface = translucentSurface; + } + @Override public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) { int[] configAttribs = getConfigAttributes(); @@ -274,7 +285,7 @@ public class EGLConfigChooser implements GLSurfaceView.EGLConfigChooser { EGL_RED_SIZE, 5, EGL_GREEN_SIZE, 6, EGL_BLUE_SIZE, 5, - EGL_ALPHA_SIZE, 0, + EGL_ALPHA_SIZE, translucentSurface ? 8 : 0, EGL_DEPTH_SIZE, 16, EGL_STENCIL_SIZE, 8, (emulator ? EGL_NONE : EGL_CONFORMANT), EGL_OPENGL_ES2_BIT, diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java index dcc95217ff..ad25dea0d3 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java @@ -17,17 +17,22 @@ import javax.microedition.khronos.opengles.GL10; */ public class TextureViewMapRenderer extends MapRenderer { private TextureViewRenderThread renderThread; + private boolean translucentSurface; /** * Create a {@link MapRenderer} for the given {@link TextureView} * - * @param context the current Context - * @param textureView the TextureView + * @param context the current Context + * @param textureView the TextureView + * @param localIdeographFontFamily the local font family + * @param translucentSurface the translucency flag */ public TextureViewMapRenderer(@NonNull Context context, @NonNull TextureView textureView, - String localIdeographFontFamily) { + String localIdeographFontFamily, + boolean translucentSurface) { super(context, localIdeographFontFamily); + this.translucentSurface = translucentSurface; renderThread = new TextureViewRenderThread(textureView, this); renderThread.start(); } @@ -95,4 +100,8 @@ public class TextureViewMapRenderer extends MapRenderer { public void onDestroy() { renderThread.onDestroy(); } + + public boolean isTranslucentSurface() { + return translucentSurface; + } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewRenderThread.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewRenderThread.java index 1e76ffe3fb..4bba160993 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewRenderThread.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewRenderThread.java @@ -53,9 +53,10 @@ class TextureViewRenderThread extends Thread implements TextureView.SurfaceTextu */ @UiThread TextureViewRenderThread(@NonNull TextureView textureView, @NonNull TextureViewMapRenderer mapRenderer) { + textureView.setOpaque(!mapRenderer.isTranslucentSurface()); textureView.setSurfaceTextureListener(this); this.mapRenderer = mapRenderer; - this.eglHolder = new EGLHolder(new WeakReference<>(textureView)); + this.eglHolder = new EGLHolder(new WeakReference<>(textureView), mapRenderer.isTranslucentSurface()); } // SurfaceTextureListener methods @@ -324,6 +325,7 @@ class TextureViewRenderThread extends Thread implements TextureView.SurfaceTextu private static class EGLHolder { private static final int EGL_CONTEXT_CLIENT_VERSION = 0x3098; private final WeakReference<TextureView> textureViewWeakRef; + private boolean translucentSurface; private EGL10 egl; private EGLConfig eglConfig; @@ -331,8 +333,9 @@ class TextureViewRenderThread extends Thread implements TextureView.SurfaceTextu private EGLContext eglContext = EGL10.EGL_NO_CONTEXT; private EGLSurface eglSurface = EGL10.EGL_NO_SURFACE; - EGLHolder(WeakReference<TextureView> textureViewWeakRef) { + EGLHolder(WeakReference<TextureView> textureViewWeakRef, boolean translucentSurface) { this.textureViewWeakRef = textureViewWeakRef; + this.translucentSurface = translucentSurface; } void prepare() { @@ -357,7 +360,7 @@ class TextureViewRenderThread extends Thread implements TextureView.SurfaceTextu eglConfig = null; eglContext = EGL10.EGL_NO_CONTEXT; } else if (eglContext == EGL10.EGL_NO_CONTEXT) { - eglConfig = new EGLConfigChooser().chooseConfig(egl, eglDisplay); + eglConfig = new EGLConfigChooser(translucentSurface).chooseConfig(egl, eglDisplay); int[] attrib_list = {EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE}; eglContext = egl.eglCreateContext(eglDisplay, eglConfig, EGL10.EGL_NO_CONTEXT, attrib_list); } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java index 45f72af1c5..67ecf072e3 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java @@ -1,5 +1,6 @@ package com.mapbox.mapboxsdk.maps.widgets; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.drawable.Drawable; import android.support.annotation.NonNull; @@ -22,6 +23,7 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; * use {@link com.mapbox.mapboxsdk.maps.UiSettings}. * </p> */ +@SuppressLint("AppCompatCustomView") public final class CompassView extends AppCompatImageView implements Runnable { public static final long TIME_WAIT_IDLE = 500; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java index 7b841a2580..0f76f590c2 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java @@ -246,7 +246,7 @@ public class Expression<T> { } /** - * Create a literal object expression + * Create a literal object expression. * * @param object the object * @return the expression @@ -280,6 +280,7 @@ public class Expression<T> { * @param green green color expression * @param blue blue color expression * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-rgb">Style specification</a> */ public static Expression<Color> rgb(@NonNull Expression<Number> red, @NonNull Expression<Number> green, @NonNull Expression<Number> blue) { @@ -297,6 +298,7 @@ public class Expression<T> { * @param green green color value * @param blue blue color value * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-rgb">Style specification</a> */ public static Expression<Color> rgb(@NonNull Number red, @NonNull Number green, @NonNull Number blue) { return rgb(literal(red), literal(green), literal(blue)); @@ -314,6 +316,7 @@ public class Expression<T> { * @param blue blue color value * @param alpha alpha color value * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-rgba">Style specification</a> */ public static Expression<Color> rgba(@NonNull Expression<Number> red, @NonNull Expression<Number> green, @NonNull Expression<Number> blue, @NonNull Expression<Number> alpha) { @@ -332,6 +335,7 @@ public class Expression<T> { * @param blue blue color value * @param alpha alpha color value * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-rgba">Style specification</a> */ public static Expression<Color> rgba(@NonNull Number red, @NonNull Number green, @NonNull Number blue, @NonNull Number alpha) { return rgba(literal(red), literal(green), literal(blue), literal(alpha)); @@ -342,6 +346,7 @@ public class Expression<T> { * * @param expression an expression to convert to a color * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-to-rgba">Style specification</a> */ public static Expression<Array> toRgba(@NonNull Expression<Color> expression) { return new Expression<>("to-rgba", expression); @@ -358,6 +363,7 @@ public class Expression<T> { * @param compareOne the first expression * @param compareTwo the second expression * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-==">Style specification</a> */ public static Expression<Boolean> eq(@NonNull Expression compareOne, @NonNull Expression compareTwo) { return new Expression<>("==", compareOne, compareTwo); @@ -369,6 +375,7 @@ public class Expression<T> { * @param compareOne the first boolean * @param compareTwo the second boolean * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-==">Style specification</a> */ public static Expression<Boolean> eq(boolean compareOne, boolean compareTwo) { return eq(literal(compareOne), literal(compareTwo)); @@ -380,6 +387,7 @@ public class Expression<T> { * @param compareOne the first number * @param compareTwo the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-==">Style specification</a> */ public static Expression<Boolean> eq(@NonNull String compareOne, @NonNull String compareTwo) { return eq(literal(compareOne), literal(compareTwo)); @@ -391,6 +399,7 @@ public class Expression<T> { * @param compareOne the first number * @param compareTwo the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-==">Style specification</a> */ public static Expression<Boolean> eq(@NonNull Number compareOne, @NonNull Number compareTwo) { return eq(literal(compareOne), literal(compareTwo)); @@ -403,6 +412,7 @@ public class Expression<T> { * @param compareOne the first expression * @param compareTwo the second expression * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-!=">Style specification</a> */ public static Expression<Boolean> neq(@NonNull Expression compareOne, @NonNull Expression compareTwo) { return new Expression<>("!=", compareOne, compareTwo); @@ -414,6 +424,7 @@ public class Expression<T> { * @param compareOne the first boolean * @param compareTwo the second boolean * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-!=">Style specification</a> */ public static Expression<Boolean> neq(boolean compareOne, boolean compareTwo) { return new Expression<>("!=", literal(compareOne), literal(compareTwo)); @@ -425,6 +436,7 @@ public class Expression<T> { * @param compareOne the first string * @param compareTwo the second string * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-!=">Style specification</a> */ public static Expression<Boolean> neq(@NonNull String compareOne, @NonNull String compareTwo) { return new Expression<>("!=", literal(compareOne), literal(compareTwo)); @@ -436,6 +448,7 @@ public class Expression<T> { * @param compareOne the first number * @param compareTwo the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-!=">Style specification</a> */ public static Expression<Boolean> neq(@NonNull Number compareOne, @NonNull Number compareTwo) { return new Expression<>("!=", literal(compareOne), literal(compareTwo)); @@ -448,6 +461,7 @@ public class Expression<T> { * @param compareOne the first expression * @param compareTwo the second expression * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions->">Style specification</a> */ public static Expression<Boolean> gt(@NonNull Expression compareOne, @NonNull Expression compareTwo) { return new Expression<>(">", compareOne, compareTwo); @@ -459,6 +473,7 @@ public class Expression<T> { * @param compareOne the first number * @param compareTwo the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions->">Style specification</a> */ public static Expression<Boolean> gt(@NonNull Number compareOne, @NonNull Number compareTwo) { return new Expression<>(">", literal(compareOne), literal(compareTwo)); @@ -470,6 +485,7 @@ public class Expression<T> { * @param compareOne the first string * @param compareTwo the second string * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions->">Style specification</a> */ public static Expression<Boolean> gt(@NonNull String compareOne, @NonNull String compareTwo) { return new Expression<>(">", literal(compareOne), literal(compareTwo)); @@ -482,6 +498,7 @@ public class Expression<T> { * @param compareOne the first number * @param compareTwo the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-<">Style specification</a> */ public static Expression<Boolean> lt(@NonNull Expression compareOne, @NonNull Expression compareTwo) { return new Expression<>("<", compareOne, compareTwo); @@ -493,6 +510,7 @@ public class Expression<T> { * @param compareOne the first number * @param compareTwo the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-<">Style specification</a> */ public static Expression<Boolean> lt(@NonNull Number compareOne, @NonNull Number compareTwo) { return new Expression<>("<", literal(compareOne), literal(compareTwo)); @@ -504,6 +522,7 @@ public class Expression<T> { * @param compareOne the first string * @param compareTwo the second string * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-<">Style specification</a> */ public static Expression<Boolean> lt(@NonNull String compareOne, @NonNull String compareTwo) { return new Expression<>("<", literal(compareOne), literal(compareTwo)); @@ -516,6 +535,7 @@ public class Expression<T> { * @param compareOne the first expression * @param compareTwo the second expression * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions->=">Style specification</a> */ public static Expression<Boolean> gte(@NonNull Expression compareOne, @NonNull Expression compareTwo) { return new Expression<>(">=", compareOne, compareTwo); @@ -527,6 +547,7 @@ public class Expression<T> { * @param compareOne the first number * @param compareTwo the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions->=">Style specification</a> */ public static Expression<Boolean> gte(@NonNull Number compareOne, @NonNull Number compareTwo) { return new Expression<>(">=", literal(compareOne), literal(compareTwo)); @@ -538,6 +559,7 @@ public class Expression<T> { * @param compareOne the first string * @param compareTwo the second string * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions->=">Style specification</a> */ public static Expression<Boolean> gte(@NonNull String compareOne, @NonNull String compareTwo) { return new Expression<>(">=", literal(compareOne), literal(compareTwo)); @@ -550,6 +572,7 @@ public class Expression<T> { * @param compareOne the first expression * @param compareTwo the second expression * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-<=">Style specification</a> */ public static Expression<Boolean> lte(@NonNull Expression compareOne, @NonNull Expression compareTwo) { return new Expression<>("<=", compareOne, compareTwo); @@ -561,6 +584,7 @@ public class Expression<T> { * @param compareOne the first number * @param compareTwo the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-<=">Style specification</a> */ public static Expression<Boolean> lte(@NonNull Number compareOne, @NonNull Number compareTwo) { return new Expression<>("<=", literal(compareOne), literal(compareTwo)); @@ -572,6 +596,7 @@ public class Expression<T> { * @param compareOne the first string * @param compareTwo the second string * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-<=">Style specification</a> */ public static Expression<Boolean> lte(@NonNull String compareOne, @NonNull String compareTwo) { return new Expression<>("<=", literal(compareOne), literal(compareTwo)); @@ -587,6 +612,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-all">Style specification</a> */ @SafeVarargs public static Expression<Boolean> all(@NonNull Expression<Boolean>... input) { @@ -603,6 +629,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-any">Style specification</a> */ @SafeVarargs public static Expression<Boolean> any(@NonNull Expression<Boolean>... input) { @@ -614,6 +641,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-!">Style specification</a> */ public static Expression<Boolean> not(@NonNull Expression<Boolean> input) { return new Expression<>("!", input); @@ -624,6 +652,7 @@ public class Expression<T> { * * @param input boolean input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-!">Style specification</a> */ public static Expression<Boolean> not(boolean input) { return not(literal(input)); @@ -631,9 +660,14 @@ public class Expression<T> { /** * Selects the first output whose corresponding test condition evaluates to true. + * <p> + * For each case a condition and an output should be provided. + * The last parameter should provide the default output. + * </p> * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-case">Style specification</a> */ @SafeVarargs public static Expression switchCase(@NonNull @Size(min = 1) Expression... input) { @@ -647,6 +681,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-match">Style specification</a> */ public static Expression match(@NonNull @Size(min = 2) Expression... input) { return new Expression("match", input); @@ -659,6 +694,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-match">Style specification</a> */ public static Expression match(@NonNull Expression input, @NonNull Stop... stops) { Expression[] expressions = new Expression[stops.length * 2]; @@ -674,6 +710,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-coalesce">Style specification</a> */ public static Expression coalesce(@NonNull Expression... input) { return new Expression("coalesce", input); @@ -690,6 +727,7 @@ public class Expression<T> { * </p> * * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-properties">Style specification</a> */ public static Expression<Object> properties() { return new Expression<>("properties"); @@ -699,6 +737,7 @@ public class Expression<T> { * Gets the feature's geometry type: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon. * * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-geometry-types">Style specification</a> */ public static Expression<String> geometryType() { return new Expression<>("geometry-type"); @@ -708,6 +747,7 @@ public class Expression<T> { * Gets the feature's id, if it has one. * * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-id">Style specification</a> */ public static Expression<Number> id() { return new Expression<>("id"); @@ -723,6 +763,7 @@ public class Expression<T> { * Can only be used in the `heatmap-color` property. * * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-heatmap-density">Style specification</a> */ public static Expression<Number> heatmapDensity() { return new Expression<>("heatmap-density"); @@ -738,6 +779,7 @@ public class Expression<T> { * @param number the index expression * @param expression the array expression * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-at">Style specification</a> */ public static Expression<Object> at(@NonNull Expression<Number> number, @NonNull Expression expression) { return new Expression<>("at", number, expression); @@ -749,6 +791,7 @@ public class Expression<T> { * @param number the index expression * @param expression the array expression * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-at">Style specification</a> */ public static Expression<Object> at(@NonNull Number number, @NonNull Expression expression) { return at(literal(number), expression); @@ -761,6 +804,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-get">Style specification</a> */ public static Expression get(@NonNull Expression<String> input) { return new Expression<>("get", input); @@ -773,6 +817,7 @@ public class Expression<T> { * * @param input string input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-get">Style specification</a> */ public static Expression get(@NonNull String input) { return get(literal(input)); @@ -785,6 +830,7 @@ public class Expression<T> { * @param key a property value key * @param object an expression object * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-get">Style specification</a> */ public static Expression<Object> get(@NonNull Expression<String> key, @NonNull Expression<Object> object) { return new Expression<>("get", key, object); @@ -797,6 +843,7 @@ public class Expression<T> { * @param key a property value key * @param object an expression object * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-get">Style specification</a> */ public static Expression<Object> get(@NonNull String key, @NonNull Expression<Object> object) { return get(literal(key), object); @@ -807,6 +854,7 @@ public class Expression<T> { * * @param key the expression property value key * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-has">Style specification</a> */ public static Expression<Boolean> has(@NonNull Expression<String> key) { return new Expression<>("has", key); @@ -817,6 +865,7 @@ public class Expression<T> { * * @param key the property value key * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-has">Style specification</a> */ public static Expression<Boolean> has(@NonNull String key) { return has(literal(key)); @@ -828,6 +877,7 @@ public class Expression<T> { * @param key the expression property value key * @param object an expression object * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-has">Style specification</a> */ public static Expression<Boolean> has(@NonNull Expression<String> key, @NonNull Expression<Object> object) { return new Expression<>("has", key, object); @@ -839,6 +889,7 @@ public class Expression<T> { * @param key the property value key * @param object an expression object * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-has">Style specification</a> */ public static Expression<Boolean> has(@NonNull String key, @NonNull Expression<Object> object) { return has(literal(key), object); @@ -849,6 +900,7 @@ public class Expression<T> { * * @param expression an expression object or expression string * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-lenght">Style specification</a> */ public static Expression<Number> length(@NonNull Expression<?> expression) { return new Expression<>("length", expression); @@ -859,6 +911,7 @@ public class Expression<T> { * * @param input a string * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-lenght">Style specification</a> */ public static Expression<Number> length(@NonNull String input) { return length(literal(input)); @@ -872,6 +925,7 @@ public class Expression<T> { * Returns mathematical constant ln(2). * * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-ln2">Style specification</a> */ public static Expression<Number> ln2() { return new Expression<>("ln2"); @@ -881,6 +935,7 @@ public class Expression<T> { * Returns the mathematical constant pi. * * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-pi">Style specification</a> */ public static Expression<Number> pi() { return new Expression<>("pi"); @@ -890,6 +945,7 @@ public class Expression<T> { * Returns the mathematical constant e. * * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-e">Style specification</a> */ public static Expression<Number> e() { return new Expression<>("e"); @@ -900,6 +956,7 @@ public class Expression<T> { * * @param numbers the numbers to calculate the sum for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-+">Style specification</a> */ @SafeVarargs public static Expression<Number> sum(@Size(min = 2) Expression<Number>... numbers) { @@ -911,6 +968,7 @@ public class Expression<T> { * * @param numbers the numbers to calculate the sum for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-+">Style specification</a> */ @SuppressWarnings("unchecked") public static Expression<Number> sum(@Size(min = 2) Number... numbers) { @@ -926,6 +984,7 @@ public class Expression<T> { * * @param numbers the numbers to calculate the product for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-*">Style specification</a> */ @SafeVarargs public static Expression<Number> product(@Size(min = 2) Expression<Number>... numbers) { @@ -937,6 +996,7 @@ public class Expression<T> { * * @param numbers the numbers to calculate the product for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-*">Style specification</a> */ @SuppressWarnings("unchecked") public static Expression<Number> product(@Size(min = 2) Number... numbers) { @@ -952,6 +1012,7 @@ public class Expression<T> { * * @param number the number subtract from 0 * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions--">Style specification</a> */ public static Expression<Number> subtract(@NonNull Expression<Number> number) { return new Expression<>("-", number); @@ -962,6 +1023,7 @@ public class Expression<T> { * * @param number the number subtract from 0 * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions--">Style specification</a> */ public static Expression<Number> subtract(@NonNull Number number) { return subtract(literal(number)); @@ -973,6 +1035,7 @@ public class Expression<T> { * @param first the first number * @param second the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions--">Style specification</a> */ public static Expression<Number> subtract(@NonNull Expression<Number> first, @NonNull Expression<Number> second) { return new Expression<>("-", first, second); @@ -984,6 +1047,7 @@ public class Expression<T> { * @param first the first number * @param second the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions--">Style specification</a> */ public static Expression<Number> subtract(@NonNull Number first, @NonNull Number second) { return subtract(literal(first), literal(second)); @@ -995,6 +1059,7 @@ public class Expression<T> { * @param first the first number * @param second the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-/">Style specification</a> */ @SuppressWarnings("unchecked") public static Expression<Number> division(@NonNull Expression<Number> first, @NonNull Expression<Number> second) { @@ -1007,6 +1072,7 @@ public class Expression<T> { * @param first the first number * @param second the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-/">Style specification</a> */ @SuppressWarnings("unchecked") public static Expression<Number> division(@NonNull Number first, @NonNull Number second) { @@ -1019,6 +1085,7 @@ public class Expression<T> { * @param first the first number * @param second the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-%">Style specification</a> */ public static Expression<Number> mod(@NonNull Expression<Number> first, @NonNull Expression<Number> second) { return new Expression<>("%", first, second); @@ -1030,6 +1097,7 @@ public class Expression<T> { * @param first the first number * @param second the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-%">Style specification</a> */ public static Expression<Number> mod(@NonNull Number first, @NonNull Number second) { return mod(literal(first), literal(second)); @@ -1041,6 +1109,7 @@ public class Expression<T> { * @param first the first number * @param second the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-^">Style specification</a> */ public static Expression<Number> pow(@NonNull Expression<Number> first, @NonNull Expression<Number> second) { return new Expression<>("^", first, second); @@ -1052,6 +1121,7 @@ public class Expression<T> { * @param first the first number * @param second the second number * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-^">Style specification</a> */ public static Expression<Number> pow(@NonNull Number first, @NonNull Number second) { return pow(literal(first), literal(second)); @@ -1062,6 +1132,7 @@ public class Expression<T> { * * @param number the number to take the square root from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-sqrt">Style specification</a> */ public static Expression<Number> sqrt(@NonNull Expression<Number> number) { return new Expression<>("sqrt", number); @@ -1072,6 +1143,7 @@ public class Expression<T> { * * @param number the number to take the square root from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-sqrt">Style specification</a> */ public static Expression<Number> sqrt(@NonNull Number number) { return sqrt(literal(number)); @@ -1082,6 +1154,7 @@ public class Expression<T> { * * @param number the number to take base-ten logarithm from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-log10">Style specification</a> */ public static Expression<Number> log10(@NonNull Expression<Number> number) { return new Expression<>("log10", number); @@ -1092,6 +1165,7 @@ public class Expression<T> { * * @param number the number to take base-ten logarithm from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-log10">Style specification</a> */ public static Expression<Number> log10(@NonNull Number number) { return log10(literal(number)); @@ -1102,6 +1176,7 @@ public class Expression<T> { * * @param number the number to take natural logarithm from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-ln">Style specification</a> */ public static Expression<Number> ln(Expression<Number> number) { return new Expression<>("ln", number); @@ -1112,6 +1187,7 @@ public class Expression<T> { * * @param number the number to take natural logarithm from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-ln">Style specification</a> */ public static Expression<Number> ln(Number number) { return ln(literal(number)); @@ -1122,6 +1198,7 @@ public class Expression<T> { * * @param number the number to take base-two logarithm from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-log2">Style specification</a> */ public static Expression<Number> log2(@NonNull Expression<Number> number) { return new Expression<>("log2", number); @@ -1132,6 +1209,7 @@ public class Expression<T> { * * @param number the number to take base-two logarithm from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-log2">Style specification</a> */ public static Expression<Number> log2(@NonNull Number number) { return log2(literal(number)); @@ -1142,6 +1220,7 @@ public class Expression<T> { * * @param number the number to calculate the sine for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-sin">Style specification</a> */ public static Expression<Number> sin(@NonNull Expression<Number> number) { return new Expression<>("sin", number); @@ -1152,6 +1231,7 @@ public class Expression<T> { * * @param number the number to calculate the sine for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-sin">Style specification</a> */ public static Expression<Number> sin(@NonNull Number number) { return sin(literal(number)); @@ -1162,6 +1242,7 @@ public class Expression<T> { * * @param number the number to calculate the cosine for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-cos">Style specification</a> */ public static Expression<Number> cos(@NonNull Expression<Number> number) { return new Expression<>("cos", number); @@ -1172,6 +1253,7 @@ public class Expression<T> { * * @param number the number to calculate the cosine for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-cos">Style specification</a> */ public static Expression<Number> cos(@NonNull Number number) { return new Expression<>("cos", literal(number)); @@ -1182,6 +1264,7 @@ public class Expression<T> { * * @param number the number to calculate the tangent for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-tan">Style specification</a> */ public static Expression<Number> tan(@NonNull Expression<Number> number) { return new Expression<>("tan", number); @@ -1192,6 +1275,7 @@ public class Expression<T> { * * @param number the number to calculate the tangent for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-tan">Style specification</a> */ public static Expression<Number> tan(@NonNull Number number) { return new Expression<>("tan", literal(number)); @@ -1202,6 +1286,7 @@ public class Expression<T> { * * @param number the number to calculate the arcsine for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-asin">Style specification</a> */ public static Expression<Number> asin(@NonNull Expression<Number> number) { return new Expression<>("asin", number); @@ -1212,6 +1297,7 @@ public class Expression<T> { * * @param number the number to calculate the arcsine for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-asin">Style specification</a> */ public static Expression<Number> asin(@NonNull Number number) { return asin(literal(number)); @@ -1222,6 +1308,7 @@ public class Expression<T> { * * @param number the number to calculate the arccosine for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-acos">Style specification</a> */ public static Expression<Number> acos(@NonNull Expression<Number> number) { return new Expression<>("acos", number); @@ -1232,6 +1319,7 @@ public class Expression<T> { * * @param number the number to calculate the arccosine for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-acos">Style specification</a> */ public static Expression<Number> acos(@NonNull Number number) { return acos(literal(number)); @@ -1242,6 +1330,7 @@ public class Expression<T> { * * @param number the number to calculate the arctangent for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-atan">Style specification</a> */ public static Expression<Number> atan(@NonNull Expression<Number> number) { return new Expression("atan", number); @@ -1252,6 +1341,7 @@ public class Expression<T> { * * @param number the number to calculate the arctangent for * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-atan">Style specification</a> */ public static Expression<Number> atan(@NonNull Number number) { return atan(literal(number)); @@ -1262,6 +1352,7 @@ public class Expression<T> { * * @param numbers varargs of numbers to get the minimum from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-min">Style specification</a> */ @SafeVarargs public static Expression<Number> min(@Size(min = 1) Expression<Number>... numbers) { @@ -1273,6 +1364,7 @@ public class Expression<T> { * * @param numbers varargs of numbers to get the minimum from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-min">Style specification</a> */ @SuppressWarnings("unchecked") public static Expression<Number> min(@Size(min = 1) Number... numbers) { @@ -1288,6 +1380,7 @@ public class Expression<T> { * * @param numbers varargs of numbers to get the maximum from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-max">Style specification</a> */ @SafeVarargs public static Expression<Number> max(@Size(min = 1) Expression<Number>... numbers) { @@ -1299,6 +1392,7 @@ public class Expression<T> { * * @param numbers varargs of numbers to get the maximum from * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-max">Style specification</a> */ @SuppressWarnings("unchecked") public static Expression<Number> max(@Size(min = 1) Number... numbers) { @@ -1322,6 +1416,7 @@ public class Expression<T> { * * @param string the string to upcase * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-upcase">Style specification</a> */ public static Expression<String> upcase(@NonNull Expression<String> string) { return new Expression<>("upcase", string); @@ -1336,6 +1431,7 @@ public class Expression<T> { * * @param string string to upcase * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-upcase">Style specification</a> */ public static Expression<String> upcase(@NonNull String string) { return upcase(literal(string)); @@ -1350,6 +1446,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-downcase">Style specification</a> */ public static Expression<String> downcase(@NonNull Expression<String> input) { return new Expression<>("downcase", input); @@ -1364,6 +1461,7 @@ public class Expression<T> { * * @param input string to downcase * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-downcase">Style specification</a> */ public static Expression<String> downcase(@NonNull String input) { return downcase(literal(input)); @@ -1374,6 +1472,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-concat">Style specification</a> */ @SafeVarargs public static Expression<String> concat(@NonNull Expression<String>... input) { @@ -1385,6 +1484,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-concat">Style specification</a> */ @SuppressWarnings("unchecked") public static Expression<String> concat(@NonNull String... input) { @@ -1406,6 +1506,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-array">Style specification</a> */ public static Expression<Boolean> array(@NonNull Expression input) { return new Expression<>("array", input); @@ -1416,6 +1517,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-typeof">Style specification</a> */ public static Expression<String> typeOf(@NonNull Expression input) { return new Expression<>("typeof", input); @@ -1428,6 +1530,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-string">Style specification</a> */ public static Expression<Boolean> string(@NonNull Expression input) { return new Expression<>("string", input); @@ -1440,6 +1543,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-number">Style specification</a> */ public static Expression<Boolean> number(@NonNull Expression input) { return new Expression<>("number", input); @@ -1452,6 +1556,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-boolean">Style specification</a> */ public static Expression<Boolean> bool(@NonNull Expression input) { return new Expression<>("boolean", input); @@ -1462,6 +1567,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-object">Style specification</a> */ public static Expression<Boolean> object(@NonNull Expression input) { return new Expression<>("object", input); @@ -1479,6 +1585,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-to-string">Style specification</a> */ public static Expression<String> toString(@NonNull Expression input) { return new Expression<>("to-string", input); @@ -1494,6 +1601,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-to-number">Style specification</a> */ public static Expression<Number> toNumber(@NonNull Expression input) { return new Expression<>("to-number", input); @@ -1505,6 +1613,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-to-boolean">Style specification</a> */ public static Expression<Boolean> toBool(@NonNull Expression input) { return new Expression<>("to-boolean", input); @@ -1517,6 +1626,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-to-color">Style specification</a> */ public static Expression<Color> toColor(@NonNull Expression input) { return new Expression<>("to-color", input); @@ -1532,6 +1642,7 @@ public class Expression<T> { * * @param input expression input * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-let">Style specification</a> */ @SafeVarargs public static Expression let(@Size(min = 1) Expression... input) { @@ -1543,6 +1654,7 @@ public class Expression<T> { * * @param expression the variable naming expression that was bound with using let * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-var">Style specification</a> */ public static Expression<Object> var(@NonNull Expression<String> expression) { return new Expression<>("var", expression); @@ -1553,6 +1665,7 @@ public class Expression<T> { * * @param variableName the variable naming that was bound with using let * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-var">Style specification</a> */ public static Expression var(@NonNull String variableName) { return var(literal(variableName)); @@ -1570,6 +1683,7 @@ public class Expression<T> { * </p> * * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-zoom">Style specification</a> */ public static Expression<Number> zoom() { return new Expression<>("zoom"); @@ -1579,6 +1693,13 @@ public class Expression<T> { // Ramps, scales, curves // + /** + * Produces a stop value to be used as part of the step expression. + * + * @param stop the stop input + * @param value the stop output + * @return the stop + */ public static Stop stop(@NonNull Object stop, @NonNull Object value) { return new Stop(stop, value); } @@ -1593,6 +1714,7 @@ public class Expression<T> { * @param input the input value * @param stops pair of input and output values * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-step">Style specification</a> */ @SafeVarargs public static Expression step(@NonNull Number input, @NonNull Expression expression, Expression... stops) { @@ -1609,6 +1731,7 @@ public class Expression<T> { * @param expression the input expression * @param stops pair of input and output values * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-step">Style specification</a> */ @SafeVarargs public static Expression step(@NonNull Expression<Number> input, @NonNull Expression expression, Expression... stops) { @@ -1625,6 +1748,7 @@ public class Expression<T> { * @param input the input value * @param stops pair of input and output values * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-step">Style specification</a> */ @SafeVarargs public static Expression step(@NonNull Number input, @NonNull Expression expression, Stop... stops) { @@ -1646,6 +1770,7 @@ public class Expression<T> { * @param input the input value * @param stops pair of input and output values * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-step">Style specification</a> */ @SafeVarargs public static Expression step(@NonNull Expression<Number> input, @NonNull Expression expression, Stop... stops) { @@ -1667,6 +1792,7 @@ public class Expression<T> { * @param number the input expression * @param stops pair of input and output values * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-interpolate">Style specification</a> */ @SafeVarargs public static Expression interpolate(@NonNull Expression<Interpolator> interpolation, @@ -1684,6 +1810,7 @@ public class Expression<T> { * @param number the input expression * @param stops pair of input and output values * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-interpolate">Style specification</a> */ @SafeVarargs public static Expression interpolate(@NonNull Expression<Interpolator> interpolation, @@ -1700,6 +1827,7 @@ public class Expression<T> { * interpolates linearly between the pair of stops just less than and just greater than the input. * * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-interpolate">Style specification</a> */ public static Expression<Interpolator> linear() { return new Expression<>("linear"); @@ -1713,6 +1841,7 @@ public class Expression<T> { * * @param base value controlling the route at which the output increases * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-interpolate">Style specification</a> */ public static Expression<Interpolator> exponential(@NonNull Number base) { return exponential(literal(base)); @@ -1726,6 +1855,7 @@ public class Expression<T> { * * @param expression base number expression * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-interpolate">Style specification</a> */ public static Expression<Interpolator> exponential(@NonNull Expression<Number> expression) { return new Expression<>("exponential", expression); @@ -1739,6 +1869,7 @@ public class Expression<T> { * @param x2 x value of the second point of a cubic bezier, ranges from 0 to 1 * @param y2 y value fo the second point of a cubic bezier, ranges from 0 to 1 * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-interpolate">Style specification</a> */ public static Expression<Interpolator> cubicBezier(@NonNull Expression<Number> x1, @NonNull Expression<Number> y1, @NonNull Expression<Number> x2, @NonNull Expression<Number> y2) { @@ -1753,6 +1884,7 @@ public class Expression<T> { * @param x2 x value of the second point of a cubic bezier, ranges from 0 to 1 * @param y2 y value fo the second point of a cubic bezier, ranges from 0 to 1 * @return expression + * @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-interpolate">Style specification</a> */ public static Expression<Interpolator> cubicBezier(@NonNull Number x1, @NonNull Number y1, @NonNull Number x2, @NonNull Number y2) { @@ -1777,6 +1909,11 @@ public class Expression<T> { } + /** + * Returns a string representation of the object that matches the definition set in the style specification. + * + * @return a string representation of the object. + */ @Override public String toString() { StringBuilder builder = new StringBuilder(); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml b/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml index 412d8c5d9b..fda37dc2df 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml @@ -75,6 +75,7 @@ <!-- Use TextureView--> <public name="mapbox_renderTextureMode" type="attr" /> + <public name="mapbox_renderTextureTranslucentSurface" type="attr" /> <public name="mapbox_enableTilePrefetch" type="attr" /> <public name="mapbox_enableZMediaOverlay" type="attr" /> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values-ru/strings.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values-ru/strings.xml index 39880d56ba..a274125257 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values-ru/strings.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values-ru/strings.xml @@ -1,15 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <string name="mapbox_compassContentDescription">Компас. Активируйте, чтобы повернуть карту на Север.</string> - <string name="mapbox_attributionsIconContentDescription">Иконка атрибутов. Активируйте, чтобы показать диалог.</string> - <string name="mapbox_myLocationViewContentDescription">Местоположение. Отображает ваше местоположение на карте.</string> - <string name="mapbox_mapActionDescription">Отображает карту, созданную при помощи Mapbox. Протисните при помощи двух пальцев. Приблизьте, соединением пальцев. </string> - <string name="mapbox_attributionsDialogTitle">Mapbox Android SDK</string> + <string name="mapbox_compassContentDescription">Компас. Активируйте, чтобы развернуть карту на север.</string> + <string name="mapbox_attributionsIconContentDescription">Значок атрибутов. Активируйте, чтобы показать диалог.</string> + <string name="mapbox_myLocationViewContentDescription">Местоположение. Отображает вашу позицию на карте.</string> + <string name="mapbox_mapActionDescription">Отображает карту, созданную при помощи Mapbox. Пролистывайте двумя пальцами. Меняйте масштаб сведением пальцев.</string> + <string name="mapbox_attributionsDialogTitle">Mapbox Maps SDK для Android</string> <string name="mapbox_attributionTelemetryTitle">Сделать карты Mapbox лучше</string> - <string name="mapbox_attributionTelemetryMessage">Вы помогаете сделать карты OpenStreetMap и Mapbox лучше путем предоставления анонимных данных об использовании.</string> + <string name="mapbox_attributionTelemetryMessage">Вы помогаете улучшать карты OpenStreetMap и Mapbox, предоставляя обезличенные данные об использовании.</string> <string name="mapbox_attributionTelemetryPositive">Согласен</string> <string name="mapbox_attributionTelemetryNegative">Не согласен</string> <string name="mapbox_attributionTelemetryNeutral">Дополнительная информация</string> - <string name="mapbox_offline_error_region_definition_invalid">Запрошенный OfflineRegionDefinition не входит в допустимые границы: %s</string> - + <string name="mapbox_attributionErrorNoBrowser">На устройстве нет веб-браузера, нельзя показать веб-страницу.</string> + <string name="mapbox_offline_error_region_definition_invalid">Запрошенный OfflineRegionDefinition не входит в допустимые границы: %s</string> + <string name="mapbox_telemetrySettings">Настройки телеметрии</string> </resources> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml index 97adce8a4e..f0b80e46e1 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml @@ -117,6 +117,7 @@ <!-- Use TextureView--> <attr name="mapbox_renderTextureMode" format="boolean"/> + <attr name="mapbox_renderTextureTranslucentSurface" format="boolean"/> <attr name="mapbox_enableTilePrefetch" format="boolean"/> <attr name="mapbox_enableZMediaOverlay" format="boolean"/> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle index caff70e543..135b46e0fe 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle +++ b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle @@ -8,7 +8,7 @@ android { applicationId "com.mapbox.mapboxsdk.testapp" minSdkVersion androidVersions.minSdkVersion targetSdkVersion androidVersions.targetSdkVersion - versionCode 12 + versionCode 13 versionName "6.0.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index 5a0493e5bd..0b6d2a155d 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -760,6 +760,17 @@ android:value="@string/category_textureview"/> </activity> <activity + android:name=".activity.textureview.TextureViewTransparentBackgroundActivity" + android:description="@string/description_textureview_transparent" + android:label="@string/activity_textureview_transparent"> + <meta-data + android:name="@string/category" + android:value="@string/category_textureview"/> + <meta-data + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + </activity> + <activity android:name=".activity.textureview.TextureViewAnimationActivity" android:description="@string/description_textureview_animate" android:label="@string/activity_textureview_animate"> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/textureview/TextureViewResizeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/textureview/TextureViewResizeActivity.java index 788003d867..69bab45ce0 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/textureview/TextureViewResizeActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/textureview/TextureViewResizeActivity.java @@ -95,4 +95,4 @@ public class TextureViewResizeActivity extends AppCompatActivity { mapView.onLowMemory(); } -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/textureview/TextureViewTransparentBackgroundActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/textureview/TextureViewTransparentBackgroundActivity.java new file mode 100644 index 0000000000..15da018b0e --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/textureview/TextureViewTransparentBackgroundActivity.java @@ -0,0 +1,94 @@ +package com.mapbox.mapboxsdk.testapp.activity.textureview; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.widget.ImageView; + +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.testapp.R; +import com.mapbox.mapboxsdk.testapp.utils.ResourceUtils; + +import java.io.IOException; + +import timber.log.Timber; + +/** + * Example showcasing how to create a TextureView with a transparent background. + */ +public class TextureViewTransparentBackgroundActivity extends AppCompatActivity { + + private MapView mapView; + private MapboxMap mapboxMap; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_textureview_transparent); + setupBackground(); + setupMapView(savedInstanceState); + } + + private void setupBackground() { + ImageView imageView = (ImageView) findViewById(R.id.imageView); + imageView.setImageResource(R.drawable.water); + imageView.setScaleType(ImageView.ScaleType.FIT_XY); + } + + private void setupMapView(Bundle savedInstanceState) { + mapView = (MapView) findViewById(R.id.mapView); + mapView.onCreate(savedInstanceState); + mapView.getMapAsync(map -> { + mapboxMap = map; + + try { + map.setStyleJson(ResourceUtils.readRawResource(getApplicationContext(), R.raw.no_bg_style)); + } catch (IOException exception) { + Timber.e(exception); + } + }); + } + + @Override + protected void onStart() { + super.onStart(); + mapView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapView.onStop(); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + mapView.onSaveInstanceState(outState); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapView.onDestroy(); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapView.onLowMemory(); + } + +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/water.jpg b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/water.jpg Binary files differnew file mode 100644 index 0000000000..71b758b490 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/water.jpg diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_textureview_resize.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_textureview_resize.xml index 2baa3d39dd..b00076e779 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_textureview_resize.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_textureview_resize.xml @@ -7,7 +7,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - + <com.mapbox.mapboxsdk.maps.MapView android:id="@+id/mapView" android:layout_width="match_parent" diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_textureview_transparent.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_textureview_transparent.xml new file mode 100644 index 0000000000..3b9ee71359 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_textureview_transparent.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<android.support.design.widget.CoordinatorLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/coordinator_layout" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <ImageView + android:id="@+id/imageView" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:contentDescription="@null"/> + + <com.mapbox.mapboxsdk.maps.MapView + android:id="@+id/mapView" + android:layout_width="match_parent" + android:layout_height="match_parent" + app:mapbox_cameraTargetLat="48.507879" + app:mapbox_cameraTargetLng="8.363795" + app:mapbox_cameraZoom="2" + app:mapbox_renderTextureMode="true" + app:mapbox_renderTextureTranslucentSurface="true" + app:mapbox_styleUrl="mapbox://styles/agerace-globant/cja02de7193b02suvy4gpbt2c"/> + +</android.support.design.widget.CoordinatorLayout> + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/raw/no_bg_style.json b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/raw/no_bg_style.json new file mode 100644 index 0000000000..964eefc319 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/raw/no_bg_style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "name": "Land", + "metadata": { + "mapbox:autocomposite": true, + }, + "sources": { + "composite": { + "url": "mapbox://mapbox.mapbox-terrain-v2", + "type": "vector" + } + }, + "sprite": "mapbox://sprites/mapbox/mapbox-terrain-v2", + "glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf", + "layers": [ + { + "layout": { + "visibility": "visible" + }, + "type": "fill", + "source": "composite", + "id": "admin", + "paint": { + "fill-color": "hsl(359, 100%, 50%)", + "fill-opacity": 1 + }, + "source-layer": "landcover" + }, + { + "layout": { + "visibility": "visible" + }, + "type": "fill", + "source": "composite", + "id": "layer-0", + "paint": { + "fill-opacity": 1, + "fill-color": "hsl(359, 100%, 50%)" + }, + "source-layer": "Layer_0" + } + ] +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml index d17ec20546..fc04851293 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml @@ -67,6 +67,7 @@ <string name="description_textureview_debug">Use TextureView to render the map</string> <string name="description_textureview_resize">Resize a map rendered on a TextureView</string> <string name="description_textureview_animate">Animate a map rendered on a TextureView</string> + <string name="description_textureview_transparent">Enable a transparent surface on TextureView</string> <string name="description_grid_source">Example Custom Geometry Source</string> <string name="description_local_glyph">Suzhou using Droid Sans for Chinese glyphs</string> <string name="description_hillshade">Example raster-dem source and hillshade layer</string> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml index 0323d7c428..e2bbf5af01 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml @@ -67,6 +67,7 @@ <string name="activity_textureview_debug">TextureView debug</string> <string name="activity_textureview_resize">TextureView resize</string> <string name="activity_textureview_animate">TextureView animation</string> + <string name="activity_textureview_transparent">TextureView transparent background</string> <string name="activity_grid_source">Grid Source</string> <string name="activity_local_glyph">Local CJK glyph generation</string> <string name="activity_hillshade">Hillshade</string> diff --git a/platform/android/scripts/exclude-activity-gen.json b/platform/android/scripts/exclude-activity-gen.json index c1a6b5bb48..1d61d93943 100644 --- a/platform/android/scripts/exclude-activity-gen.json +++ b/platform/android/scripts/exclude-activity-gen.json @@ -32,5 +32,7 @@ "MaxMinZoomActivity", "ScrollByActivity", "ZoomFunctionSymbolLayerActivity", - "SymbolGeneratorActivity" -]
\ No newline at end of file + "SymbolGeneratorActivity", + "TextureViewTransparentBackgroundActivity", + "SimpleMapActivity" +] diff --git a/platform/android/src/bitmap.cpp b/platform/android/src/bitmap.cpp index 50088116f4..46e7253050 100644 --- a/platform/android/src/bitmap.cpp +++ b/platform/android/src/bitmap.cpp @@ -110,8 +110,7 @@ PremultipliedImage Bitmap::GetImage(jni::JNIEnv& env, jni::Object<Bitmap> bitmap } if (info.format != ANDROID_BITMAP_FORMAT_RGBA_8888) { - // TODO: convert - throw std::runtime_error("bitmap decoding: bitmap format invalid"); + bitmap = Bitmap::Copy(env, bitmap); } const PixelGuard guard(env, bitmap); @@ -128,5 +127,12 @@ PremultipliedImage Bitmap::GetImage(jni::JNIEnv& env, jni::Object<Bitmap> bitmap return { Size{ info.width, info.height }, std::move(pixels) }; } +jni::Object<Bitmap> Bitmap::Copy(jni::JNIEnv& env, jni::Object<Bitmap> bitmap) { + using Signature = jni::Object<Bitmap>(jni::Object<Config>, jni::jboolean); + auto static method = _class.GetMethod<Signature>(env, "copy"); + auto config = Bitmap::Config::Create(env, Bitmap::Config::Value::ARGB_8888); + return bitmap.Call(env, method, config, (jni::jboolean) false); +} + } // namespace android } // namespace mbgl diff --git a/platform/android/src/bitmap.hpp b/platform/android/src/bitmap.hpp index f64f42ae87..c4e41db1e0 100644 --- a/platform/android/src/bitmap.hpp +++ b/platform/android/src/bitmap.hpp @@ -43,6 +43,7 @@ public: static PremultipliedImage GetImage(jni::JNIEnv&, jni::Object<Bitmap>); static jni::Object<Bitmap> CreateBitmap(jni::JNIEnv&, const PremultipliedImage&); + static jni::Object<Bitmap> Copy(jni::JNIEnv&, jni::Object<Bitmap>); private: static jni::Class<Bitmap> _class; diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index 67fc132204..3bd46631a0 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -893,16 +893,9 @@ void NativeMapView::removeSource(JNIEnv& env, jni::Object<Source> obj, jlong sou source->removeFromMap(env, obj, *map); } -void NativeMapView::addImage(JNIEnv& env, jni::String name, jni::jint w, jni::jint h, jni::jfloat scale, jni::Array<jbyte> pixels) { - jni::NullCheck(env, &pixels); - std::size_t size = pixels.Length(env); - - mbgl::PremultipliedImage premultipliedImage({ static_cast<uint32_t>(w), static_cast<uint32_t>(h) }); - if (premultipliedImage.bytes() != uint32_t(size)) { - throw mbgl::util::SpriteImageException("Sprite image pixel count mismatch"); - } - - jni::GetArrayRegion(env, *pixels, 0, size, reinterpret_cast<jbyte*>(premultipliedImage.data.get())); +void NativeMapView::addImage(JNIEnv& env, jni::String name, jni::Object<Bitmap> bitmap, jni::jfloat scale) { + jni::NullCheck(env, &bitmap); + mbgl::PremultipliedImage premultipliedImage = Bitmap::GetImage(env, bitmap); map->getStyle().addImage(std::make_unique<mbgl::style::Image>( jni::Make<std::string>(env, name), diff --git a/platform/android/src/native_map_view.hpp b/platform/android/src/native_map_view.hpp index 507d77ac5f..9ed333d2d5 100755 --- a/platform/android/src/native_map_view.hpp +++ b/platform/android/src/native_map_view.hpp @@ -236,7 +236,7 @@ public: void removeSource(JNIEnv&, jni::Object<Source>, jlong nativePtr); - void addImage(JNIEnv&, jni::String, jni::jint, jni::jint, jni::jfloat, jni::Array<jbyte>); + void addImage(JNIEnv&, jni::String, jni::Object<Bitmap> bitmap, jni::jfloat); void addImages(JNIEnv&, jni::Array<jni::Object<mbgl::android::Image>>); diff --git a/platform/darwin/docs/guides/For Style Authors.md.ejs b/platform/darwin/docs/guides/For Style Authors.md.ejs index c2eaf337e0..37af150ac5 100644 --- a/platform/darwin/docs/guides/For Style Authors.md.ejs +++ b/platform/darwin/docs/guides/For Style Authors.md.ejs @@ -361,7 +361,7 @@ In style specification | Method, function, or predicate type | Format string syn <% if (macOS) { -%> `rgb` | `+[NSColor colorWithCalibratedRed:green:blue:alpha:]` | `rgba` | `+[NSColor colorWithCalibratedRed:green:blue:alpha:]` | -<% } else { %> +<% } else { -%> `rgb` | `+[UIColor colorWithRed:green:blue:alpha:]` | `rgba` | `+[UIColor colorWithRed:green:blue:alpha:]` | <% } -%> diff --git a/platform/darwin/resources/da.lproj/Foundation.strings b/platform/darwin/resources/da.lproj/Foundation.strings new file mode 100644 index 0000000000..d8d18f453c --- /dev/null +++ b/platform/darwin/resources/da.lproj/Foundation.strings @@ -0,0 +1,297 @@ +/* Clock position format, long: {hours} o’clock */ +"CLOCK_FMT_LONG" = "%@ klokken"; + +/* Clock position format, medium: {hours} o’clock */ +"CLOCK_FMT_MEDIUM" = "%@ klokken"; + +/* Clock position format, short: {hours}:00 */ +"CLOCK_FMT_SHORT" = "%@:00"; + +/* East, long */ +"COMPASS_E_LONG" = "øst"; + +/* East, short */ +"COMPASS_E_SHORT" = "Ø"; + +/* East by north, long */ +"COMPASS_EbN_LONG" = "øst via nord"; + +/* East by north, short */ +"COMPASS_EbN_SHORT" = "ØvN"; + +/* East by south, long */ +"COMPASS_EbS_LONG" = "øst via syd"; + +/* East by south, short */ +"COMPASS_EbS_SHORT" = "ØvS"; + +/* East-northeast, long */ +"COMPASS_ENE_LONG" = "øst-nordøst"; + +/* East-northeast, short */ +"COMPASS_ENE_SHORT" = "ØNØ"; + +/* East-southeast, long */ +"COMPASS_ESE_LONG" = "øst-sydøst"; + +/* East-southeast, short */ +"COMPASS_ESE_SHORT" = "ØSØ"; + +/* North, long */ +"COMPASS_N_LONG" = "nord"; + +/* North, short */ +"COMPASS_N_SHORT" = "N"; + +/* North by east, long */ +"COMPASS_NbE_LONG" = "nord via øst"; + +/* North by east, short */ +"COMPASS_NbE_SHORT" = "NvØ"; + +/* North by west, long */ +"COMPASS_NbW_LONG" = "nord via vest"; + +/* North by west, short */ +"COMPASS_NbW_SHORT" = "NvV"; + +/* Northeast, long */ +"COMPASS_NE_LONG" = "nordøst"; + +/* Northeast, short */ +"COMPASS_NE_SHORT" = "NØ"; + +/* Northeast by east, long */ +"COMPASS_NEbE_LONG" = "nordøst via øst"; + +/* Northeast by east, short */ +"COMPASS_NEbE_SHORT" = "NØvØ"; + +/* Northeast by north, long */ +"COMPASS_NEbN_LONG" = "nordøst via nord"; + +/* Northeast by north, short */ +"COMPASS_NEbN_SHORT" = "NØvN"; + +/* North-northeast, long */ +"COMPASS_NNE_LONG" = "nord-nordøst"; + +/* North-northeast, short */ +"COMPASS_NNE_SHORT" = "NNØ"; + +/* North-northwest, long */ +"COMPASS_NNW_LONG" = "nord-nordvest"; + +/* North-northwest, short */ +"COMPASS_NNW_SHORT" = "NNV"; + +/* Northwest, long */ +"COMPASS_NW_LONG" = "nordvest"; + +/* Northwest, short */ +"COMPASS_NW_SHORT" = "NV"; + +/* Northwest by north, long */ +"COMPASS_NWbN_LONG" = "nordvest via nord"; + +/* Northwest by north, short */ +"COMPASS_NWbN_SHORT" = "NVvN"; + +/* Northwest by west, long */ +"COMPASS_NWbW_LONG" = "nordvest via vest"; + +/* Northwest by west, short */ +"COMPASS_NWbW_SHORT" = "NVvW"; + +/* South, long */ +"COMPASS_S_LONG" = "syd"; + +/* South, short */ +"COMPASS_S_SHORT" = "S"; + +/* South by east, long */ +"COMPASS_SbE_LONG" = "syd via øst"; + +/* South by east, short */ +"COMPASS_SbE_SHORT" = "SvØ"; + +/* South by west, long */ +"COMPASS_SbW_LONG" = "syd via vest"; + +/* South by west, short */ +"COMPASS_SbW_SHORT" = "SvV"; + +/* Southeast, long */ +"COMPASS_SE_LONG" = "sydøst"; + +/* Southeast, short */ +"COMPASS_SE_SHORT" = "SØ"; + +/* Southeast by east, long */ +"COMPASS_SEbE_LONG" = "sydøst via øst"; + +/* Southeast by east, short */ +"COMPASS_SEbE_SHORT" = "SØvØ"; + +/* Southeast by south, long */ +"COMPASS_SEbS_LONG" = "sydøst via syd"; + +/* Southeast by south, short */ +"COMPASS_SEbS_SHORT" = "SØvS"; + +/* South-southeast, long */ +"COMPASS_SSE_LONG" = "syd-sydøst"; + +/* South-southeast, short */ +"COMPASS_SSE_SHORT" = "SSØ"; + +/* South-southwest, long */ +"COMPASS_SSW_LONG" = "syd-sydvest"; + +/* South-southwest, short */ +"COMPASS_SSW_SHORT" = "SSV"; + +/* Southwest, long */ +"COMPASS_SW_LONG" = "sydvest"; + +/* Southwest, short */ +"COMPASS_SW_SHORT" = "SV"; + +/* Southwest by south, long */ +"COMPASS_SWbS_LONG" = "sydvest via syd"; + +/* Southwest by south, short */ +"COMPASS_SWbS_SHORT" = "SVvS"; + +/* Southwest by west, long */ +"COMPASS_SWbW_LONG" = "sydvest via vest"; + +/* Southwest by west, short */ +"COMPASS_SWbW_SHORT" = "SVvV"; + +/* West, long */ +"COMPASS_W_LONG" = "vest"; + +/* West, short */ +"COMPASS_W_SHORT" = "V"; + +/* West by north, long */ +"COMPASS_WbN_LONG" = "vest via nord"; + +/* West by north, short */ +"COMPASS_WbN_SHORT" = "VvN"; + +/* West by south, long */ +"COMPASS_WbS_LONG" = "vest via syd"; + +/* West by south, short */ +"COMPASS_WbS_SHORT" = "VvS"; + +/* West-northwest, long */ +"COMPASS_WNW_LONG" = "vest-nordvest"; + +/* West-northwest, short */ +"COMPASS_WNW_SHORT" = "VNV"; + +/* West-southwest, long */ +"COMPASS_WSW_LONG" = "vest-sydvest"; + +/* West-southwest, short */ +"COMPASS_WSW_SHORT" = "VSV"; + +/* Degrees format, long */ +"COORD_DEG_LONG" = "%d grad(er)"; + +/* Degrees format, medium: {degrees} */ +"COORD_DEG_MEDIUM" = "%d°"; + +/* Degrees format, short: {degrees} */ +"COORD_DEG_SHORT" = "%d°"; + +/* Coordinate format, long: {degrees}{minutes} */ +"COORD_DM_LONG" = "%1$@ og %2$@"; + +/* Coordinate format, medium: {degrees}{minutes} */ +"COORD_DM_MEDIUM" = "%1$@%2$@"; + +/* Coordinate format, short: {degrees}{minutes} */ +"COORD_DM_SHORT" = "%1$@%2$@"; + +/* Coordinate format, long: {degrees}{minutes}{seconds} */ +"COORD_DMS_LONG" = "%1$@, %2$@, og %3$@"; + +/* Coordinate format, medium: {degrees}{minutes}{seconds} */ +"COORD_DMS_MEDIUM" = "%1$@%2$@%3$@"; + +/* Coordinate format, short: {degrees}{minutes}{seconds} */ +"COORD_DMS_SHORT" = "%1$@%2$@%3$@"; + +/* East longitude format, long: {longitude} */ +"COORD_E_LONG" = "%@ øst"; + +/* East longitude format, medium: {longitude} */ +"COORD_E_MEDIUM" = "%@ øst"; + +/* East longitude format, short: {longitude} */ +"COORD_E_SHORT" = "%@Ø"; + +/* Coordinate pair format, long: {latitude}, {longitude} */ +"COORD_FMT_LONG" = "%1$@ via %2$@"; + +/* Coordinate pair format, medium: {latitude}, {longitude} */ +"COORD_FMT_MEDIUM" = "%1$@, %2$@"; + +/* Coordinate pair format, short: {latitude}, {longitude} */ +"COORD_FMT_SHORT" = "%1$@, %2$@"; + +/* Minutes format, long */ +"COORD_MIN_LONG" = "%d minut(ter)"; + +/* Minutes format, medium: {minutes} */ +"COORD_MIN_MEDIUM" = "%d′"; + +/* Minutes format, short: {minutes} */ +"COORD_MIN_SHORT" = "%d′"; + +/* North latitude format, long: {latitude} */ +"COORD_N_LONG" = "%@ nord"; + +/* North latitude format, medium: {latitude} */ +"COORD_N_MEDIUM" = "%@ nord"; + +/* North latitude format, short: {latitude} */ +"COORD_N_SHORT" = "%@N"; + +/* South latitude format, long: {latitude} */ +"COORD_S_LONG" = "%@ syd"; + +/* South latitude format, medium: {latitude} */ +"COORD_S_MEDIUM" = "%@ syd"; + +/* South latitude format, short: {latitude} */ +"COORD_S_SHORT" = "%@S"; + +/* Seconds format, long */ +"COORD_SEC_LONG" = "%d sekunde(r)"; + +/* Seconds format, medium: {seconds} */ +"COORD_SEC_MEDIUM" = "%d″"; + +/* Seconds format, short: {seconds} */ +"COORD_SEC_SHORT" = "%d″"; + +/* West longitude format, long: {longitude} */ +"COORD_W_LONG" = "%@ vest"; + +/* West longitude format, medium: {longitude} */ +"COORD_W_MEDIUM" = "%@ vest"; + +/* West longitude format, short: {longitude} */ +"COORD_W_SHORT" = "%@V"; + +/* OpenStreetMap full name attribution */ +"OSM_FULL_NAME" = "OpenStreetMap"; + +/* OpenStreetMap short name attribution */ +"OSM_SHORT_NAME" = "OSM"; + diff --git a/platform/darwin/resources/da.lproj/Foundation.stringsdict b/platform/darwin/resources/da.lproj/Foundation.stringsdict new file mode 100644 index 0000000000..17983b8aa8 --- /dev/null +++ b/platform/darwin/resources/da.lproj/Foundation.stringsdict @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>COORD_DEG_LONG</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@degrees@</string> + <key>degrees</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>one</key> + <string>%d grad</string> + <key>other</key> + <string>%d grader</string> + </dict> + </dict> + <key>COORD_MIN_LONG</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@minutes@</string> + <key>minutes</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>one</key> + <string>%d minut</string> + <key>other</key> + <string>%d minutter</string> + </dict> + </dict> + <key>COORD_SEC_LONG</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@seconds@</string> + <key>seconds</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>one</key> + <string>%d sekund</string> + <key>other</key> + <string>%d sekunder</string> + </dict> + </dict> +</dict> +</plist> diff --git a/platform/darwin/scripts/generate-style-code.js b/platform/darwin/scripts/generate-style-code.js index 53a668d10b..8e82a8eb63 100755 --- a/platform/darwin/scripts/generate-style-code.js +++ b/platform/darwin/scripts/generate-style-code.js @@ -300,7 +300,17 @@ global.propertyDoc = function (propertyName, property, layerType, kind) { doc += `\n\nThis attribute corresponds to the <a href="https://www.mapbox.com/mapbox-gl-style-spec/#${anchor}"><code>${property.original}</code></a> layout property in the Mapbox Style Specification.`; } doc += '\n\nYou can set this property to an expression containing any of the following:\n\n'; - doc += `* Constant ${describeType(property)} values\n`; + doc += `* Constant ${describeType(property)} values`; + if ('minimum' in property) { + if ('maximum' in property) { + doc += ` between ${formatNumber(property.minimum)} and ${formatNumber(property.maximum)} inclusive`; + } else { + doc += ` no less than ${formatNumber(property.minimum)}`; + } + } else if ('maximum' in property) { + doc += ` no greater than ${formatNumber(property.maximum)}`; + } + doc += '\n'; if (property.type === 'enum') { doc += '* Any of the following constant string values:\n'; doc += Object.keys(property.values).map(value => ' * `' + value + '`: ' + property.values[value].doc).join('\n') + '\n'; @@ -393,7 +403,7 @@ global.describeValue = function (value, property, layerType) { case 'boolean': return value ? '`YES`' : '`NO`'; case 'number': - return 'the float `' + value + '`'; + return 'the float ' + formatNumber(value); case 'string': if (value === '') { return 'the empty string'; @@ -428,7 +438,7 @@ global.describeValue = function (value, property, layerType) { if (color.r === 1 && color.g === 1 && color.b === 1 && color.a === 1) { return '`UIColor.whiteColor`'; } - return 'a `UIColor`' + ` object whose RGB value is ${color.r}, ${color.g}, ${color.b} and whose alpha value is ${color.a}`; + return 'a `UIColor`' + ` object whose RGB value is ${formatNumber(color.r)}, ${formatNumber(color.g)}, ${formatNumber(color.b)} and whose alpha value is ${formatNumber(color.a)}`; case 'array': let units = property.units || ''; if (units) { @@ -439,12 +449,12 @@ global.describeValue = function (value, property, layerType) { if (value[0] === 0 && value[1] === 0 && value[2] === 0 && value[3] === 0) { return 'an `NSValue` object containing `UIEdgeInsetsZero`'; } - return 'an `NSValue` object containing a `UIEdgeInsets` struct set to' + ` ${value[0]}${units} on the top, ${value[3]}${units} on the left, ${value[2]}${units} on the bottom, and ${value[1]}${units} on the right`; + return 'an `NSValue` object containing a `UIEdgeInsets` struct set to' + ` ${formatNumber(value[0])}${units} on the top, ${formatNumber(value[3])}${units} on the left, ${formatNumber(value[2])}${units} on the bottom, and ${formatNumber(value[1])}${units} on the right`; case 'offset': case 'translate': - return 'an `NSValue` object containing a `CGVector` struct set to' + ` ${value[0]}${units} rightward and ${value[1]}${units} downward`; + return 'an `NSValue` object containing a `CGVector` struct set to' + ` ${formatNumber(value[0])}${units} rightward and ${formatNumber(value[1])}${units} downward`; case 'position': - return 'an `MGLSphericalPosition` struct set to' + ` ${value[0]} radial, ${value[1]} azimuthal and ${value[2]} polar`; + return 'an `MGLSphericalPosition` struct set to' + ` ${formatNumber(value[0])} radial, ${formatNumber(value[1])} azimuthal and ${formatNumber(value[2])} polar`; default: return 'the array `' + value.join('`, `') + '`'; } @@ -453,6 +463,10 @@ global.describeValue = function (value, property, layerType) { } }; +global.formatNumber = function (num) { + return num.toLocaleString().replace('-', '\u2212'); +} + global.propertyDefault = function (property, layerType) { if (property.name === 'heatmap-color') { return 'an expression that evaluates to a rainbow color scale from blue to red'; diff --git a/platform/darwin/src/MGLBackgroundStyleLayer.h b/platform/darwin/src/MGLBackgroundStyleLayer.h index 9d2673c859..4bb8a36e04 100644 --- a/platform/darwin/src/MGLBackgroundStyleLayer.h +++ b/platform/darwin/src/MGLBackgroundStyleLayer.h @@ -71,11 +71,11 @@ which it is added. The opacity at which the background will be drawn. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables diff --git a/platform/darwin/src/MGLCircleStyleLayer.h b/platform/darwin/src/MGLCircleStyleLayer.h index caa6d2f6cb..2523637179 100644 --- a/platform/darwin/src/MGLCircleStyleLayer.h +++ b/platform/darwin/src/MGLCircleStyleLayer.h @@ -116,7 +116,7 @@ MGL_EXPORT full opacity. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: @@ -165,11 +165,11 @@ MGL_EXPORT The opacity at which the circle will be drawn. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -214,11 +214,11 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `5`. Set this property to `nil` to reset it to the default value. + 5. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -293,11 +293,11 @@ MGL_EXPORT The opacity of the circle's stroke. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -320,11 +320,11 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables diff --git a/platform/darwin/src/MGLFillExtrusionStyleLayer.h b/platform/darwin/src/MGLFillExtrusionStyleLayer.h index d1d5af6ba2..2eb3174675 100644 --- a/platform/darwin/src/MGLFillExtrusionStyleLayer.h +++ b/platform/darwin/src/MGLFillExtrusionStyleLayer.h @@ -77,14 +77,14 @@ MGL_EXPORT This property is measured in meters. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `fillExtrusionHeight` is non-`nil`. Otherwise, it is ignored. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -137,11 +137,11 @@ MGL_EXPORT This property is measured in meters. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -162,11 +162,11 @@ MGL_EXPORT per-layer, not per-feature, basis, and data-driven styling is not available. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables diff --git a/platform/darwin/src/MGLFillStyleLayer.h b/platform/darwin/src/MGLFillStyleLayer.h index 5caab91b45..421813bbca 100644 --- a/platform/darwin/src/MGLFillStyleLayer.h +++ b/platform/darwin/src/MGLFillStyleLayer.h @@ -127,11 +127,11 @@ MGL_EXPORT value will also affect the 1pt stroke around the fill, if the stroke is used. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables diff --git a/platform/darwin/src/MGLHillshadeStyleLayer.h b/platform/darwin/src/MGLHillshadeStyleLayer.h index b2eeb59aba..bc831c7f06 100644 --- a/platform/darwin/src/MGLHillshadeStyleLayer.h +++ b/platform/darwin/src/MGLHillshadeStyleLayer.h @@ -107,11 +107,11 @@ MGL_EXPORT Intensity of the hillshade The default value of this property is an expression that evaluates to the float - `0.5`. Set this property to `nil` to reset it to the default value. + 0.5. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -187,11 +187,11 @@ MGL_EXPORT `hillshadeIlluminationAnchor` is set to `MGLHillshadeIlluminationAnchorMap`. The default value of this property is an expression that evaluates to the float - `335`. Set this property to `nil` to reset it to the default value. + 335. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 359 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables diff --git a/platform/darwin/src/MGLLight.h b/platform/darwin/src/MGLLight.h index d7e64cbfad..2bdb874a37 100644 --- a/platform/darwin/src/MGLLight.h +++ b/platform/darwin/src/MGLLight.h @@ -163,11 +163,11 @@ MGL_EXPORT more extreme contrast. The default value of this property is an expression that evaluates to the float - `0.5`. + 0.5. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables diff --git a/platform/darwin/src/MGLLineStyleLayer.h b/platform/darwin/src/MGLLineStyleLayer.h index 003f48ae43..bdb5464ebc 100644 --- a/platform/darwin/src/MGLLineStyleLayer.h +++ b/platform/darwin/src/MGLLineStyleLayer.h @@ -179,7 +179,7 @@ MGL_EXPORT Used to automatically convert miter joins to bevel joins for sharp angles. The default value of this property is an expression that evaluates to the float - `2`. Set this property to `nil` to reset it to the default value. + 2. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `lineJoin` is set to an expression that evaluates to `miter`. Otherwise, it is ignored. @@ -201,7 +201,7 @@ MGL_EXPORT Used to automatically convert round joins to miter joins for shallow angles. The default value of this property is an expression that evaluates to the float - `1.05`. Set this property to `nil` to reset it to the default value. + 1.05. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `lineJoin` is set to an expression that evaluates to `round`. Otherwise, it is ignored. @@ -227,11 +227,11 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -291,7 +291,7 @@ MGL_EXPORT You can set this property to an expression containing any of the following: - * Constant array values + * Constant array values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -319,11 +319,11 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -348,7 +348,7 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: @@ -372,11 +372,11 @@ MGL_EXPORT The opacity at which the line will be drawn. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -518,11 +518,11 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables diff --git a/platform/darwin/src/MGLRasterStyleLayer.h b/platform/darwin/src/MGLRasterStyleLayer.h index 7773246cad..fd41f271ed 100644 --- a/platform/darwin/src/MGLRasterStyleLayer.h +++ b/platform/darwin/src/MGLRasterStyleLayer.h @@ -64,7 +64,7 @@ MGL_EXPORT brightness. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. 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-raster-brightness-max"><code>raster-brightness-max</code></a> @@ -72,7 +72,7 @@ MGL_EXPORT You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -97,7 +97,7 @@ MGL_EXPORT brightness. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. 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-raster-brightness-min"><code>raster-brightness-min</code></a> @@ -105,7 +105,7 @@ MGL_EXPORT You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -129,11 +129,11 @@ MGL_EXPORT Increase or reduce the contrast of the image. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between −1 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -157,11 +157,11 @@ MGL_EXPORT This property is measured in milliseconds. The default value of this property is an expression that evaluates to the float - `300`. Set this property to `nil` to reset it to the default value. + 300. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -178,7 +178,7 @@ MGL_EXPORT This property is measured in degrees. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. 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-raster-hue-rotate"><code>raster-hue-rotate</code></a> @@ -210,11 +210,11 @@ MGL_EXPORT The opacity at which the image will be drawn. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -236,11 +236,11 @@ MGL_EXPORT Increase or reduce the saturation of the image. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between −1 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables diff --git a/platform/darwin/src/MGLSymbolStyleLayer.h b/platform/darwin/src/MGLSymbolStyleLayer.h index 1017db5442..2fd5ef2479 100644 --- a/platform/darwin/src/MGLSymbolStyleLayer.h +++ b/platform/darwin/src/MGLSymbolStyleLayer.h @@ -559,14 +559,14 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `2`. Set this property to `nil` to reset it to the default value. + 2. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `iconImageName` is non-`nil`. Otherwise, it is ignored. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -610,7 +610,7 @@ MGL_EXPORT This property is measured in degrees. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `iconImageName` is non-`nil`. Otherwise, it is ignored. @@ -673,7 +673,7 @@ MGL_EXPORT This property is measured in factor of the original icon sizes. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `iconImageName` is non-`nil`. Otherwise, it is ignored. @@ -684,7 +684,7 @@ MGL_EXPORT You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -853,7 +853,7 @@ MGL_EXPORT This property is measured in degrees. The default value of this property is an expression that evaluates to the float - `45`. Set this property to `nil` to reset it to the default value. + 45. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `text` is non-`nil`, and `symbolPlacement` is set to an expression that evaluates to `line`. Otherwise, @@ -885,7 +885,7 @@ MGL_EXPORT This property is measured in ems. The default value of this property is an expression that evaluates to the float - `10`. Set this property to `nil` to reset it to the default value. + 10. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `text` is non-`nil`. Otherwise, it is ignored. @@ -896,7 +896,7 @@ MGL_EXPORT You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -968,14 +968,14 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `250`. Set this property to `nil` to reset it to the default value. + 250. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `symbolPlacement` is set to an expression that evaluates to `line`. Otherwise, it is ignored. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 1 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -1122,7 +1122,7 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `16`. Set this property to `nil` to reset it to the default value. + 16. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `text` is non-`nil`. Otherwise, it is ignored. @@ -1133,7 +1133,7 @@ MGL_EXPORT You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -1212,7 +1212,7 @@ MGL_EXPORT This property is measured in ems. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `text` is non-`nil`. Otherwise, it is ignored. @@ -1234,7 +1234,7 @@ MGL_EXPORT This property is measured in ems. The default value of this property is an expression that evaluates to the float - `1.2`. Set this property to `nil` to reset it to the default value. + 1.2. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `text` is non-`nil`. Otherwise, it is ignored. @@ -1331,14 +1331,14 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `2`. Set this property to `nil` to reset it to the default value. + 2. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `text` is non-`nil`. Otherwise, it is ignored. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -1382,7 +1382,7 @@ MGL_EXPORT This property is measured in degrees. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `text` is non-`nil`. Otherwise, it is ignored. @@ -1498,14 +1498,14 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `iconImageName` is non-`nil`. Otherwise, it is ignored. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -1556,14 +1556,14 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `iconImageName` is non-`nil`. Otherwise, it is ignored. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -1583,14 +1583,14 @@ MGL_EXPORT The opacity at which the icon will be drawn. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `iconImageName` is non-`nil`. Otherwise, it is ignored. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -1741,14 +1741,14 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `text` is non-`nil`. Otherwise, it is ignored. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -1799,14 +1799,14 @@ MGL_EXPORT This property is measured in points. The default value of this property is an expression that evaluates to the float - `0`. Set this property to `nil` to reset it to the default value. + 0. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `text` is non-`nil`. Otherwise, it is ignored. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values no less than 0 * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables @@ -1826,14 +1826,14 @@ MGL_EXPORT The opacity at which the text will be drawn. The default value of this property is an expression that evaluates to the float - `1`. Set this property to `nil` to reset it to the default value. + 1. Set this property to `nil` to reset it to the default value. This property is only applied to the style if `text` is non-`nil`. Otherwise, it is ignored. You can set this property to an expression containing any of the following: - * Constant numeric values + * Constant numeric values between 0 and 1 inclusive * Predefined functions, including mathematical and string operators * Conditional expressions * Variable assignments and references to assigned variables diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index d8b89f4d80..75a7321170 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -2,11 +2,12 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONTRIBUTING.md](../../CONTRIBUTING.md) to get started. -## master +## 4.0.0 ### Packaging * Removed support for 32-bit simulators. ([#10962](https://github.com/mapbox/mapbox-gl-native/pull/10962)) +* Added Danish and Hebrew localizations. ([#10967](https://github.com/mapbox/mapbox-gl-native/pull/10967), [#11136](https://github.com/mapbox/mapbox-gl-native/pull/11134)) ### Styles and rendering @@ -14,23 +15,32 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT * The layout and paint properties on subclasses of `MGLStyleLayer` are now of type `NSExpression` instead of `MGLStyleValue`. A new “Predicates and Expressions” guide provides an overview of the supported operators. ([#10726](https://github.com/mapbox/mapbox-gl-native/pull/10726)) * Added an `MGLComputedShapeSource` class that allows applications to supply vector data to a style layer on a per-tile basis. ([#9983](https://github.com/mapbox/mapbox-gl-native/pull/9983)) * A style can now display smooth hillshading and customize its appearance at runtime using the `MGLHillshadeStyleLayer` class. Hillshading is based on a rasterized digital elevation model supplied by the `MGLRasterDEMSource` class. ([#10642](https://github.com/mapbox/mapbox-gl-native/pull/10642)) -* Properties such as `MGLSymbolStyleLayer.iconAllowsOverlap` and `MGLSymbolStyleLayer.iconIgnoresPlacement` now account for symbols in other sources. ([#10436](https://github.com/mapbox/mapbox-gl-native/pull/10436)) +* The `MGLSymbolStyleLayer.textFontNames` property can now depend on a feature’s attributes. ([#10850](https://github.com/mapbox/mapbox-gl-native/pull/10850)) + +### Map rendering + * Improved the reliability of collision detection between symbols near the edges of tiles, as well as between symbols when the map is tilted. It is no longer necessary to enable `MGLSymbolStyleLayer.symbolAvoidsEdges` to prevent symbols in adjacent tiles from overlapping with each other. ([#10436](https://github.com/mapbox/mapbox-gl-native/pull/10436)) * Symbols can fade in and out as the map pans, rotates, or tilts. ([#10436](https://github.com/mapbox/mapbox-gl-native/pull/10436)) +* Properties such as `MGLSymbolStyleLayer.iconAllowsOverlap` and `MGLSymbolStyleLayer.iconIgnoresPlacement` now account for symbols in other sources. ([#10436](https://github.com/mapbox/mapbox-gl-native/pull/10436)) * Fixed an issue preventing a dynamically-added `MGLRasterStyleLayer` from drawing until the map pans. ([#10270](https://github.com/mapbox/mapbox-gl-native/pull/10270)) * Fixed an issue preventing `MGLImageSource`s from drawing on the map when the map is zoomed in and tilted. ([#10677](https://github.com/mapbox/mapbox-gl-native/pull/10677)) - -### Snapshots - -* Fixed a memory leak that occurred when creating a map snapshot. ([#10585](https://github.com/mapbox/mapbox-gl-native/pull/10585)) +* Improved the sharpness of raster tiles on Retina displays. ([#10984](https://github.com/mapbox/mapbox-gl-native/pull/10984)) +* Fixed a crash parsing a malformed style. ([#11001](https://github.com/mapbox/mapbox-gl-native/pull/11001)) ### Annotations +* Fixed an issue preventing `MGLAnnotationImage.image` from being updated. ([#10372](https://github.com/mapbox/mapbox-gl-native/pull/10372)) * Improved performance of `MGLAnnotationView`-backed annotations that have `scalesWithViewingDistance` enabled. ([#10951](https://github.com/mapbox/mapbox-gl-native/pull/10951)) -### Other changes +### Map snapshots + +* Fixed a memory leak that occurred when creating a map snapshot. ([#10585](https://github.com/mapbox/mapbox-gl-native/pull/10585)) + +## Other changes -* Added a Hebrew localization. ([#10967](https://github.com/mapbox/mapbox-gl-native/pull/10967)) +* Feature querying results now account for the `MGLSymbolStyleLayer.circleStrokeWidth` property. ([#10897](https://github.com/mapbox/mapbox-gl-native/pull/10897)) +* Fixed an issue preventing labels from being transliterated when VoiceOver was enabled on iOS 10._x_ and below. ([#10881](https://github.com/mapbox/mapbox-gl-native/pull/10881)) +* Labels are now transliterated from more languages when VoiceOver is enabled. ([#10881](https://github.com/mapbox/mapbox-gl-native/pull/10881)) * Long-pressing the attribution button causes the SDK’s version number to be displayed in the action sheet that appears. ([#10650](https://github.com/mapbox/mapbox-gl-native/pull/10650)) ## 3.7.4 - February 12, 2018 diff --git a/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec index 65adcf8d3c..56714a5211 100644 --- a/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec +++ b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.4' + version = '4.0.0-beta.1' m.name = 'Mapbox-iOS-SDK-nightly-dynamic' m.version = "#{version}-nightly" diff --git a/platform/ios/Mapbox-iOS-SDK-symbols.podspec b/platform/ios/Mapbox-iOS-SDK-symbols.podspec index fff485ebb4..fb7e55bbd3 100644 --- a/platform/ios/Mapbox-iOS-SDK-symbols.podspec +++ b/platform/ios/Mapbox-iOS-SDK-symbols.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.4' + version = '4.0.0-beta.1' m.name = 'Mapbox-iOS-SDK-symbols' m.version = "#{version}-symbols" diff --git a/platform/ios/Mapbox-iOS-SDK.podspec b/platform/ios/Mapbox-iOS-SDK.podspec index 3181b66918..ee35103700 100644 --- a/platform/ios/Mapbox-iOS-SDK.podspec +++ b/platform/ios/Mapbox-iOS-SDK.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.4' + version = '4.0.0-beta.1' m.name = 'Mapbox-iOS-SDK' m.version = version diff --git a/platform/ios/app/da.lproj/Localizable.strings b/platform/ios/app/da.lproj/Localizable.strings new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/platform/ios/app/da.lproj/Localizable.strings diff --git a/platform/ios/docs/guides/For Style Authors.md b/platform/ios/docs/guides/For Style Authors.md index 68d59fbc70..02d23067ef 100644 --- a/platform/ios/docs/guides/For Style Authors.md +++ b/platform/ios/docs/guides/For Style Authors.md @@ -348,7 +348,6 @@ In style specification | Method, function, or predicate type | Format string syn `concat` | `stringByAppendingString:` | `downcase` | `lowercase:` | `lowercase('DOWNTOWN')` `upcase` | `uppercase:` | `uppercase('Elysian Fields')` - `rgb` | `+[UIColor colorWithRed:green:blue:alpha:]` | `rgba` | `+[UIColor colorWithRed:green:blue:alpha:]` | `to-rgba` | | diff --git a/platform/ios/framework/Settings.bundle/ca.lproj/Root.strings b/platform/ios/framework/Settings.bundle/ca.lproj/Root.strings index 94e8335582..3f6104a075 100644 --- a/platform/ios/framework/Settings.bundle/ca.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/ca.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Configuració de privacitat"; +"TELEMETRY_GROUP_TITLE" = "Configuració de privacitat"; "TELEMETRY_SWITCH_TITLE" = "Telemetria Mapbox"; "TELEMETRY_GROUP_FOOTER" = "Aquest ajust permet que l’aplicació comparteixi dades anònimes de localització i ús amb Mapbox."; diff --git a/platform/ios/framework/Settings.bundle/da.lproj/Root.strings b/platform/ios/framework/Settings.bundle/da.lproj/Root.strings new file mode 100644 index 0000000000..b1129a865a --- /dev/null +++ b/platform/ios/framework/Settings.bundle/da.lproj/Root.strings @@ -0,0 +1,3 @@ +"TELEMETRY_GROUP_TITLE" = "Privatlivs indstillinger"; +"TELEMETRY_SWITCH_TITLE" = "Mapbox Telemetry"; +"TELEMETRY_GROUP_FOOTER" = "Denne indstilling giver app'en tilladelse til at dele anonyme bruger data og position med Mapbox."; diff --git a/platform/ios/framework/Settings.bundle/de.lproj/Root.strings b/platform/ios/framework/Settings.bundle/de.lproj/Root.strings index c57189d4af..30bd2252ce 100644 --- a/platform/ios/framework/Settings.bundle/de.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/de.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Privatsphäre-Einstellungen"; +"TELEMETRY_GROUP_TITLE" = "Privatsphäre-Einstellungen"; "TELEMETRY_SWITCH_TITLE" = "Mapbox-Telemetrie"; "TELEMETRY_GROUP_FOOTER" = "Diese Einstellung erlaubt der Applikation, anonymisierte Orts- und Nutzungsdaten an Mapbox zu senden."; diff --git a/platform/ios/framework/Settings.bundle/es.lproj/Root.strings b/platform/ios/framework/Settings.bundle/es.lproj/Root.strings index bb0c52dcde..48da358189 100644 --- a/platform/ios/framework/Settings.bundle/es.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/es.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Ajustes de privacidad"; +"TELEMETRY_GROUP_TITLE" = "Ajustes de privacidad"; "TELEMETRY_SWITCH_TITLE" = "Telemetría Mapbox"; "TELEMETRY_GROUP_FOOTER" = "Esta configuración permite que la aplicación comparta datos anónimos de ubicación y uso con Mapbox."; diff --git a/platform/ios/framework/Settings.bundle/fi.lproj/Root.strings b/platform/ios/framework/Settings.bundle/fi.lproj/Root.strings index e0c2e50d09..b12a017e8a 100644 --- a/platform/ios/framework/Settings.bundle/fi.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/fi.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Yksityisyysasetukset"; +"TELEMETRY_GROUP_TITLE" = "Yksityisyysasetukset"; "TELEMETRY_SWITCH_TITLE" = "Mapbox-telemetria"; "TELEMETRY_GROUP_FOOTER" = "Tämä asetus antaa sovellukselle luvan jakaa anonymisoituja sijainti- ja käyttötietoja Mapboxille."; diff --git a/platform/ios/framework/Settings.bundle/fr.lproj/Root.strings b/platform/ios/framework/Settings.bundle/fr.lproj/Root.strings index c386d9846d..f00e8e2fe8 100644 --- a/platform/ios/framework/Settings.bundle/fr.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/fr.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Paramètres de confidentialité"; +"TELEMETRY_GROUP_TITLE" = "Paramètres de confidentialité"; "TELEMETRY_SWITCH_TITLE" = "Télémétrie Mapbox"; "TELEMETRY_GROUP_FOOTER" = "Cette option permet à l’application de partager des données de localisation et d’utilisation anonymes avec Mapbox."; diff --git a/platform/ios/framework/Settings.bundle/lt.lproj/Root.strings b/platform/ios/framework/Settings.bundle/lt.lproj/Root.strings index 832b16608b..5ae715439a 100644 --- a/platform/ios/framework/Settings.bundle/lt.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/lt.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Privatumo nustatymai"; +"TELEMETRY_GROUP_TITLE" = "Privatumo nustatymai"; "TELEMETRY_SWITCH_TITLE" = "Mapbox Telemetrija"; "TELEMETRY_GROUP_FOOTER" = "Šis nustatymas leidžia programėlei dalintis su Mapbox anonimizuota lokacija bei naudojimosi duomenimis."; diff --git a/platform/ios/framework/Settings.bundle/nl.lproj/Root.strings b/platform/ios/framework/Settings.bundle/nl.lproj/Root.strings index ea73b0ba3c..9f09002349 100644 --- a/platform/ios/framework/Settings.bundle/nl.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/nl.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Privacy Instellingen"; +"TELEMETRY_GROUP_TITLE" = "Privacy Instellingen"; "TELEMETRY_SWITCH_TITLE" = "Mapbox Telemetrie"; "TELEMETRY_GROUP_FOOTER" = "Deze instelling laat toe om anonieme locatie en gebruiksgegevens te delen met Mapbox."; diff --git a/platform/ios/framework/Settings.bundle/pl.lproj/Root.strings b/platform/ios/framework/Settings.bundle/pl.lproj/Root.strings index 4cf2c71381..f273a15293 100644 --- a/platform/ios/framework/Settings.bundle/pl.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/pl.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Ustawienia prywatności"; +"TELEMETRY_GROUP_TITLE" = "Ustawienia prywatności"; "TELEMETRY_SWITCH_TITLE" = "Mapbox Telemetria"; "TELEMETRY_GROUP_FOOTER" = "Ta opcja pozwala aplikacji na anonimowe wysyłanie lokalizacji i danych do Mapbox."; diff --git a/platform/ios/framework/Settings.bundle/pt-BR.lproj/Root.strings b/platform/ios/framework/Settings.bundle/pt-BR.lproj/Root.strings index 5b81fb66eb..f96fadd205 100644 --- a/platform/ios/framework/Settings.bundle/pt-BR.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/pt-BR.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Configurações de privacidade"; +"TELEMETRY_GROUP_TITLE" = "Configurações de privacidade"; "TELEMETRY_SWITCH_TITLE" = "Telemetria do Mapbox"; "TELEMETRY_GROUP_FOOTER" = "Essa configuração permite que o aplicativo compartilhe dados de localização e uso anônimos com o Mapbox."; diff --git a/platform/ios/framework/Settings.bundle/ru.lproj/Root.strings b/platform/ios/framework/Settings.bundle/ru.lproj/Root.strings index 2883ec4b87..3e37d64126 100644 --- a/platform/ios/framework/Settings.bundle/ru.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/ru.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Настройки приватности"; -"TELEMETRY_SWITCH_TITLE" = "Mapbox Телеметрия"; -"TELEMETRY_GROUP_FOOTER" = "Эта настройка разрешает приложению отправлять анонимную позицию и данные об использовании в Mapbox"; +"TELEMETRY_GROUP_TITLE" = "Настройки приватности"; +"TELEMETRY_SWITCH_TITLE" = "Телеметрия Mapbox"; +"TELEMETRY_GROUP_FOOTER" = "Эта настройка разрешает приложению отправлять обезличенные данные об использовании и местоположении в Mapbox."; diff --git a/platform/ios/framework/Settings.bundle/sv.lproj/Root.strings b/platform/ios/framework/Settings.bundle/sv.lproj/Root.strings index f8324c14c4..e771af505a 100644 --- a/platform/ios/framework/Settings.bundle/sv.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/sv.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Sekretessinställningar"; +"TELEMETRY_GROUP_TITLE" = "Sekretessinställningar"; "TELEMETRY_SWITCH_TITLE" = "Mapbox Telemetri"; "TELEMETRY_GROUP_FOOTER" = "Denna inställning tillåter applikationen att dela anonymiserad plats och användningsdata med Mapbox."; diff --git a/platform/ios/framework/Settings.bundle/uk.lproj/Root.strings b/platform/ios/framework/Settings.bundle/uk.lproj/Root.strings index 5d2bfd648e..b1615849f6 100644 --- a/platform/ios/framework/Settings.bundle/uk.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/uk.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Налаштування конфіденційності"; +"TELEMETRY_GROUP_TITLE" = "Налаштування конфіденційності"; "TELEMETRY_SWITCH_TITLE" = "Телеметрія Mapbox"; "TELEMETRY_GROUP_FOOTER" = "Ці налаштування дозволяють застосунку надсилати анонімізовані дані про місце знаходження та використання даних до Mapbox."; diff --git a/platform/ios/framework/Settings.bundle/vi.lproj/Root.strings b/platform/ios/framework/Settings.bundle/vi.lproj/Root.strings index e156d9937a..29060d00a4 100644 --- a/platform/ios/framework/Settings.bundle/vi.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/vi.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "Thiết lập Quyền riêng tư"; +"TELEMETRY_GROUP_TITLE" = "Thiết lập Quyền riêng tư"; "TELEMETRY_SWITCH_TITLE" = "Trình viễn trắc Mapbox"; "TELEMETRY_GROUP_FOOTER" = "Tùy chọn này cho phép ứng dụng gửi cho Mapbox các vị trí và dữ liệu sử dụng được vô danh hóa."; diff --git a/platform/ios/framework/Settings.bundle/zh-Hans.lproj/Root.strings b/platform/ios/framework/Settings.bundle/zh-Hans.lproj/Root.strings index 3cfb1a4bad..b9e1a98325 100644 --- a/platform/ios/framework/Settings.bundle/zh-Hans.lproj/Root.strings +++ b/platform/ios/framework/Settings.bundle/zh-Hans.lproj/Root.strings @@ -1,3 +1,3 @@ -"TELEMETRY_GROUP_TITLE" = "隐私设置"; +"TELEMETRY_GROUP_TITLE" = "隐私设置"; "TELEMETRY_SWITCH_TITLE" = "Mapbox传感数据"; "TELEMETRY_GROUP_FOOTER" = "此设置允许应用将用户位置和数据以匿名的方式分享给Mapbox。"; diff --git a/platform/ios/ios.xcodeproj/project.pbxproj b/platform/ios/ios.xcodeproj/project.pbxproj index 07fae5945c..f66aa74965 100644 --- a/platform/ios/ios.xcodeproj/project.pbxproj +++ b/platform/ios/ios.xcodeproj/project.pbxproj @@ -57,7 +57,7 @@ 3510FFEC1D6D9C7A00F413B2 /* NSComparisonPredicate+MGLAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3510FFE91D6D9C7A00F413B2 /* NSComparisonPredicate+MGLAdditions.mm */; }; 3510FFED1D6D9C7A00F413B2 /* NSComparisonPredicate+MGLAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3510FFE91D6D9C7A00F413B2 /* NSComparisonPredicate+MGLAdditions.mm */; }; 3510FFF01D6D9D8C00F413B2 /* NSExpression+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3510FFEE1D6D9D8C00F413B2 /* NSExpression+MGLAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3510FFF11D6D9D8C00F413B2 /* NSExpression+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3510FFEE1D6D9D8C00F413B2 /* NSExpression+MGLAdditions.h */; }; + 3510FFF11D6D9D8C00F413B2 /* NSExpression+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3510FFEE1D6D9D8C00F413B2 /* NSExpression+MGLAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3510FFF21D6D9D8C00F413B2 /* NSExpression+MGLAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3510FFEF1D6D9D8C00F413B2 /* NSExpression+MGLAdditions.mm */; }; 3510FFF31D6D9D8C00F413B2 /* NSExpression+MGLAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3510FFEF1D6D9D8C00F413B2 /* NSExpression+MGLAdditions.mm */; }; 3510FFF91D6DCC4700F413B2 /* NSCompoundPredicate+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3510FFF71D6DCC4700F413B2 /* NSCompoundPredicate+MGLAdditions.h */; }; @@ -456,6 +456,8 @@ DA8963381CC549A100684375 /* sprites in Resources */ = {isa = PBXBuildFile; fileRef = DA8963341CC549A100684375 /* sprites */; }; DA8963391CC549A100684375 /* styles in Resources */ = {isa = PBXBuildFile; fileRef = DA8963351CC549A100684375 /* styles */; }; DA89633A1CC549A100684375 /* tiles in Resources */ = {isa = PBXBuildFile; fileRef = DA8963361CC549A100684375 /* tiles */; }; + DA9EA82B201C0C0C00F9874D /* NSExpression+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9EA82A201C0C0B00F9874D /* NSExpression+MGLAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA9EA82C201C0C0C00F9874D /* NSExpression+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9EA82A201C0C0B00F9874D /* NSExpression+MGLAdditions.h */; }; DAA32CC31E4C6B65006F8D24 /* MGLDistanceFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3557F7AF1E1D27D300CCA5E6 /* MGLDistanceFormatter.m */; }; DAA4E4081CBB6C9500178DFB /* Mapbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA8847D21CBAF91600AB86E3 /* Mapbox.framework */; }; DAA4E4091CBB6C9500178DFB /* Mapbox.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DA8847D21CBAF91600AB86E3 /* Mapbox.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -1039,6 +1041,7 @@ DA9C012C1E4C7ADB00C4742A /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "pt-BR"; path = "pt-BR.lproj/Foundation.stringsdict"; sourceTree = "<group>"; }; DA9C012D1E4C7B1F00C4742A /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = "<group>"; }; DA9C012E1E4C7B6100C4742A /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Root.strings"; sourceTree = "<group>"; }; + DA9EA82A201C0C0B00F9874D /* NSExpression+MGLAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSExpression+MGLAdditions.h"; sourceTree = "<group>"; }; DAA32CA11E4C44DB006F8D24 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = de; path = de.lproj/Foundation.stringsdict; sourceTree = "<group>"; }; DAA32CA21E4C44DD006F8D24 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = de; path = de.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; DAA32CA31E4C44F1006F8D24 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Foundation.strings; sourceTree = "<group>"; }; @@ -1087,6 +1090,12 @@ DAD1656B1CF41981001FF4B9 /* MGLFeature.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MGLFeature.mm; sourceTree = "<group>"; }; DAD165761CF4CDFF001FF4B9 /* MGLShapeCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLShapeCollection.h; sourceTree = "<group>"; }; DAD165771CF4CDFF001FF4B9 /* MGLShapeCollection.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MGLShapeCollection.mm; sourceTree = "<group>"; }; + DAD88E07202ACFE800AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = "<group>"; }; + DAD88E08202AD01300AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Foundation.strings; sourceTree = "<group>"; }; + DAD88E09202AD01F00AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = da; path = da.lproj/Foundation.stringsdict; sourceTree = "<group>"; }; + DAD88E0A202AD03C00AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = "<group>"; }; + DAD88E0B202AD04D00AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = da; path = da.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; + DAD88E0C202AD06500AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Root.strings; sourceTree = "<group>"; }; DAE7DEC11E245455007505A6 /* MGLNSStringAdditionsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MGLNSStringAdditionsTests.m; path = ../../darwin/test/MGLNSStringAdditionsTests.m; sourceTree = "<group>"; }; DAE8CCAD1E6E8C70009B5CB0 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = "<group>"; }; DAE8CCAE1E6E8C76009B5CB0 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Root.strings; sourceTree = "<group>"; }; @@ -1813,6 +1822,7 @@ 408AA8561DAEDA0800022900 /* NSDictionary+MGLAdditions.mm */, DA8848141CBAFA6200AB86E3 /* NSException+MGLAdditions.h */, 3510FFEE1D6D9D8C00F413B2 /* NSExpression+MGLAdditions.h */, + DA9EA82A201C0C0B00F9874D /* NSExpression+MGLAdditions.h */, DAC25FCB200FD83E009BE98E /* NSExpression+MGLPrivateAdditions.h */, 3510FFEF1D6D9D8C00F413B2 /* NSExpression+MGLAdditions.mm */, 35B82BF61D6C5F8400B1B721 /* NSPredicate+MGLAdditions.h */, @@ -2012,6 +2022,7 @@ DA8848841CBB033F00AB86E3 /* FABAttributes.h in Headers */, DA8847FD1CBAFA5100AB86E3 /* MGLTilePyramidOfflineRegion.h in Headers */, DA88482F1CBAFA6200AB86E3 /* NSProcessInfo+MGLAdditions.h in Headers */, + DA9EA82B201C0C0C00F9874D /* NSExpression+MGLAdditions.h in Headers */, DA8848601CBAFC2E00AB86E3 /* Mapbox.h in Headers */, DAF0D8101DFE0EA000B28378 /* MGLRasterSource_Private.h in Headers */, 350098BB1D480108004B2AF0 /* MGLVectorSource.h in Headers */, @@ -2042,6 +2053,7 @@ DABFB8641CBE99E500D62B32 /* MGLOfflineStorage.h in Headers */, 96E516E32000552A00A02306 /* MGLAccountManager_Private.h in Headers */, 96E5170420005A6B00A02306 /* SMCalloutView.h in Headers */, + DA9EA82C201C0C0C00F9874D /* NSExpression+MGLAdditions.h in Headers */, 96036A02200565C700510F3D /* NSOrthography+MGLAdditions.h in Headers */, DAD165791CF4CDFF001FF4B9 /* MGLShapeCollection.h in Headers */, 4049C29E1DB6CD6C00B3F799 /* MGLPointCollection.h in Headers */, @@ -2396,6 +2408,7 @@ bg, ar, he, + da, ); mainGroup = DA1DC9411CB6C1C2006E619F; productRefGroup = DA1DC94B1CB6C1C2006E619F /* Products */; @@ -2876,6 +2889,7 @@ DA3389651FA3EE1B001EA329 /* bg */, DA80E9601FE84AD90065FC9B /* ar */, DACBC60B20118ABE00C4D7E2 /* he */, + DAD88E07202ACFE800AAA536 /* da */, ); name = Localizable.strings; sourceTree = "<group>"; @@ -2902,6 +2916,7 @@ DACCD9C81F1F473700BB09A1 /* hu */, DA33896A1FA3EE58001EA329 /* bg */, DACBC60E20118AFE00C4D7E2 /* he */, + DAD88E0C202AD06500AAA536 /* da */, ); name = Root.strings; sourceTree = "<group>"; @@ -2926,6 +2941,7 @@ DA5C09BB1EFC486C0056B178 /* hu */, DA3389681FA3EE48001EA329 /* bg */, DACBC60D20118ADE00C4D7E2 /* he */, + DAD88E0A202AD03C00AAA536 /* da */, ); name = Localizable.strings; sourceTree = "<group>"; @@ -2948,6 +2964,7 @@ DA33895F1FA3EAB7001EA329 /* pt-BR */, DA3389661FA3EE28001EA329 /* bg */, DACBC60C20118AD000C4D7E2 /* he */, + DAD88E08202AD01300AAA536 /* da */, ); name = Foundation.strings; sourceTree = "<group>"; @@ -2970,6 +2987,7 @@ DA3389671FA3EE2F001EA329 /* bg */, DA33896B1FA3EF4A001EA329 /* hu */, DA80E9611FE84AEF0065FC9B /* ar */, + DAD88E09202AD01F00AAA536 /* da */, ); name = Foundation.stringsdict; sourceTree = "<group>"; @@ -2998,6 +3016,7 @@ DA704CBC1F637405004B3F28 /* uk */, DA704CBD1F63746E004B3F28 /* zh-Hant */, DA3389691FA3EE50001EA329 /* bg */, + DAD88E0B202AD04D00AAA536 /* da */, ); name = Localizable.stringsdict; sourceTree = "<group>"; diff --git a/platform/ios/resources/da.lproj/Localizable.strings b/platform/ios/resources/da.lproj/Localizable.strings new file mode 100644 index 0000000000..dd384b21fc --- /dev/null +++ b/platform/ios/resources/da.lproj/Localizable.strings @@ -0,0 +1,117 @@ +/* Accessibility hint */ +"ANNOTATION_A11Y_HINT" = "Vis mere info"; + +/* No comment provided by engineer. */ +"API_CLIENT_400_DESC" = "Denne session kunne ikke gennemføres pga. data fejl. Den oprindelige forespørgsel var: %@"; + +/* No comment provided by engineer. */ +"API_CLIENT_400_REASON" = "Status koden var %ld"; + +/* No comment provided by engineer. */ +"CANCEL" = "Fortryd"; + +/* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ +"CLOSE_CALLOUT_A11Y_HINT" = "Retur til kortet"; + +/* Accessibility hint */ +"COMPASS_A11Y_HINT" = "Fast nord"; + +/* Accessibility label */ +"COMPASS_A11Y_LABEL" = "Kompas"; + +/* Compass abbreviation for north */ +"COMPASS_NORTH" = "N"; + +/* Instructions in Interface Builder designable; {key}, {plist file name} */ +"DESIGNABLE" = "For at vise et Mapbox-hosted kort her, angiv %1$@ til din access token i %2$@\n\nFor yderligere instruktion se:"; + +/* Setup documentation URL display string; keep as short as possible */ +"FIRST_STEPS_URL" = "mapbox.com/help/first-steps-ios-sdk"; + +/* Accessibility hint */ +"INFO_A11Y_HINT" = "Vis credits, feedback formular med mere"; + +/* Accessibility label */ +"INFO_A11Y_LABEL" = "Om kortet"; + +/* List separator */ +"LIST_SEPARATOR" = ", "; + +/* User-friendly error description */ +"LOAD_MAP_FAILED_DESC" = "Kortet kunne ikke hentes på grund af en ukendt fejl"; + +/* User-friendly error description */ +"LOAD_STYLE_FAILED_DESC" = "Kortet kunne ikke hentes på grund af en fejl i kort formatteringen"; + +/* Accessibility label */ +"LOGO_A11Y_LABEL" = "Mapbox"; + +/* Accessibility label */ +"MAP_A11Y_LABEL" = "Kort"; + +/* Map accessibility value; {number of visible annotations} */ +"MAP_A11Y_VALUE_ANNOTATIONS" = "%ld synlige kommentarer."; + +/* Map accessibility value; {list of visible places} */ +"MAP_A11Y_VALUE_PLACES" = "Synlige steder: %@."; + +/* Map accessibility value; {number of visible roads} */ +"MAP_A11Y_VALUE_ROADS" = "%ld synlige veje."; + +/* Map accessibility value; {zoom level} */ +"MAP_A11Y_VALUE_ZOOM" = "Zoom %dx."; + +/* User-friendly error description */ +"PARSE_STYLE_FAILED_DESC" = "Kortet kunne ikke hentes på grund af en fejl"; + +/* String format for accessibility value for road feature; {starting compass direction}, {ending compass direction} */ +"ROAD_DIRECTION_A11Y_FMT" = "%1$@ til %2$@"; + +/* Accessibility value indicating that a road is a divided road (dual carriageway) */ +"ROAD_DIVIDED_A11Y_VALUE" = "Delt vej"; + +/* Accessibility value indicating that a road is a one-way road */ +"ROAD_ONEWAY_A11Y_VALUE" = "Ensrettet"; + +/* String format for accessibility value for road feature; {route number} */ +"ROAD_REF_A11Y_FMT" = "Rute %@"; + +/* Action sheet title */ +"SDK_NAME" = "Mapbox Maps SDK for iOS"; + +/* Developer-only SDK update notification; {latest version, in format x.x.x} */ +"SDK_UPDATE_AVAILABLE" = "Mapbox Maps SDK for iOS version %@ er nu tilgængelig:"; + +/* User-friendly error description */ +"STYLE_NOT_FOUND_DESC" = "Kortet kunne ikke hentes fordi det enten ikke findes, eller ikke er kompatibelt."; + +/* Telemetry prompt message */ +"TELEMETRY_DISABLED_MSG" = "Du kan hjælpe med at gøre OpenStreetMap og Mapbox kort bedre ved at bidrage med annonyme bruger data."; + +/* Telemetry prompt button */ +"TELEMETRY_DISABLED_OFF" = "Deltag ikke"; + +/* Telemetry prompt button */ +"TELEMETRY_DISABLED_ON" = "Deltag"; + +/* Telemetry prompt message */ +"TELEMETRY_ENABLED_MSG" = "Du hjælper med at gøre OpenStreetMap og Mapbox kort bedre ved at bidrage med annonyme bruger data."; + +/* Telemetry prompt button */ +"TELEMETRY_ENABLED_OFF" = "Stop deltagelse"; + +/* Telemetry prompt button */ +"TELEMETRY_ENABLED_ON" = "Fortsæt deltagelse"; + +/* Telemetry prompt button */ +"TELEMETRY_MORE" = "Fortæl mig mere"; + +/* Action in attribution sheet */ +"TELEMETRY_NAME" = "Mapbox Telemetry"; + +/* Telemetry prompt title */ +"TELEMETRY_TITLE" = "Gør Mapbox kort bedre"; + +/* Default user location annotation title */ +"USER_DOT_TITLE" = "Du er her"; + diff --git a/platform/ios/resources/da.lproj/Localizable.stringsdict b/platform/ios/resources/da.lproj/Localizable.stringsdict new file mode 100644 index 0000000000..296b8c88dd --- /dev/null +++ b/platform/ios/resources/da.lproj/Localizable.stringsdict @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>MAP_A11Y_VALUE_ANNOTATIONS</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@count@</string> + <key>count</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>ld</string> + <key>one</key> + <string>%ld synlig kommentar</string> + <key>other</key> + <string>%ld synlige kommentarer</string> + </dict> + </dict> + <key>MAP_A11Y_VALUE_ROADS</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@count@</string> + <key>count</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>ld</string> + <key>one</key> + <string>%ld synlig vej</string> + <key>other</key> + <string>%ld synlige veje</string> + </dict> + </dict> + <key>MAP_A11Y_VALUE_ZOOM</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@level@</string> + <key>level</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>one</key> + <string>Zoom %dx</string> + <key>other</key> + <string>Zoom %dx.</string> + </dict> + </dict> +</dict> +</plist> diff --git a/platform/ios/resources/ru.lproj/Localizable.strings b/platform/ios/resources/ru.lproj/Localizable.strings index 6d5ea9025e..b6ceffd520 100644 --- a/platform/ios/resources/ru.lproj/Localizable.strings +++ b/platform/ios/resources/ru.lproj/Localizable.strings @@ -1,44 +1,47 @@ /* Accessibility hint */ -"ANNOTATION_A11Y_HINT" = "Показать больше информации"; +"ANNOTATION_A11Y_HINT" = "Дополнительная информация"; /* No comment provided by engineer. */ -"API_CLIENT_400_DESC" = "The session data task failed. Original request was:%@"; +"API_CLIENT_400_DESC" = "Во время обмена данными произошла ошибка. Оригинал запроса: %@"; /* No comment provided by engineer. */ -"API_CLIENT_400_REASON" = "The status code was %ld"; +"API_CLIENT_400_REASON" = "Код ответа %ld"; /* No comment provided by engineer. */ "CANCEL" = "Отмена"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ -"CLOSE_CALLOUT_A11Y_HINT" = "Вернуться на карту"; +"CLOSE_CALLOUT_A11Y_HINT" = "Вернуться к карте"; /* Accessibility hint */ -"COMPASS_A11Y_HINT" = "Повернуть карту на север"; +"COMPASS_A11Y_HINT" = "Развернуть карту на север"; /* Accessibility label */ "COMPASS_A11Y_LABEL" = "Компас"; /* Compass abbreviation for north */ -"COMPASS_NORTH" = "N"; +"COMPASS_NORTH" = "С"; /* Instructions in Interface Builder designable; {key}, {plist file name} */ -"DESIGNABLE" = "Для отображения здесь карт Mapbox задайте %1$@ к вашему токену доступа в %2$@\n\nПодробные инструкции см.:"; +"DESIGNABLE" = "Для отображения здесь карт Mapbox, задайте %1$@ для вашего токена доступа в %2$@\n\nПодробные инструкции:"; /* Setup documentation URL display string; keep as short as possible */ "FIRST_STEPS_URL" = "mapbox.com/help/first-steps-ios-sdk"; /* Accessibility hint */ -"INFO_A11Y_HINT" = "Показать авторство, форму обратной связи и многое другое"; +"INFO_A11Y_HINT" = "Показать благодарности, форму отправки отзыва и другое"; /* Accessibility label */ "INFO_A11Y_LABEL" = "Об этой карте"; +/* List separator */ +"LIST_SEPARATOR" = ", "; + /* User-friendly error description */ "LOAD_MAP_FAILED_DESC" = "Не удалось загрузить карту из-за неизвестной ошибки."; /* User-friendly error description */ -"LOAD_STYLE_FAILED_DESC" = "Не удалось загрузить карту так как невозможно загрузить стиль."; +"LOAD_STYLE_FAILED_DESC" = "Не удалось загрузить карту из-за ошибки загрузки стиля."; /* Accessibility label */ "LOGO_A11Y_LABEL" = "Mapbox"; @@ -46,23 +49,44 @@ /* Accessibility label */ "MAP_A11Y_LABEL" = "Карта"; -/* Map accessibility value */ -"MAP_A11Y_VALUE" = "Масштаб %1$dx\n%2$ld аннотации(й) видны"; +/* Map accessibility value; {number of visible annotations} */ +"MAP_A11Y_VALUE_ANNOTATIONS" = "Показано %ld аннотаций."; + +/* Map accessibility value; {list of visible places} */ +"MAP_A11Y_VALUE_PLACES" = "Показано мест: %@."; + +/* Map accessibility value; {number of visible roads} */ +"MAP_A11Y_VALUE_ROADS" = "Показано %ld дорог."; + +/* Map accessibility value; {zoom level} */ +"MAP_A11Y_VALUE_ZOOM" = "Масштаб %dx."; /* User-friendly error description */ "PARSE_STYLE_FAILED_DESC" = "Не удалось загрузить карту из-за ошибки в стиле."; +/* String format for accessibility value for road feature; {starting compass direction}, {ending compass direction} */ +"ROAD_DIRECTION_A11Y_FMT" = "%1$@ на %2$@"; + +/* Accessibility value indicating that a road is a divided road (dual carriageway) */ +"ROAD_DIVIDED_A11Y_VALUE" = "Двусторонняя дорога"; + +/* Accessibility value indicating that a road is a one-way road */ +"ROAD_ONEWAY_A11Y_VALUE" = "Односторонняя дорога"; + +/* String format for accessibility value for road feature; {route number} */ +"ROAD_REF_A11Y_FMT" = "Трасса %@"; + /* Action sheet title */ -"SDK_NAME" = "Mapbox Maps SDK for iOS"; +"SDK_NAME" = "Mapbox Maps SDK для iOS"; /* Developer-only SDK update notification; {latest version, in format x.x.x} */ -"SDK_UPDATE_AVAILABLE" = "Mapbox Maps SDK for iOS версии %@теперь доступен."; +"SDK_UPDATE_AVAILABLE" = "Доступна версия Mapbox Maps SDK %@ для iOS:"; /* User-friendly error description */ -"STYLE_NOT_FOUND_DESC" = "Не удалось загрузить карту так как стиль не найден или несовместим."; +"STYLE_NOT_FOUND_DESC" = "Не удалось загрузить карту, так как стиль не найден или несовместим."; /* Telemetry prompt message */ -"TELEMETRY_DISABLED_MSG" = "Вы можете помочь сделать карты OpenStreetMap и Mapbox лучше путем предоставления анонимных данных об использовании."; +"TELEMETRY_DISABLED_MSG" = "Вы поможете улучшить карты OpenStreetMap и Mapbox, предоставляя обезличенные данные об использовании."; /* Telemetry prompt button */ "TELEMETRY_DISABLED_OFF" = "Не участвовать"; @@ -71,7 +95,7 @@ "TELEMETRY_DISABLED_ON" = "Участвовать"; /* Telemetry prompt message */ -"TELEMETRY_ENABLED_MSG" = "Вы помогаете сделать карты OpenStreetMap и Mapbox лучше путем предоставления анонимных данных об использовании."; +"TELEMETRY_ENABLED_MSG" = "Вы помогаете улучшать карты OpenStreetMap и Mapbox, предоставляя обезличенные данные об использовании."; /* Telemetry prompt button */ "TELEMETRY_ENABLED_OFF" = "Прекратить участие"; @@ -83,7 +107,7 @@ "TELEMETRY_MORE" = "Узнать больше"; /* Action in attribution sheet */ -"TELEMETRY_NAME" = "Mapbox телеметрия"; +"TELEMETRY_NAME" = "Телеметрия Mapbox"; /* Telemetry prompt title */ "TELEMETRY_TITLE" = "Сделать карты Mapbox лучше"; diff --git a/platform/ios/resources/ru.lproj/Localizable.stringsdict b/platform/ios/resources/ru.lproj/Localizable.stringsdict index 81877703b1..fabd557780 100644 --- a/platform/ios/resources/ru.lproj/Localizable.stringsdict +++ b/platform/ios/resources/ru.lproj/Localizable.stringsdict @@ -2,26 +2,30 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>MAP_A11Y_VALUE</key> + <key>MAP_A11Y_VALUE_ANNOTATIONS</key> <dict> <key>NSStringLocalizedFormatKey</key> - <string>%#@level@ -%#@count@</string> - <key>level</key> + <string>%#@count@</string> + <key>count</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> - <string>d</string> + <string>ld</string> <key>one</key> - <string>Масштаб %dx</string> + <string>Показана %d аннотация</string> <key>few</key> - <string>Масштаб %dx</string> + <string>Показано %d аннотации</string> <key>many</key> - <string>Масштаб %dx</string> + <string>Показано %d аннотаций</string> <key>other</key> - <string>Масштаб %dx</string> + <string>Показано %d аннотаций</string> </dict> + </dict> + <key>MAP_A11Y_VALUE_ROADS</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@count@</string> <key>count</key> <dict> <key>NSStringFormatSpecTypeKey</key> @@ -29,13 +33,33 @@ <key>NSStringFormatValueTypeKey</key> <string>ld</string> <key>one</key> - <string>%d аннотация видны</string> + <string>Показана %d дорога</string> <key>few</key> - <string>%d аннотации видны</string> + <string>Показано %d дороги</string> <key>many</key> - <string>%d аннотаций видны</string> + <string>Показано %d дорог</string> <key>other</key> - <string>%d аннотации видны</string> + <string>Показано %d дорог</string> + </dict> + </dict> + <key>MAP_A11Y_VALUE_ZOOM</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@level@</string> + <key>level</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>one</key> + <string>Масштаб %dx</string> + <key>few</key> + <string>Масштаб %dx</string> + <key>many</key> + <string>Масштаб %dx</string> + <key>other</key> + <string>Масштаб %dx</string> </dict> </dict> </dict> diff --git a/platform/ios/resources/sv.lproj/Localizable.stringsdict b/platform/ios/resources/sv.lproj/Localizable.stringsdict index 90115bd803..5f44d19b37 100644 --- a/platform/ios/resources/sv.lproj/Localizable.stringsdict +++ b/platform/ios/resources/sv.lproj/Localizable.stringsdict @@ -2,22 +2,26 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>MAP_A11Y_VALUE</key> + <key>MAP_A11Y_VALUE_ANNOTATIONS</key> <dict> <key>NSStringLocalizedFormatKey</key> - <string>%#@level@ -%#@count@</string> - <key>level</key> + <string>%#@count@</string> + <key>count</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> - <string>d</string> + <string>ld</string> <key>one</key> - <string>Zoom %dx</string> + <string>%d annotering synlig</string> <key>other</key> - <string>Zoom %dx</string> + <string>%d annoteringar synliga</string> </dict> + </dict> + <key>MAP_A11Y_VALUE_ROADS</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@count@</string> <key>count</key> <dict> <key>NSStringFormatSpecTypeKey</key> @@ -25,9 +29,25 @@ <key>NSStringFormatValueTypeKey</key> <string>ld</string> <key>one</key> - <string>%d annotering synlig</string> + <string>%d väg synlig</string> <key>other</key> - <string>%d annoteringar synliga</string> + <string>%d vägar synliga</string> + </dict> + </dict> + <key>MAP_A11Y_VALUE_ZOOM</key> + <dict> + <key>NSStringLocalizedFormatKey</key> + <string>%#@level@</string> + <key>level</key> + <dict> + <key>NSStringFormatSpecTypeKey</key> + <string>NSStringPluralRuleType</string> + <key>NSStringFormatValueTypeKey</key> + <string>d</string> + <key>one</key> + <string>Zooma %dx</string> + <key>other</key> + <string>Zooma %dx</string> </dict> </dict> </dict> diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index 6f2d5039be..79b02bef31 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -4620,11 +4620,6 @@ public: NSString *fallbackReuseIdentifier = MGLDefaultStyleMarkerSymbolName; NSString *fallbackIconIdentifier = [MGLAnnotationSpritePrefix stringByAppendingString:fallbackReuseIdentifier]; - // Remove the old icon from the style. - if ( ! [iconIdentifier isEqualToString:fallbackIconIdentifier]) { - _mbglMap->removeAnnotationImage(iconIdentifier.UTF8String); - } - if (annotationImage.image) { // Add the new icon to the style. diff --git a/platform/macos/CHANGELOG.md b/platform/macos/CHANGELOG.md index 1f671cb82a..0df8e9a80f 100644 --- a/platform/macos/CHANGELOG.md +++ b/platform/macos/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog for Mapbox Maps SDK for macOS -## master +## 0.7.0 ### Styles and rendering @@ -8,25 +8,31 @@ * The layout and paint properties on subclasses of `MGLStyleLayer` are now of type `NSExpression` instead of `MGLStyleValue`. A new “Predicates and Expressions” guide provides an overview of the supported operators. ([#10726](https://github.com/mapbox/mapbox-gl-native/pull/10726)) * Added an `MGLComputedShapeSource` class that allows applications to supply vector data to a style layer on a per-tile basis. ([#9983](https://github.com/mapbox/mapbox-gl-native/pull/9983)) * A style can now display smooth hillshading and customize its appearance at runtime using the `MGLHillshadeStyleLayer` class. Hillshading is based on a rasterized digital elevation model supplied by the `MGLRasterDEMSource` class. ([#10642](https://github.com/mapbox/mapbox-gl-native/pull/10642)) +* The `MGLSymbolStyleLayer.textFontNames` property can now depend on a feature’s attributes. ([#10850](https://github.com/mapbox/mapbox-gl-native/pull/10850)) * Properties such as `MGLSymbolStyleLayer.iconAllowsOverlap` and `MGLSymbolStyleLayer.iconIgnoresPlacement` now account for symbols in other sources. ([#10436](https://github.com/mapbox/mapbox-gl-native/pull/10436)) + +### Map rendering + * Improved the reliability of collision detection between symbols near the edges of tiles, as well as between symbols when the map is tilted. It is no longer necessary to enable `MGLSymbolStyleLayer.symbolAvoidsEdges` to prevent symbols in adjacent tiles from overlapping with each other. ([#10436](https://github.com/mapbox/mapbox-gl-native/pull/10436)) * Symbols can fade in and out as the map pans, rotates, or tilts. ([#10436](https://github.com/mapbox/mapbox-gl-native/pull/10436)) +* Properties such as `MGLSymbolStyleLayer.iconAllowsOverlap` and `MGLSymbolStyleLayer.iconIgnoresPlacement` now account for symbols in other sources. ([#10436](https://github.com/mapbox/mapbox-gl-native/pull/10436)) * Added the `MGLTileSourceOptionTileCoordinateBounds` option to create an `MGLTileSource` that only supplies tiles within a specific geographic bounding box. ([#11141](https://github.com/mapbox/mapbox-gl-native/pull/11141)) * Fixed an issue preventing a dynamically-added `MGLRasterStyleLayer` from drawing until the map pans. ([#10270](https://github.com/mapbox/mapbox-gl-native/pull/10270)) * Fixed an issue preventing `MGLImageSource`s from drawing on the map when the map is zoomed in and tilted. ([#10677](https://github.com/mapbox/mapbox-gl-native/pull/10677)) +* Improved the sharpness of raster tiles on Retina displays. ([#10984](https://github.com/mapbox/mapbox-gl-native/pull/10984)) +* Fixed a crash parsing a malformed style. ([#11001](https://github.com/mapbox/mapbox-gl-native/pull/11001)) +* Added the `MGLTileSourceOptionTileCoordinateBounds` option to create an `MGLTileSource` that only supplies tiles within a specific geographic bounding box. ([#11141](https://github.com/mapbox/mapbox-gl-native/pull/11141)) -### Other changes - -* Added a Hebrew localization. ([#10967](https://github.com/mapbox/mapbox-gl-native/pull/10967)) - -### Snapshots +### Map snapshots * Fixed a memory leak that occurred when creating a map snapshot. ([#10585](https://github.com/mapbox/mapbox-gl-native/pull/10585)) +* Fixed an issue that caused `MGLMapSnapshotter.pointForCoordinate` to return an incorrect value. ([#11035](https://github.com/mapbox/mapbox-gl-native/pull/11035)) -## v0.6.2 +### Other changes -* Added the `MGLTileSourceOptionTileCoordinateBounds` option to create an `MGLTileSource` that only supplies tiles within a specific geographic bounding box. ([#11141](https://github.com/mapbox/mapbox-gl-native/pull/11141)) -* Fixed an issue that caused `-[MGLMapSnapshotter pointForCoordinate:]` to return the wrong point. ([#11035](https://github.com/mapbox/mapbox-gl-native/pull/11035)) +* Added Danish and Hebrew localizations. ([#10967](https://github.com/mapbox/mapbox-gl-native/pull/10967), [#11136](https://github.com/mapbox/mapbox-gl-native/pull/11134)) +* Feature querying results now account for the `MGLSymbolStyleLayer.circleStrokeWidth` property. ([#10897](https://github.com/mapbox/mapbox-gl-native/pull/10897)) +* Added a Hebrew localization. ([#10967](https://github.com/mapbox/mapbox-gl-native/pull/10967)) ## v0.6.1 - January 16, 2018 diff --git a/platform/macos/app/da.lproj/Localizable.strings b/platform/macos/app/da.lproj/Localizable.strings new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/platform/macos/app/da.lproj/Localizable.strings diff --git a/platform/macos/macos.xcodeproj/project.pbxproj b/platform/macos/macos.xcodeproj/project.pbxproj index 4327670911..5af3d17b50 100644 --- a/platform/macos/macos.xcodeproj/project.pbxproj +++ b/platform/macos/macos.xcodeproj/project.pbxproj @@ -536,6 +536,10 @@ DACFE7971F66EA0C00630DA8 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = vi; path = vi.lproj/Foundation.stringsdict; sourceTree = "<group>"; }; DAD165721CF4CD7A001FF4B9 /* MGLShapeCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLShapeCollection.h; sourceTree = "<group>"; }; DAD165731CF4CD7A001FF4B9 /* MGLShapeCollection.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MGLShapeCollection.mm; sourceTree = "<group>"; }; + DAD88E03202ACF5900AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = "<group>"; }; + DAD88E04202ACF7C00AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Foundation.strings; sourceTree = "<group>"; }; + DAD88E05202ACF8200AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = da; path = da.lproj/Foundation.stringsdict; sourceTree = "<group>"; }; + DAD88E06202ACF9200AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = "<group>"; }; DAE6C2E11CC304F900DB3429 /* Credits.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; path = Credits.rtf; sourceTree = "<group>"; }; DAE6C2E31CC3050F00DB3429 /* DroppedPinAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DroppedPinAnnotation.h; sourceTree = "<group>"; }; DAE6C2E41CC3050F00DB3429 /* DroppedPinAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DroppedPinAnnotation.m; sourceTree = "<group>"; }; @@ -1415,6 +1419,7 @@ bg, ar, he, + da, ); mainGroup = DA839E891CC2E3400062CAFB; productRefGroup = DA839E931CC2E3400062CAFB /* Products */; @@ -1653,6 +1658,7 @@ DA3389611FA3EDCE001EA329 /* bg */, DA80E95D1FE84A300065FC9B /* ar */, DACBC6082011885800C4D7E2 /* he */, + DAD88E03202ACF5900AAA536 /* da */, ); name = Localizable.strings; sourceTree = "<group>"; @@ -1704,6 +1710,7 @@ DA704CBF1F637548004B3F28 /* hu */, DA3389641FA3EE00001EA329 /* bg */, DACBC60A2011889E00C4D7E2 /* he */, + DAD88E06202ACF9200AAA536 /* da */, ); name = Localizable.strings; sourceTree = "<group>"; @@ -1727,6 +1734,7 @@ DA3389601FA3EAC4001EA329 /* pt-BR */, DA3389621FA3EDEF001EA329 /* bg */, DACBC6092011888C00C4D7E2 /* he */, + DAD88E04202ACF7C00AAA536 /* da */, ); name = Foundation.strings; sourceTree = "<group>"; @@ -1749,6 +1757,7 @@ DA3389631FA3EDF5001EA329 /* bg */, DA33896C1FA3EF51001EA329 /* hu */, DA80E95F1FE84A540065FC9B /* ar */, + DAD88E05202ACF8200AAA536 /* da */, ); name = Foundation.stringsdict; sourceTree = "<group>"; diff --git a/platform/macos/sdk/da.lproj/Localizable.strings b/platform/macos/sdk/da.lproj/Localizable.strings new file mode 100644 index 0000000000..1c9dcaa68d --- /dev/null +++ b/platform/macos/sdk/da.lproj/Localizable.strings @@ -0,0 +1,27 @@ +/* User-friendly error description */ +"LOAD_MAP_FAILED_DESC" = "Kortet kunne ikke indlæses, fordi der opstod en ukendt fejl."; + +/* User-friendly error description */ +"LOAD_STYLE_FAILED_DESC" = "Kortet kunne ikke indlæses, fordi benævnelsen ikke kan indlæses."; + +/* Accessibility title */ +"MAP_A11Y_TITLE" = "Mapbox"; + +/* User-friendly error description */ +"PARSE_STYLE_FAILED_DESC" = "Kortet kunne ikke indlæses, fordi benævnelsen er beskadiget."; + +/* User-friendly error description */ +"STYLE_NOT_FOUND_DESC" = "Kortet kunne ikke indlæses, fordi benævnelsen ikke kan findes eller er uforenelig."; + +/* Label of Zoom In button */ +"ZOOM_IN_LABEL" = "+"; + +/* Tooltip of Zoom In button */ +"ZOOM_IN_TOOLTIP" = "Zoom Ind"; + +/* Label of Zoom Out button; U+2212 MINUS SIGN */ +"ZOOM_OUT_LABEL" = "−"; + +/* Tooltip of Zoom Out button */ +"ZOOM_OUT_TOOLTIP" = "Zoom Ud"; + diff --git a/platform/macos/sdk/hu.lproj/Localizable.strings b/platform/macos/sdk/hu.lproj/Localizable.strings index b3724190cb..062b1f5cea 100644 --- a/platform/macos/sdk/hu.lproj/Localizable.strings +++ b/platform/macos/sdk/hu.lproj/Localizable.strings @@ -1,8 +1,8 @@ -/* User-friendly error description */ +/* User-friendly error description */ "LOAD_MAP_FAILED_DESC" = "Egy ismeretlen hiba miatt nem sikerült betölteni a térképet."; /* User-friendly error description */ -"LOAD_STYLE_FAILED_DESC" = "Nem sikerült betölteni a térképet, mert a stílus nem tölthető be."; +"LOAD_STYLE_FAILED_DESC" = "Nem sikerült betölteni a térképet, mert a stílust nem lehetett betölteni."; /* Accessibility title */ "MAP_A11Y_TITLE" = "Mapbox"; diff --git a/platform/macos/sdk/ru.lproj/Localizable.strings b/platform/macos/sdk/ru.lproj/Localizable.strings index 067e05b14e..8554c9ebd1 100644 --- a/platform/macos/sdk/ru.lproj/Localizable.strings +++ b/platform/macos/sdk/ru.lproj/Localizable.strings @@ -1,8 +1,8 @@ -/* User-friendly error description */ -"LOAD_MAP_FAILED_DESC" = "Не удалось загрузит карту из-за неизвестной ошибки."; +/* User-friendly error description */ +"LOAD_MAP_FAILED_DESC" = "Не удалось загрузить карту из-за неизвестной ошибки."; /* User-friendly error description */ -"LOAD_STYLE_FAILED_DESC" = "Не удалось загрузить карту так как невозможно загрузить стиль."; +"LOAD_STYLE_FAILED_DESC" = "Не удалось загрузить карту из-за ошибки загрузки стиля."; /* Accessibility title */ "MAP_A11Y_TITLE" = "Mapbox"; |