diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main')
5 files changed, 186 insertions, 153 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/BuildingFillExtrusionActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/BuildingFillExtrusionActivity.java index 609910892b..c86e995956 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/BuildingFillExtrusionActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/BuildingFillExtrusionActivity.java @@ -8,8 +8,7 @@ import android.view.MenuItem; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.style.functions.Function; -import com.mapbox.mapboxsdk.style.functions.stops.IdentityStops; +import com.mapbox.mapboxsdk.style.expressions.Expression; import com.mapbox.mapboxsdk.style.layers.FillExtrusionLayer; import com.mapbox.mapboxsdk.style.layers.Property; import com.mapbox.mapboxsdk.style.layers.PropertyFactory; @@ -57,8 +56,8 @@ public class BuildingFillExtrusionActivity extends AppCompatActivity { fillExtrusionLayer.setMinZoom(15); fillExtrusionLayer.setProperties( fillExtrusionColor(Color.LTGRAY), - fillExtrusionHeight(Function.property("height", new IdentityStops<Float>())), - fillExtrusionBase(Function.property("min_height", new IdentityStops<Float>())), + fillExtrusionHeight(Expression.get("height")), + fillExtrusionBase(Expression.get("min_height")), fillExtrusionOpacity(0.9f) ); mapboxMap.addLayer(fillExtrusionLayer); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DataDrivenStyleActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DataDrivenStyleActivity.java index cbac62bcc1..eebe95a411 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DataDrivenStyleActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DataDrivenStyleActivity.java @@ -1,6 +1,5 @@ package com.mapbox.mapboxsdk.testapp.activity.style; -import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Menu; @@ -23,13 +22,14 @@ import java.io.IOException; import timber.log.Timber; -import static com.mapbox.mapboxsdk.style.expressions.Expression.color; import static com.mapbox.mapboxsdk.style.expressions.Expression.exponential; import static com.mapbox.mapboxsdk.style.expressions.Expression.get; import static com.mapbox.mapboxsdk.style.expressions.Expression.interpolate; import static com.mapbox.mapboxsdk.style.expressions.Expression.linear; 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.rgb; +import static com.mapbox.mapboxsdk.style.expressions.Expression.rgba; import static com.mapbox.mapboxsdk.style.expressions.Expression.step; import static com.mapbox.mapboxsdk.style.expressions.Expression.stop; import static com.mapbox.mapboxsdk.style.expressions.Expression.zoom; @@ -165,7 +165,6 @@ public class DataDrivenStyleActivity extends AppCompatActivity { } } - private void addExponentialZoomFunction() { Timber.i("Add exponential zoom function"); FillLayer layer = mapboxMap.getLayerAs("water"); @@ -174,9 +173,9 @@ public class DataDrivenStyleActivity extends AppCompatActivity { fillColor( interpolate( exponential(0.5f), zoom(), - stop(1, color(Color.RED)), - stop(5, color(Color.BLUE)), - stop(10, color(Color.GREEN)) + stop(1, rgb(255, 0, 0)), + stop(5, rgb(0, 0, 255)), + stop(10, rgb(0, 255, 0)) ) ) ); @@ -191,10 +190,10 @@ public class DataDrivenStyleActivity extends AppCompatActivity { layer.setProperties( fillColor( step(zoom(), - color(Color.CYAN), - stop(1, color(Color.RED)), - stop(5, color(Color.BLUE)), - stop(10, color(Color.GREEN)) + rgba(0.0f, 255.0f, 255.0f, 1.0f), + stop(1, rgba(255.0f, 0.0f, 0.0f, 1.0f)), + stop(5, rgba(0.0f, 0.0f, 255.0f, 1.0f)), + stop(10, rgba(0.0f, 255.0f, 0.0f, 1.0f)) ) ) ); @@ -211,9 +210,9 @@ public class DataDrivenStyleActivity extends AppCompatActivity { interpolate( exponential(0.5f), get("stroke-width"), - stop(1f, color(Color.RED)), - stop(5f, color(Color.BLUE)), - stop(10f, color(Color.GREEN)) + stop(1f, rgba(255.0f, 0.0f, 0.0f, 1.0f)), + stop(5f, rgba(0.0f, 0.0f, 255.0f, 1.0f)), + stop(10f, rgba(0.0f, 255.0f, 0.0f, 1.0f)) ) ) ); @@ -229,10 +228,10 @@ public class DataDrivenStyleActivity extends AppCompatActivity { fillColor( match( get("name"), - literal("Westerpark"), color(Color.RED), - literal("Jordaan"), color(Color.BLUE), - literal("Prinseneiland"), color(Color.GREEN), - color(Color.CYAN) + literal("Westerpark"), rgba(255.0f, 0.0f, 0.0f, 1.0f), + literal("Jordaan"), rgba(0.0f, 0.0f, 255.0f, 1.0f), + literal("Prinseneiland"), rgba(0.0f, 255.0f, 0.0f, 1.0f), + rgba(0.0f, 255.0f, 255.0f, 1.0f) ) ) ); @@ -261,10 +260,10 @@ public class DataDrivenStyleActivity extends AppCompatActivity { fillColor( step( get("stroke-width"), - color(Color.CYAN), - stop(1f, color(Color.RED)), - stop(2f, color(Color.BLUE)), - stop(3f, color(Color.GREEN)) + rgba(0.0f, 255.0f, 255.0f, 1.0f), + stop(1f, rgba(255.0f, 0.0f, 0.0f, 1.0f)), + stop(2f, rgba(0.0f, 0.0f, 255.0f, 1.0f)), + stop(3f, rgba(0.0f, 255.0f, 0.0f, 1.0f)) ) ) ); @@ -283,24 +282,24 @@ public class DataDrivenStyleActivity extends AppCompatActivity { zoom(), stop(12, step( get("stroke-width"), - color(Color.BLACK), - stop(1f, color(Color.RED)), - stop(2f, color(Color.WHITE)), - stop(3f, color(Color.BLUE)) + rgba(255.0f, 255.0f, 255.0f, 1.0f), + stop(1f, rgba(255.0f, 0.0f, 0.0f, 1.0f)), + stop(2f, rgba(0.0f, 0.0f, 0.0f, 1.0f)), + stop(3f, rgba(0.0f, 0.0f, 255.0f, 1.0f)) )), stop(15, step( get("stroke-width"), - color(Color.BLACK), - stop(1f, color(Color.YELLOW)), - stop(2f, color(Color.LTGRAY)), - stop(3f, color(Color.CYAN)) + rgba(255.0f, 255.0f, 255.0f, 1.0f), + stop(1f, rgba(255.0f, 255.0f, 0.0f, 1.0f)), + stop(2f, rgba(211.0f, 211.0f, 211.0f, 1.0f)), + stop(3f, rgba(0.0f, 255.0f, 255.0f, 1.0f)) )), stop(18, step( get("stroke-width"), - color(Color.BLACK), - stop(1f, color(Color.WHITE)), - stop(2f, color(Color.GRAY)), - stop(3f, color(Color.GREEN))) + rgba(255.0f, 255.0f, 255.0f, 1.0f), + stop(1f, rgba(0.0f, 0.0f, 0.0f, 1.0f)), + stop(2f, rgba(128.0f, 128.0f, 128.0f, 1.0f)), + stop(3f, rgba(0.0f, 255.0f, 0.0f, 1.0f))) ) ) ) @@ -320,24 +319,24 @@ public class DataDrivenStyleActivity extends AppCompatActivity { zoom(), stop(12, step( get("stroke-width"), - color(Color.BLACK), - stop(1f, color(Color.RED)), - stop(2f, color(Color.WHITE)), - stop(3f, color(Color.BLUE)) + rgba(255.0f, 255.0f, 255.0f, 1.0f), + stop(1f, rgba(255.0f, 0.0f, 0.0f, 1.0f)), + stop(2f, rgba(0.0f, 0.0f, 0.0f, 1.0f)), + stop(3f, rgba(0.0f, 0.0f, 255.0f, 1.0f)) )), stop(15, step( get("stroke-width"), - color(Color.BLACK), - stop(1f, color(Color.YELLOW)), - stop(2f, color(Color.LTGRAY)), - stop(3f, color(Color.CYAN)) + rgba(255.0f, 255.0f, 255.0f, 1.0f), + stop(1f, rgba(255.0f, 255.0f, 0.0f, 1.0f)), + stop(2f, rgba(211.0f, 211.0f, 211.0f, 1.0f)), + stop(3f, rgba(0.0f, 255.0f, 255.0f, 1.0f)) )), stop(18, step( get("stroke-width"), - color(Color.BLACK), - stop(1f, color(Color.WHITE)), - stop(2f, color(Color.GRAY)), - stop(3f, color(Color.GREEN)) + rgba(255.0f, 255.0f, 255.0f, 1.0f), + stop(1f, rgba(0.0f, 0.0f, 0.0f, 1.0f)), + stop(2f, rgba(128.0f, 128.0f, 128.0f, 1.0f)), + stop(3f, rgba(0.0f, 255.0f, 0.0f, 1.0f)) )) ) ) @@ -353,89 +352,89 @@ public class DataDrivenStyleActivity extends AppCompatActivity { layer.setProperties( fillColor( step(zoom(), - color(Color.BLACK), + rgba(255.0f, 255.0f, 255.0f, 1.0f), stop(7f, match( get("name"), - literal("Westerpark"), color(Color.RED), - color(Color.BLACK) + literal("Westerpark"), rgba(255.0f, 0.0f, 0.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(8f, match( get("name"), - literal("Westerpark"), color(Color.BLUE), - color(Color.BLACK) + literal("Westerpark"), rgba(0.0f, 0.0f, 255.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(9f, match( get("name"), - literal("Westerpark"), color(Color.RED), - color(Color.BLACK) + literal("Westerpark"), rgba(255.0f, 0.0f, 0.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(10f, match( get("name"), - literal("Westerpark"), color(Color.BLUE), - color(Color.BLACK) + literal("Westerpark"), rgba(0.0f, 0.0f, 255.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(11f, match( get("name"), - literal("Westerpark"), color(Color.RED), - color(Color.BLACK) + literal("Westerpark"), rgba(255.0f, 0.0f, 0.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(12f, match( get("name"), - literal("Westerpark"), color(Color.BLUE), - color(Color.BLACK) + literal("Westerpark"), rgba(0.0f, 0.0f, 255.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(13f, match( get("name"), - literal("Westerpark"), color(Color.RED), - color(Color.BLACK) + literal("Westerpark"), rgba(255.0f, 0.0f, 0.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(14f, match( get("name"), - literal("Westerpark"), color(Color.BLUE), - literal("Jordaan"), color(Color.GREEN), - literal("PrinsenEiland"), color(Color.WHITE), - color(Color.BLACK) + literal("Westerpark"), rgba(0.0f, 0.0f, 255.0f, 1.0f), + literal("Jordaan"), rgba(0.0f, 255.0f, 0.0f, 1.0f), + literal("PrinsenEiland"), rgba(0.0f, 0.0f, 0.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(15f, match( get("name"), - literal("Westerpark"), color(Color.RED), - color(Color.BLACK) + literal("Westerpark"), rgba(255.0f, 0.0f, 0.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(16f, match( get("name"), - literal("Westerpark"), color(Color.BLUE), - color(Color.BLACK) + literal("Westerpark"), rgba(0.0f, 0.0f, 255.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(17f, match( get("name"), - literal("Westerpark"), color(Color.RED), - color(Color.BLACK) + literal("Westerpark"), rgba(255.0f, 0.0f, 0.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(18f, match( get("name"), - literal("Westerpark"), color(Color.BLUE), - literal("Jordaan"), color(Color.CYAN), - color(Color.BLACK) + literal("Westerpark"), rgba(0.0f, 0.0f, 255.0f, 1.0f), + literal("Jordaan"), rgba(0.0f, 255.0f, 255.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(19f, match( get("name"), - literal("Westerpark"), color(Color.RED), - color(Color.BLACK) + literal("Westerpark"), rgba(255.0f, 0.0f, 0.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(20f, match( get("name"), - literal("Westerpark"), color(Color.BLUE), - color(Color.BLACK) + literal("Westerpark"), rgba(0.0f, 0.0f, 255.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(21f, match( get("name"), - literal("Westerpark"), color(Color.RED), - color(Color.BLACK) + literal("Westerpark"), rgba(255.0f, 0.0f, 0.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )), stop(22f, match( get("name"), - literal("Westerpark"), color(Color.BLUE), - color(Color.BLACK) + literal("Westerpark"), rgba(0.0f, 0.0f, 255.0f, 1.0f), + rgba(255.0f, 255.0f, 255.0f, 1.0f) )) ) ) @@ -461,8 +460,8 @@ public class DataDrivenStyleActivity extends AppCompatActivity { // Add a fill layer mapboxMap.addLayer(new FillLayer(AMSTERDAM_PARKS_LAYER, source.getId()) .withProperties( - fillColor(Color.BLACK), - fillOutlineColor(Color.BLUE), + fillColor(rgba(0.0f, 0.0f, 0.0f, 0.5f)), + fillOutlineColor(rgb(0, 0, 255)), fillAntialias(true) ) ); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java index ca4176be6e..5a30d9ce30 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java @@ -20,6 +20,7 @@ import com.mapbox.geojson.FeatureCollection; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.style.expressions.Expression; import com.mapbox.mapboxsdk.style.layers.Filter; import com.mapbox.mapboxsdk.style.layers.SymbolLayer; import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; @@ -27,8 +28,8 @@ import com.mapbox.mapboxsdk.style.sources.Source; import com.mapbox.mapboxsdk.testapp.R; import com.mapbox.mapboxsdk.testapp.utils.ResourceUtils; - import java.io.IOException; +import java.lang.ref.WeakReference; import java.util.HashMap; import java.util.List; @@ -39,8 +40,12 @@ import static com.mapbox.mapboxsdk.style.expressions.Expression.division; import static com.mapbox.mapboxsdk.style.expressions.Expression.downcase; 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.number; import static com.mapbox.mapboxsdk.style.expressions.Expression.pi; import static com.mapbox.mapboxsdk.style.expressions.Expression.product; +import static com.mapbox.mapboxsdk.style.expressions.Expression.rgba; +import static com.mapbox.mapboxsdk.style.expressions.Expression.string; import static com.mapbox.mapboxsdk.style.expressions.Expression.upcase; import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ANCHOR_BOTTOM; import static com.mapbox.mapboxsdk.style.layers.Property.TEXT_ANCHOR_TOP; @@ -50,6 +55,7 @@ import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconOffset; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconSize; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textAnchor; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textColor; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textField; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textSize; @@ -196,27 +202,32 @@ public class SymbolGeneratorActivity extends AppCompatActivity implements OnMapR private static class LoadDataTask extends AsyncTask<Void, Void, FeatureCollection> { - private SymbolGeneratorActivity activity; + private WeakReference<SymbolGeneratorActivity> activity; LoadDataTask(SymbolGeneratorActivity activity) { - this.activity = activity; + this.activity = new WeakReference<>(activity); } @Override protected FeatureCollection doInBackground(Void... params) { - try { - // read local geojson from raw folder - String tinyCountriesJson = ResourceUtils.readRawResource(activity, R.raw.tiny_countries); - return FeatureCollection.fromJson(tinyCountriesJson); - - } catch (IOException exception) { - return null; + Context context = activity.get(); + if (context != null) { + try { + // read local geojson from raw folder + String tinyCountriesJson = ResourceUtils.readRawResource(context, R.raw.tiny_countries); + return FeatureCollection.fromJson(tinyCountriesJson); + + } catch (IOException exception) { + Timber.e(exception); + } } + return null; } @Override protected void onPostExecute(FeatureCollection featureCollection) { super.onPostExecute(featureCollection); + SymbolGeneratorActivity activity = this.activity.get(); if (featureCollection == null || activity == null) { return; } @@ -226,37 +237,64 @@ public class SymbolGeneratorActivity extends AppCompatActivity implements OnMapR } public void onDataLoaded(@NonNull FeatureCollection featureCollection) { - // add a geojson to the map - Source source = new GeoJsonSource(SOURCE_ID, featureCollection); - mapboxMap.addSource(source); + // create expressions + Expression iconImageExpression = string(get(literal(FEATURE_ID))); + Expression iconSizeExpression = division(number(get(literal(FEATURE_RANK))), literal(2.0f)); + Expression textSizeExpression = product(get(literal(FEATURE_RANK)), pi()); + Expression textFieldExpression = concat(upcase(literal("a ")), upcase(string(get(literal(FEATURE_TYPE)))), + downcase(literal(" IN ")), string(get(literal(FEATURE_REGION))) + ); + Expression textColorExpression = match(get(literal(FEATURE_RANK)), + literal(1), rgba(255, 0, 0, 1.0f), + literal(2), rgba(0, 0, 255.0f, 1.0f), + rgba(0.0f, 255.0f, 0.0f, 1.0f) + ); - // create layer use - mapboxMap.addLayer(new SymbolLayer(LAYER_ID, SOURCE_ID) - .withProperties( + rgba( + division(literal(255), get(FEATURE_RANK)), + literal(0.0f), + literal(0.0f), + literal(1.0f) + ); + // create symbol layer + SymbolLayer symbolLayer = new SymbolLayer(LAYER_ID, SOURCE_ID) + .withProperties( // icon configuration - iconImage(get(literal(FEATURE_ID))), + iconImage(iconImageExpression), iconAllowOverlap(false), - iconSize( - division(get(literal(FEATURE_RANK)), literal(2)) - ), + iconSize(iconSizeExpression), iconAnchor(ICON_ANCHOR_BOTTOM), iconOffset(new Float[] {0.0f, -5.0f}), // text field configuration - textField( - concat( - upcase(literal("a ")), - get(literal(FEATURE_TYPE)), - downcase(literal(" IN ")), - get(literal(FEATURE_REGION)) - ) - ), - textSize( - product(get(literal(FEATURE_RANK)), pi()) - ), - textAnchor(TEXT_ANCHOR_TOP) - ) + textField(textFieldExpression), + textSize(textSizeExpression), + textAnchor(TEXT_ANCHOR_TOP), + textColor(textColorExpression) + ); + + // add a geojson source to the map + Source source = new GeoJsonSource(SOURCE_ID, featureCollection); + mapboxMap.addSource(source); + + // add symbol layer + mapboxMap.addLayer(symbolLayer); + + // get expressions + Expression iconImageExpressionResult = symbolLayer.getIconImage().getExpression(); + Expression iconSizeExpressionResult = symbolLayer.getIconSize().getExpression(); + Expression textSizeExpressionResult = symbolLayer.getTextSize().getExpression(); + Expression textFieldExpressionResult = symbolLayer.getTextField().getExpression(); + Expression textColorExpressionResult = symbolLayer.getTextColor().getExpression(); + + // reset expressions + symbolLayer.setProperties( + iconImage(iconImageExpressionResult), + iconSize(iconSizeExpressionResult), + textSize(textSizeExpressionResult), + textField(textFieldExpressionResult), + textColor(textColorExpressionResult) ); new GenerateSymbolTask(mapboxMap, this).execute(featureCollection); @@ -265,27 +303,29 @@ public class SymbolGeneratorActivity extends AppCompatActivity implements OnMapR private static class GenerateSymbolTask extends AsyncTask<FeatureCollection, Void, HashMap<String, Bitmap>> { private MapboxMap mapboxMap; - private Context context; + private WeakReference<Context> context; GenerateSymbolTask(MapboxMap mapboxMap, Context context) { this.mapboxMap = mapboxMap; - this.context = context; + this.context = new WeakReference<>(context); } @SuppressWarnings("WrongThread") @Override protected HashMap<String, Bitmap> doInBackground(FeatureCollection... params) { - FeatureCollection featureCollection = params[0]; - HashMap<String, Bitmap> imagesMap = new HashMap<>(); - for (Feature feature : featureCollection.features()) { - String countryName = feature.getStringProperty(FEATURE_ID); - TextView textView = new TextView(context); - textView.setBackgroundColor(context.getResources().getColor(R.color.blueAccent)); - textView.setPadding(10, 5, 10, 5); - textView.setTextColor(Color.WHITE); - textView.setText(countryName); - imagesMap.put(countryName, SymbolGenerator.generate(textView)); + Context context = this.context.get(); + List<Feature> features = params[0].features(); + if (context != null && features != null) { + for (Feature feature : features) { + String countryName = feature.getStringProperty(FEATURE_ID); + TextView textView = new TextView(context); + textView.setBackgroundColor(context.getResources().getColor(R.color.blueAccent)); + textView.setPadding(10, 5, 10, 5); + textView.setTextColor(Color.WHITE); + textView.setText(countryName); + imagesMap.put(countryName, SymbolGenerator.generate(textView)); + } } return imagesMap; } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/ZoomFunctionSymbolLayerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/ZoomFunctionSymbolLayerActivity.java index 180e2e726a..df06c9c42d 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/ZoomFunctionSymbolLayerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/ZoomFunctionSymbolLayerActivity.java @@ -22,11 +22,13 @@ import java.util.List; import timber.log.Timber; -import static com.mapbox.mapboxsdk.style.functions.Function.property; -import static com.mapbox.mapboxsdk.style.functions.Function.zoom; -import static com.mapbox.mapboxsdk.style.functions.stops.Stop.stop; -import static com.mapbox.mapboxsdk.style.functions.stops.Stops.categorical; -import static com.mapbox.mapboxsdk.style.functions.stops.Stops.interval; +import static com.mapbox.mapboxsdk.style.expressions.Expression.get; +import static com.mapbox.mapboxsdk.style.expressions.Expression.interpolate; +import static com.mapbox.mapboxsdk.style.expressions.Expression.linear; +import static com.mapbox.mapboxsdk.style.expressions.Expression.literal; +import static com.mapbox.mapboxsdk.style.expressions.Expression.stop; +import static com.mapbox.mapboxsdk.style.expressions.Expression.switchCase; +import static com.mapbox.mapboxsdk.style.expressions.Expression.zoom; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconAllowOverlap; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconSize; @@ -101,20 +103,16 @@ public class ZoomFunctionSymbolLayerActivity extends AppCompatActivity { layer = new SymbolLayer(LAYER_ID, SOURCE_ID); layer.setProperties( iconImage( - zoom( - interval( - stop(ZOOM_STOP_MIN_VALUE, iconImage(BUS_MAKI_ICON_ID)), - stop(ZOOM_STOP_MAX_VALUE, iconImage(CAFE_MAKI_ICON_ID)) - ) - ) + interpolate( + linear(), zoom(), + stop(ZOOM_STOP_MIN_VALUE, BUS_MAKI_ICON_ID), + stop(ZOOM_STOP_MAX_VALUE, CAFE_MAKI_ICON_ID) + ) ), iconSize( - property( - KEY_PROPERTY_SELECTED, - categorical( - stop(true, iconSize(3.0f)), - stop(false, iconSize(1.0f)) - ) + switchCase( + get(KEY_PROPERTY_SELECTED), literal(3.0f), + literal(1.0f) ) ), iconAllowOverlap(true) diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/ResourceUtils.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/ResourceUtils.java index f0cca57e10..b61f9c4579 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/ResourceUtils.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/ResourceUtils.java @@ -16,17 +16,14 @@ public class ResourceUtils { public static String readRawResource(Context context, @RawRes int rawResource) throws IOException { String json = ""; if (context != null) { - InputStream is = context.getResources().openRawResource(rawResource); Writer writer = new StringWriter(); char[] buffer = new char[1024]; - try { + try (InputStream is = context.getResources().openRawResource(rawResource)) { Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); int numRead; while ((numRead = reader.read(buffer)) != -1) { writer.write(buffer, 0, numRead); } - } finally { - is.close(); } json = writer.toString(); } |