From c468a59a4260372d5e8de8082a2c4197c806fe83 Mon Sep 17 00:00:00 2001 From: tobrun Date: Mon, 15 Apr 2019 15:53:50 +0200 Subject: [android] - circle with radius expressed in physical measurement using turf. --- .../src/main/AndroidManifest.xml | 12 +++ .../activity/turf/PhysicalUnitCircleActivity.kt | 118 +++++++++++++++++++++ .../main/res/layout/activity_physical_circle.xml | 32 ++++++ .../src/main/res/values/categories.xml | 1 + .../src/main/res/values/descriptions.xml | 1 + .../src/main/res/values/titles.xml | 1 + 6 files changed, 165 insertions(+) create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/turf/PhysicalUnitCircleActivity.kt create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_physical_circle.xml diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index 0c5aa1551e..326acabdb3 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -942,6 +942,18 @@ android:name="android.support.PARENT_ACTIVITY" android:value=".activity.FeatureOverviewActivity" /> + + + + + + + mapboxMap.cameraPosition = CameraPosition.Builder() + .target(LatLng(22.928207, 15.011543)) + .zoom(10.0) + .build() + + source = GeoJsonSource(SOURCE_ID, TurfTransformation.circle( + Point.fromLngLat(0.0, 0.0), 9000.0, 10, "meters") + ) + + stepsBar.setOnSeekBarChangeListener(this) + radiusBar.setOnSeekBarChangeListener(this) + + mapboxMap.setStyle(Style.Builder() + .fromUrl(Style.SATELLITE_STREETS) + .withLayer(FillLayer(LAYER_ID, SOURCE_ID).withProperties(fillColor(Color.RED))) + .withSource(source) + ) + } + } + + override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { + seekBar?.let { + if (it.id == stepsBar.id) { + steps = progress + } else { + radius = progress.toDouble() + } + + source.setGeoJson(TurfTransformation.circle( + Point.fromLngLat(0.0, 0.0), radius, steps, "meters") + ) + } + } + + override fun onStartTrackingTouch(seekBar: SeekBar?) { + // no-op + } + + override fun onStopTrackingTouch(seekBar: SeekBar?) { + // no-op + } + + override fun onStart() { + super.onStart() + mapView.onStart() + } + + override fun onResume() { + super.onResume() + mapView.onResume() + } + + override fun onPause() { + super.onPause() + mapView.onPause() + } + + override fun onStop() { + super.onStop() + mapView.onStop() + } + + override fun onLowMemory() { + super.onLowMemory() + mapView.onLowMemory() + } + + override fun onDestroy() { + super.onDestroy() + mapView.onDestroy() + } + + override fun onSaveInstanceState(outState: Bundle?) { + super.onSaveInstanceState(outState) + outState?.let { + mapView.onSaveInstanceState(it) + } + } +} \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_physical_circle.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_physical_circle.xml new file mode 100644 index 0000000000..83728b46a9 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_physical_circle.xml @@ -0,0 +1,32 @@ + + + + + + + + + + \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/categories.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/categories.xml index 2c34a59327..94c805f357 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/categories.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/categories.xml @@ -17,4 +17,5 @@ Location _Integration Telemetry + Turf \ 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 778805b3b3..cc2577fb5e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml @@ -82,4 +82,5 @@ Show a GLSurfaceView MapView as a recyclerView item Show a MapView inside a viewpager inside a recyclerView Show the use PerformanceEvent for performance measurements + Use TurfTransformation#circle() to show a Cirlce expressed in physical units diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml index 12c82bf21a..e5f7381918 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml @@ -82,4 +82,5 @@ RecyclerView GLSurfaceView Nested ViewPager Performance Measurement + Physical Unit Circle \ No newline at end of file -- cgit v1.2.1