diff --git a/ApiDemos/app/build.gradle b/ApiDemos/app/build.gradle index 6e0b3ee3..3a7e0762 100644 --- a/ApiDemos/app/build.gradle +++ b/ApiDemos/app/build.gradle @@ -23,5 +23,5 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' - compile 'com.google.android.gms:play-services-maps:8.4.0' + compile 'com.google.android.gms:play-services-maps:9.2.0' } diff --git a/ApiDemos/app/src/main/java/com/example/mapdemo/CircleDemoActivity.java b/ApiDemos/app/src/main/java/com/example/mapdemo/CircleDemoActivity.java index fa69e332..b6d3bd9a 100755 --- a/ApiDemos/app/src/main/java/com/example/mapdemo/CircleDemoActivity.java +++ b/ApiDemos/app/src/main/java/com/example/mapdemo/CircleDemoActivity.java @@ -17,6 +17,7 @@ package com.example.mapdemo; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.GoogleMap.OnCircleClickListener; import com.google.android.gms.maps.GoogleMap.OnMapLongClickListener; import com.google.android.gms.maps.GoogleMap.OnMarkerDragListener; import com.google.android.gms.maps.OnMapReadyCallback; @@ -34,6 +35,7 @@ import android.location.Location; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; +import android.widget.CheckBox; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; @@ -46,17 +48,12 @@ import java.util.List; */ public class CircleDemoActivity extends AppCompatActivity implements OnSeekBarChangeListener, OnMarkerDragListener, OnMapLongClickListener, OnMapReadyCallback { - private static final LatLng SYDNEY = new LatLng(-33.87365, 151.20689); - private static final double DEFAULT_RADIUS = 1000000; - public static final double RADIUS_OF_EARTH_METERS = 6371009; private static final int WIDTH_MAX = 50; - private static final int HUE_MAX = 360; - private static final int ALPHA_MAX = 255; private GoogleMap mMap; @@ -64,26 +61,18 @@ public class CircleDemoActivity extends AppCompatActivity implements OnSeekBarCh private List mCircles = new ArrayList(1); private SeekBar mColorBar; - private SeekBar mAlphaBar; - private SeekBar mWidthBar; - private int mStrokeColor; - private int mFillColor; + private CheckBox mClickabilityCheckbox; private class DraggableCircle { - private final Marker centerMarker; - private final Marker radiusMarker; - private final Circle circle; - private double radius; - - public DraggableCircle(LatLng center, double radius) { + public DraggableCircle(LatLng center, double radius, boolean clickable) { this.radius = radius; centerMarker = mMap.addMarker(new MarkerOptions() .position(center) @@ -98,10 +87,11 @@ public class CircleDemoActivity extends AppCompatActivity implements OnSeekBarCh .radius(radius) .strokeWidth(mWidthBar.getProgress()) .strokeColor(mStrokeColor) - .fillColor(mFillColor)); + .fillColor(mFillColor) + .clickable(clickable)); } - public DraggableCircle(LatLng center, LatLng radiusLatLng) { + public DraggableCircle(LatLng center, LatLng radiusLatLng, boolean clickable) { this.radius = toRadiusMeters(center, radiusLatLng); centerMarker = mMap.addMarker(new MarkerOptions() .position(center) @@ -116,7 +106,8 @@ public class CircleDemoActivity extends AppCompatActivity implements OnSeekBarCh .radius(radius) .strokeWidth(mWidthBar.getProgress()) .strokeColor(mStrokeColor) - .fillColor(mFillColor)); + .fillColor(mFillColor) + .clickable(clickable)); } public boolean onMarkerMoved(Marker marker) { @@ -138,6 +129,10 @@ public class CircleDemoActivity extends AppCompatActivity implements OnSeekBarCh circle.setFillColor(mFillColor); circle.setStrokeColor(mStrokeColor); } + + public void setClickable(boolean clickable) { + circle.setClickable(clickable); + } } /** Generate LatLng of radius marker */ @@ -174,6 +169,8 @@ public class CircleDemoActivity extends AppCompatActivity implements OnSeekBarCh SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(this); + + mClickabilityCheckbox = (CheckBox) findViewById(R.id.toggleClickability); } @Override @@ -193,11 +190,22 @@ public class CircleDemoActivity extends AppCompatActivity implements OnSeekBarCh mAlphaBar.getProgress(), new float[]{mColorBar.getProgress(), 1, 1}); mStrokeColor = Color.BLACK; - DraggableCircle circle = new DraggableCircle(SYDNEY, DEFAULT_RADIUS); + DraggableCircle circle = + new DraggableCircle(SYDNEY, DEFAULT_RADIUS, mClickabilityCheckbox.isChecked()); mCircles.add(circle); // Move the map so that it is centered on the initial circle mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 4.0f)); + + // Set up the click listener for the circle. + map.setOnCircleClickListener(new OnCircleClickListener() { + @Override + public void onCircleClick(Circle circle) { + // Flip the r, g and b components of the circle's stroke color. + int strokeColor = circle.getStrokeColor() ^ 0x00ffffff; + circle.setStrokeColor(strokeColor); + } + }); } @Override @@ -256,7 +264,17 @@ public class CircleDemoActivity extends AppCompatActivity implements OnSeekBarCh view.getHeight() * 3 / 4, view.getWidth() * 3 / 4)); // ok create it - DraggableCircle circle = new DraggableCircle(point, radiusLatLng); + DraggableCircle circle = + new DraggableCircle(point, radiusLatLng, mClickabilityCheckbox.isChecked()); mCircles.add(circle); } -} + + public void toggleClickability(View view) { + boolean clickable = ((CheckBox) view).isChecked(); + // Set each of the circles to be clickable or not, based on the + // state of the checkbox. + for (DraggableCircle draggableCircle : mCircles) { + draggableCircle.setClickable(clickable); + } + } +} \ No newline at end of file diff --git a/ApiDemos/app/src/main/java/com/example/mapdemo/MarkerDemoActivity.java b/ApiDemos/app/src/main/java/com/example/mapdemo/MarkerDemoActivity.java index 840606df..dd09b28d 100644 --- a/ApiDemos/app/src/main/java/com/example/mapdemo/MarkerDemoActivity.java +++ b/ApiDemos/app/src/main/java/com/example/mapdemo/MarkerDemoActivity.java @@ -411,6 +411,12 @@ public class MarkerDemoActivity extends AppCompatActivity implements marker.setAlpha(mRandom.nextFloat()); } + // Markers have a z-index that is settable and gettable. + float zIndex = marker.getZIndex() + 1.0f; + marker.setZIndex(zIndex); + Toast.makeText(this, marker.getTitle() + " z-index set to " + zIndex, + Toast.LENGTH_SHORT).show(); + mLastSelectedMarker = marker; // We return false to indicate that we have not consumed the event and that we wish // for the default behavior to occur (which is for the camera to move such that the @@ -425,7 +431,7 @@ public class MarkerDemoActivity extends AppCompatActivity implements @Override public void onInfoWindowClose(Marker marker) { - Toast.makeText(this, "Close Info Window", Toast.LENGTH_SHORT).show(); + //Toast.makeText(this, "Close Info Window", Toast.LENGTH_SHORT).show(); } @Override diff --git a/ApiDemos/app/src/main/java/com/example/mapdemo/TileOverlayDemoActivity.java b/ApiDemos/app/src/main/java/com/example/mapdemo/TileOverlayDemoActivity.java index 960b7e80..6cc6c66c 100644 --- a/ApiDemos/app/src/main/java/com/example/mapdemo/TileOverlayDemoActivity.java +++ b/ApiDemos/app/src/main/java/com/example/mapdemo/TileOverlayDemoActivity.java @@ -28,6 +28,8 @@ import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.CheckBox; +import android.widget.SeekBar; +import android.widget.SeekBar.OnSeekBarChangeListener; import java.net.MalformedURLException; import java.net.URL; @@ -36,19 +38,27 @@ import java.util.Locale; /** * This demonstrates how to add a tile overlay to a map. */ -public class TileOverlayDemoActivity extends AppCompatActivity implements OnMapReadyCallback { +public class TileOverlayDemoActivity extends AppCompatActivity + implements OnSeekBarChangeListener, OnMapReadyCallback { + + private static final int TRANSPARENCY_MAX = 100; /** This returns moon tiles. */ private static final String MOON_MAP_URL_FORMAT = "http://mw1.google.com/mw-planetary/lunar/lunarmaps_v1/clem_bw/%d/%d/%d.jpg"; private TileOverlay mMoonTiles; + private SeekBar mTransparencyBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tile_overlay_demo); + mTransparencyBar = (SeekBar) findViewById(R.id.transparencySeekBar); + mTransparencyBar.setMax(TRANSPARENCY_MAX); + mTransparencyBar.setProgress(0); + SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(this); @@ -75,6 +85,7 @@ public class TileOverlayDemoActivity extends AppCompatActivity implements OnMapR }; mMoonTiles = map.addTileOverlay(new TileOverlayOptions().tileProvider(tileProvider)); + mTransparencyBar.setOnSeekBarChangeListener(this); } public void setFadeIn(View v) { @@ -83,4 +94,19 @@ public class TileOverlayDemoActivity extends AppCompatActivity implements OnMapR } mMoonTiles.setFadeIn(((CheckBox) v).isChecked()); } -} + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + if (mMoonTiles != null) { + mMoonTiles.setTransparency((float) progress / (float) TRANSPARENCY_MAX); + } + } +} \ No newline at end of file diff --git a/ApiDemos/app/src/main/res/layout/circle_demo.xml b/ApiDemos/app/src/main/res/layout/circle_demo.xml index 6adc204a..18edc26b 100755 --- a/ApiDemos/app/src/main/res/layout/circle_demo.xml +++ b/ApiDemos/app/src/main/res/layout/circle_demo.xml @@ -58,11 +58,27 @@ + + + + + + + class="com.google.android.gms.maps.SupportMapFragment"/> + diff --git a/ApiDemos/app/src/main/res/layout/tile_overlay_demo.xml b/ApiDemos/app/src/main/res/layout/tile_overlay_demo.xml index b976d1d5..af5e171c 100755 --- a/ApiDemos/app/src/main/res/layout/tile_overlay_demo.xml +++ b/ApiDemos/app/src/main/res/layout/tile_overlay_demo.xml @@ -40,5 +40,17 @@ android:checked="true" android:onClick="setFadeIn" android:text="@string/fade_in" /> + + + + + diff --git a/ApiDemos/build.gradle b/ApiDemos/build.gradle index e0b366a7..0bb49154 100644 --- a/ApiDemos/build.gradle +++ b/ApiDemos/build.gradle @@ -2,10 +2,11 @@ buildscript { repositories { + mavenLocal() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.5.0' + classpath 'com.android.tools.build:gradle:2.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -14,6 +15,7 @@ buildscript { allprojects { repositories { + mavenLocal() jcenter() } } diff --git a/ApiDemos/gradle/wrapper/gradle-wrapper.properties b/ApiDemos/gradle/wrapper/gradle-wrapper.properties index 45ae1edf..691ed324 100644 --- a/ApiDemos/gradle/wrapper/gradle-wrapper.properties +++ b/ApiDemos/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Oct 07 13:01:26 AEDT 2015 +#Mon Jun 20 10:42:35 AEST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip diff --git a/README.md b/README.md index 8a103c66..bfddaf39 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ Google Maps Android API v2 Samples =================================== -Samples that use the [Google Maps Android API v2](https://developers.google.com/maps/documentation/android/). +Samples demonstrating how to use +[Google Maps Android API v2](https://developers.google.com/maps/documentation/android/). This repo contains the following sample: @@ -49,7 +50,7 @@ https://github.com/googlemaps/android-samples/issues Patches are encouraged, and may be submitted according to the instructions in CONTRIBUTING.md. -![Analytics](https://ga-beacon.appspot.com/UA-12846745-20/android-samples/readme?pixel) +![Analytics](https://maps-ga-beacon.appspot.com/UA-12846745-20/android-samples/readme?pixel) License -------