From b71d86599d5e7c265b320300b18cfc0ea082c6d2 Mon Sep 17 00:00:00 2001 From: Pablo Guardiola Date: Tue, 11 Apr 2017 19:10:46 +0200 Subject: [android] Polygon holes (#8557) * add 1 hole support to polygon-related classes * fix no hole crash and add triangle hole shape example * add support for multiple holes --- .../activity/annotation/PolygonActivity.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk') diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/PolygonActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/PolygonActivity.java index a2245a28e0..429509e1d2 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/PolygonActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/PolygonActivity.java @@ -6,6 +6,7 @@ import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; +import com.mapbox.mapboxsdk.annotations.Hole; import com.mapbox.mapboxsdk.annotations.Polygon; import com.mapbox.mapboxsdk.annotations.PolygonOptions; import com.mapbox.mapboxsdk.camera.CameraPosition; @@ -18,6 +19,7 @@ import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.testapp.R; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import static com.mapbox.mapboxsdk.testapp.activity.annotation.PolygonActivity.Config.BLUE_COLOR; @@ -26,6 +28,7 @@ import static com.mapbox.mapboxsdk.testapp.activity.annotation.PolygonActivity.C import static com.mapbox.mapboxsdk.testapp.activity.annotation.PolygonActivity.Config.NO_ALPHA; import static com.mapbox.mapboxsdk.testapp.activity.annotation.PolygonActivity.Config.PARTIAL_ALPHA; import static com.mapbox.mapboxsdk.testapp.activity.annotation.PolygonActivity.Config.RED_COLOR; +import static com.mapbox.mapboxsdk.testapp.activity.annotation.PolygonActivity.Config.STAR_SHAPE_HOLES; import static com.mapbox.mapboxsdk.testapp.activity.annotation.PolygonActivity.Config.STAR_SHAPE_POINTS; /** @@ -44,6 +47,7 @@ public class PolygonActivity extends AppCompatActivity implements OnMapReadyCall private boolean visible = true; private boolean color = true; private boolean allPoints; + private boolean holes; @Override protected void onCreate(Bundle savedInstanceState) { @@ -140,6 +144,10 @@ public class PolygonActivity extends AppCompatActivity implements OnMapReadyCall color = !color; polygon.setFillColor(color ? BLUE_COLOR : RED_COLOR); return true; + case R.id.action_id_holes: + holes = !holes; + polygon.setHoles(holes ? STAR_SHAPE_HOLES : Collections.emptyList()); + return true; default: return super.onOptionsItemSelected(item); } @@ -179,5 +187,27 @@ public class PolygonActivity extends AppCompatActivity implements OnMapReadyCall static final List BROKEN_SHAPE_POINTS = STAR_SHAPE_POINTS.subList(0, STAR_SHAPE_POINTS.size() - 3); + + static final List STAR_SHAPE_HOLES = new ArrayList() { + { + add(new Hole(new ArrayList() { + { + add(new LatLng(45.521743, -122.669091)); + add(new LatLng(45.530483, -122.676833)); + add(new LatLng(45.520483, -122.676833)); + add(new LatLng(45.521743, -122.669091)); + } + })); + add(new Hole(new ArrayList() { + { + add(new LatLng(45.529743, -122.662791)); + add(new LatLng(45.525543, -122.662791)); + add(new LatLng(45.525543, -122.660)); + add(new LatLng(45.527743, -122.660)); + add(new LatLng(45.529743, -122.662791)); + } + })); + } + }; } } -- cgit v1.2.1