Add number format expression (#15424)
* [android] add number format expression
This commit is contained in:
@@ -38,12 +38,15 @@ import java.util.Random;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.FormatOption.formatFontScale;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.FormatOption.formatTextColor;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.FormatOption.formatTextFont;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.NumberFormatOption.currency;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.NumberFormatOption.locale;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.concat;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.format;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.formatEntry;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.get;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.literal;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.match;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.numberFormat;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.rgb;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.stop;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.switchCase;
|
||||
@@ -72,8 +75,6 @@ import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textSize;
|
||||
*/
|
||||
public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap.OnMapClickListener, OnMapReadyCallback {
|
||||
|
||||
private static final String MARKER_SOURCE = "marker-source";
|
||||
private static final String MARKER_LAYER = "marker-layer";
|
||||
private static final String ID_FEATURE_PROPERTY = "id";
|
||||
private static final String SELECTED_FEATURE_PROPERTY = "selected";
|
||||
private static final String TITLE_FEATURE_PROPERTY = "title";
|
||||
@@ -81,8 +82,13 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap.
|
||||
private static final String[] NORMAL_FONT_STACK = new String[] {"DIN Offc Pro Regular", "Arial Unicode MS Regular"};
|
||||
private static final String[] BOLD_FONT_STACK = new String[] {"DIN Offc Pro Bold", "Arial Unicode MS Regular"};
|
||||
|
||||
// layer & source constants
|
||||
private static final String MARKER_SOURCE = "marker-source";
|
||||
private static final String MARKER_LAYER = "marker-layer";
|
||||
private static final String MAPBOX_SIGN_SOURCE = "mapbox-sign-source";
|
||||
private static final String MAPBOX_SIGN_LAYER = "mapbox-sign-layer";
|
||||
private static final String NUMBER_FORMAT_SOURCE = "mapbox-number-source";
|
||||
private static final String NUMBER_FORMAT_LAYER = "mapbox-number-layer";
|
||||
|
||||
private static final Expression TEXT_FIELD_EXPRESSION =
|
||||
switchCase(toBool(get(SELECTED_FEATURE_PROPERTY)),
|
||||
@@ -108,6 +114,7 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap.
|
||||
private FeatureCollection markerCollection;
|
||||
private SymbolLayer markerSymbolLayer;
|
||||
private SymbolLayer mapboxSignSymbolLayer;
|
||||
private SymbolLayer numberFormatSymbolLayer;
|
||||
private MapboxMap mapboxMap;
|
||||
private MapView mapView;
|
||||
|
||||
@@ -177,11 +184,20 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap.
|
||||
mapboxSignSymbolLayer = new SymbolLayer(MAPBOX_SIGN_LAYER, MAPBOX_SIGN_SOURCE);
|
||||
shuffleMapboxSign();
|
||||
|
||||
// number format layer
|
||||
Source numberFormatSource = new GeoJsonSource(NUMBER_FORMAT_SOURCE, Point.fromLngLat(4.92756, 52.3516));
|
||||
numberFormatSymbolLayer = new SymbolLayer(NUMBER_FORMAT_LAYER, NUMBER_FORMAT_SOURCE);
|
||||
numberFormatSymbolLayer.setProperties(
|
||||
textField(
|
||||
numberFormat(123.456789, locale("nl-NL"), currency("EUR"))
|
||||
)
|
||||
);
|
||||
|
||||
mapboxMap.setStyle(new Style.Builder()
|
||||
.fromUri("asset://streets.json")
|
||||
.withImage("Car", Objects.requireNonNull(carBitmap), false)
|
||||
.withSources(markerSource, mapboxSignSource)
|
||||
.withLayers(markerSymbolLayer, mapboxSignSymbolLayer)
|
||||
.withSources(markerSource, mapboxSignSource, numberFormatSource)
|
||||
.withLayers(markerSymbolLayer, mapboxSignSymbolLayer, numberFormatSymbolLayer)
|
||||
);
|
||||
|
||||
// Set a click-listener so we can manipulate the map
|
||||
@@ -205,7 +221,7 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap.
|
||||
// validate symbol flicker regression for #13407
|
||||
markerSymbolLayer.setProperties(iconOpacity(match(
|
||||
get(ID_FEATURE_PROPERTY), literal(1.0f),
|
||||
stop(feature.getStringProperty("id"), selected ? 0.3f : 1.0f)
|
||||
stop(feature.getStringProperty("id"), selected ? 0.3f : 1.0f)
|
||||
)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user