diff options
author | tobrun <tobrun.van.nuland@gmail.com> | 2018-06-25 17:22:13 +0200 |
---|---|---|
committer | Tobrun <tobrun@mapbox.com> | 2018-06-26 13:20:44 +0200 |
commit | 50ff53ae3b50cf7eb0d33a62c8ed68fc8e93270f (patch) | |
tree | 74412eecf2f92e455a3c3cf10bbbc67261904388 | |
parent | d176e9bb46c4ab539e6cc5f6c7d17bc68d95e205 (diff) | |
download | qtlocation-mapboxgl-50ff53ae3b50cf7eb0d33a62c8ed68fc8e93270f.tar.gz |
[android] - fix geojson example, internal logic change with expressions conversion
2 files changed, 53 insertions, 12 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java index 655d4a8936..a14a2b9589 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java @@ -5,7 +5,6 @@ import android.os.Bundle; import android.support.v4.content.res.ResourcesCompat; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; - import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapView; @@ -16,23 +15,34 @@ import com.mapbox.mapboxsdk.style.layers.SymbolLayer; import com.mapbox.mapboxsdk.style.sources.GeoJsonOptions; import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; import com.mapbox.mapboxsdk.testapp.R; +import com.mapbox.mapboxsdk.utils.BitmapUtils; +import timber.log.Timber; import java.net.MalformedURLException; import java.net.URL; -import timber.log.Timber; - import static com.mapbox.mapboxsdk.style.expressions.Expression.all; +import static com.mapbox.mapboxsdk.style.expressions.Expression.division; +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.gt; import static com.mapbox.mapboxsdk.style.expressions.Expression.gte; +import static com.mapbox.mapboxsdk.style.expressions.Expression.has; +import static com.mapbox.mapboxsdk.style.expressions.Expression.interpolate; import static com.mapbox.mapboxsdk.style.expressions.Expression.literal; import static com.mapbox.mapboxsdk.style.expressions.Expression.lt; +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.toNumber; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleColor; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconColor; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconSize; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textAllowOverlap; 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.textIgnorePlacement; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textSize; /** @@ -56,7 +66,11 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { mapView.getMapAsync(map -> { mapboxMap = map; mapboxMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(37.7749, 122.4194), 0)); - + mapboxMap.addImage( + "icon-id", + BitmapUtils.getBitmapFromDrawable(getResources().getDrawable(R.drawable.ic_hearing_black_24dp)), + true + ); // Add a clustered source with some layers addClusteredGeoJsonSource(); }); @@ -139,7 +153,22 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { }; SymbolLayer unclustered = new SymbolLayer("unclustered-points", "earthquakes"); - unclustered.setProperties(iconImage("marker-15")); + unclustered.setProperties( + iconImage("icon-id"), + iconSize( + division( + get("mag"), literal(4.0f) + ) + ), + iconColor( + interpolate(exponential(1), get("mag"), + stop(2.0, rgb(0, 255, 0)), + stop(4.5, rgb(0, 0, 255)), + stop(7.0, rgb(255, 0, 0)) + ) + ) + ); + mapboxMap.addLayer(unclustered); for (int i = 0; i < layers.length; i++) { @@ -153,11 +182,12 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { Expression pointCount = toNumber(get("point_count")); circles.setFilter( i == 0 - ? gte(pointCount, literal(layers[i][0])) : - all( - gte(pointCount, literal(layers[i][0])), - lt(pointCount, literal(layers[i - 1][0])) - ) + ? all(has("point_count"), + gte(pointCount, literal(layers[i][0])) + ) : all(has("point_count"), + gt(pointCount, literal(layers[i][0])), + lt(pointCount, literal(layers[i - 1][0])) + ) ); mapboxMap.addLayer(circles); } @@ -165,9 +195,11 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { // Add the count labels SymbolLayer count = new SymbolLayer("count", "earthquakes"); count.setProperties( - textField(get("point_count")), + textField(Expression.toString(get("point_count"))), textSize(12f), - textColor(Color.WHITE) + textColor(Color.WHITE), + textIgnorePlacement(true), + textAllowOverlap(true) ); mapboxMap.addLayer(count); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_hearing_black_24dp.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_hearing_black_24dp.xml new file mode 100644 index 0000000000..f456a82d00 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_hearing_black_24dp.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0"> + <path + android:fillColor="#FF000000" + android:pathData="M17,20c-0.29,0 -0.56,-0.06 -0.76,-0.15 -0.71,-0.37 -1.21,-0.88 -1.71,-2.38 -0.51,-1.56 -1.47,-2.29 -2.39,-3 -0.79,-0.61 -1.61,-1.24 -2.32,-2.53C9.29,10.98 9,9.93 9,9c0,-2.8 2.2,-5 5,-5s5,2.2 5,5h2c0,-3.93 -3.07,-7 -7,-7S7,5.07 7,9c0,1.26 0.38,2.65 1.07,3.9 0.91,1.65 1.98,2.48 2.85,3.15 0.81,0.62 1.39,1.07 1.71,2.05 0.6,1.82 1.37,2.84 2.73,3.55 0.51,0.23 1.07,0.35 1.64,0.35 2.21,0 4,-1.79 4,-4h-2c0,1.1 -0.9,2 -2,2zM7.64,2.64L6.22,1.22C4.23,3.21 3,5.96 3,9s1.23,5.79 3.22,7.78l1.41,-1.41C6.01,13.74 5,11.49 5,9s1.01,-4.74 2.64,-6.36zM11.5,9c0,1.38 1.12,2.5 2.5,2.5s2.5,-1.12 2.5,-2.5 -1.12,-2.5 -2.5,-2.5 -2.5,1.12 -2.5,2.5z"/> +</vector> |