Maps SDK for Android Release Notes

Subscribe to these release notes. Subscribe

This page is updated with each new release of the Maps SDK for Android. The changelog lists releases past date and includes any new features, bug fixes and significant performance improvements.

Consult the Getting Started documentation for information on how to download the most recent version of the Maps SDK for Android.

January v, 2022

Version 18.0.two

Google has released a new client library for Maps SDK for Android, version 18.0.2. To use this new version in your apps, be sure to update your dependencies to com.google.android.gms:play-services-maps:18.0.2.

Features:

  • Includes the latest versions of play-services-base and play-services-tasks to fix the issue described in the December 09, 2021 (Version 18.0.one) release.

December 9, 2021

Version 18.0.one

Features:

  • Strict nullability annotations (@NonNull and @Nullable) are being used where previously @RecentlyNonNull and @RecentlyNullable were used. With this alter, what in one case caused a nullness warning will at present cause an error when building Kotlin lawmaking or using Java nada checking frameworks.

  • Removed deprecated fitness constants from Scopes.

  • Added withTimeout() utilty method to Tasks

Oct 27, 2021

Version 18.0.0

Google has released a new customer library for Maps SDK for Android, version 18.0.0. To use this new version in your apps, exist sure to update your dependencies to com.google.android.gms:play-services-maps:xviii.0.0.

Maps SDK for Android version 18.0.0 is supported on Android API Level 19 (Android iv.4, KitKat) and higher. For more information on Android support, see the Google Maps Platform OS version back up policy.

Features:

  • A new map renderer is bachelor for opt-in use, which provides improved performance and stability, as well as back up for Cloud-based maps styling tied to a Map ID.

    For opt-in instructions to use the new renderer, meet New map renderer.

    The new renderer will become the default renderer in 2022, at which signal explicit opt-in volition not be required.

  • Yous tin can now modify the map background color for WearOS, which will be displayed earlier the actual map tiles load.

  • Added @NonNull and @Nullable annotations in the API surface which may break Kotlin apps that did non previously handle null values in a safe way (see Kotlin documentation near Null-rubber).

August 18, 2021

Deprecation

The Beta versions of Maps SDK for Android and iOS are now deprecated and volition be fully decommissioned in late 2022. A supported version of the Maps SDK for Android and iOS will exist made available at least one year prior to the beta SDK being fully decommissioned, which is estimated to occur in tardily 2022.

The use of the mobile Maps SDKs (Android & iOS) Beta volition exist degraded per the following schedule:

For Android:

  • As of the appointment of this release notation, the Maps SDK for Android Beta (versions three.0.0 and 3.1.0) client library is deprecated.
  • All features of the Beta SDK will be supported in upcoming releases of the Maps SDK for Android distributed as role of the Google Play services SDK.
  • Support for the Maps SDK for Android Beta (versions three.0.0 to and 3.1.0) will cease no earlier than Nov 2022.

For iOS:

  • As the date of this release note, the Maps SDK for iOS Beta (versions v3.0.0 and v3.ten.0) is deprecated.
  • All features of the Beta SDK will be supported in upcoming releases of the Maps SDK for iOS distributed via CocoaPods and Carthage.
  • Support for the Maps SDK for iOS Beta (versions v3.0.0 and v3.10.0) will end no earlier than November 2022.

On all platforms, the Beta SDKs will be fully decommissioned, at to the lowest degree one year after a supported (non-Beta) version is released. We volition communicate with you again once the new version is released, so that you tin start your migration efforts.

What practice you demand to do?

If you are non currently using features in Beta (maps customization, marking collision treatment, or polyline customization—Android, iOS), please update your apps to use a supported version equally before long as possible before the decommission in tardily 2022. Meet the Android and iOS documentation for instructions.

If you are currently using features in Beta, you should wait for upcoming releases of the SDKs to migrate to a supported SDK version.

Contact Google Maps Platform Support with any questions.

Apr 27, 2021

Features:

  • Added "not-semver-breaking" nullability annotations to the API surface.

Resolved Bug:

  • Added the following announcement to the AndroidManifest.xml to back up the Parcel visibility filtering on Android 11 (API level thirty) and above. After updating to com.google.android.gms:play-services-maps:17.0.1, you tin can remove the following line from your own AndroidManifest.xml.

                            <queries>     <package android:name="com.google.android.apps.maps" /> </queries>                                              

Feb six, 2019

Features:

  • Added the UiSettings.setScrollGesturesEnabledDuringRotateOrZoom(boolean) and the UiSettings.isScrollGesturesEnabledDuringRotateOrZoom() methods, allowing you to prepare a preference for whether scroll gestures can take identify at the same time as a zoom or rotate gesture. If enabled, users can scroll the map while rotating or zooming the map. If disabled, the map cannot be scrolled while the user rotates or zooms the map using gestures. This setting doesn't disable scroll gestures entirely, simply during rotation and zoom gestures, nor does it restrict programmatic movements and animation of the camera.

Resolved Bug:

  • Added the following declaration to the AndroidManifest.xml to support the Apache HTTP customer on Android P and above. After updating to com.google.android.gms:play-services-maps:16.1.0 you lot tin can remove this line from your own AndroidManifest.xml. (Event 117591497)

                            <uses-library android:name="org.apache.http.legacy" android:required="false"/>"                                              

Old Way Removed - November ane, 2018

Features:

  • Removed support for the former basemap style. The opt-in and opt-out API options in the AndroidManifest.xml (see below) are no longer supported. This applies to all versions of the Maps SDK for Android. Encounter the blog post for more data most the new style.

Oct eighteen, 2018

Resolved Issues

  • Resolved a StackOverflowError that occurred when viewing areas with many indoor buildings. (Issue 35829548)
  • Resolved a issues where POI icons were hidden when a custom style that specified icon saturation was practical. (Issue 65660536)

New Manner Enabled by Default - June fourteen, 2018

Features:

  • Enabled the new basemap way by default. You tin still opt-out temporarily if you demand fourth dimension to modify your app to accommodate the new style. If you do, please follow Result 72780606 which contains the timeline for end of support of the previous basemap style. We will be posting updates there as they are available.

    To opt-out, add the post-obit tag to your AndroidManifest.xml file, within the <application> tag. The device must have at least Google Play Services version 12.0.0 in order for the opt-out to work. If you had previously opted-in to the new basemap fashion, this opt-out tag should supervene upon the opt-in tag. Run into the blog mail for more data about the new style.

                            <meta-data android:proper noun="com.google.android.gms.maps.API_OPTIONS"     android:value="B3H9HE845CFHYG"/>                                              

New Manner Opt-In - April 12, 2018

Features:

  • Enabled opt-in for the new basemap fashion. To opt-in, add the following tag to your AndroidManifest.xml file, within the <application> tags. The device must have at least Google Play Services version 12.0.0 in order for the opt-in to piece of work. Run across the blog post for more information about the new style.

                            <meta-information android:name="com.google.android.gms.maps.API_OPTIONS"     android:value="B3MWHUG2MR0DQW"/>                                              

April 10, 2018

Features

  • Added a mechanism for developers to enable experimental features.

March 20, 2018

Features

  • When setting the position of a Street View Panorama, y'all can at present provide a StreetViewSource allowing the search to be restricted to outdoor-merely results. Note this feature is experimental and some searches may still include indoor panoramas. For details, see the guide to Street View.

Resolved Issues

  • Fixed a problems where IndoorBuilding.getDefaultLevelIndex() was wrongly returning the active level alphabetize instead.

November 6, 2017

Features

  • This release expands the custom styling capabilities for polylines and for the outlines of polygons and circles in calorie-free style, to match the total API, by adding support for stroke patterns, joint types and caps. See examples in the tutorial on adding polygons and polylines to represent areas and routes.

September 18, 2017

Features

  • Utilize the new GoogleMap.OnMyLocationClickListener to find when the user clicks the My Location blue dot. (Issue 35822305)

                            @Override public void onMyLocationClick(@NonNull Location location) {   Toast.makeText(this, "Electric current location:\n" + location, Toast.LENGTH_LONG).testify(); }                                              

    For details, run across the guide to the My Location layer.

Resolved Issues

  • IllegalArgumentException: totalAngleRad must exist >= 0.0f and <= 2*PI: -2.9516223E-four occurring when yous employ joint blazon ROUND in polyline options. (Issue 36777405)

June seven, 2017

Resolved Issues

  • There is no longer a requirement to phone call getOpenSourceSoftwareLicenseInfo(). The Google Play services licensing information is now visible to users in Android Settings > Google > Overflow bill of fare > Open Source Licenses, and the getOpenSourceSoftwareLicenseInfo() method in the GoogleApiAvailability class is deprecated every bit from v11.0 of the Google Play services SDK. (Upshot 35827189)
  • There was an issue where the Google map did non appear on devices with Android 7.x Nougat, when users increased the display size on their device. (See data about display size settings in Android Northward.) This consequence is at present fixed. (Issue 37538038)

Feb 15, 2017

Features

  • This release introduces custom styling for polylines and for the outlines of polygons and circles. Modify the stroke pattern from a solid line (default) to your choice of dashes, dots, and gaps. In polylines and polygons, you tin specify a bevel or circular joint type to replace the default fixed miter joints. Yous can also change the cap at each end of a polyline from a butt (default) to a square or round cap, or specify a custom bitmap to be used as the cap. The styling of stroke patterns, joint types and get-go/end caps is bachelor in the total API just not in low-cal style. See examples in the tutorial on adding polygons and polylines to represent areas and routes. (Problems 4633, 4787, 4884)
  • Y'all can now shop capricious data objects with your geometry objects. For example, call setTag() to add a information object to a polyline. Similar methods are available for polylines, polygons, circles and ground overlays, as well every bit the already-existing setTag() and getTag() methods on markers. (Result 10306)

Resolved Issues

  • java.lang.IllegalStateException: LruCache does not have a sizeOf implementation for: null. (Effect 8211)
  • OutOfMemoryError while zooming or panning the map. (Consequence 5621)
  • NPE on MapView#onCreate. (Outcome 10878)
  • Seeing Suppressed StrictMode policy violation in the logs (partially stock-still). (Issue 11077)

Notes

  • When yous choose to upgrade your app to the latest version of the Google Play services SDK, you must target a minSdkVersion of 14 (Android version 4.0.x, Ice Cream Sandwich) or higher. Note that Android version 2.3.x (Gingerbread) and iii.x (Honeycomb) were deprecated in Google Play services ten.0.10. To learn more than about your options, come across the Android Developers Web log. For example, in your app's build.gradle file:

                            android {     compileSdkVersion 24     buildToolsVersion "23.0.three"     defaultConfig {         applicationId "com.example.mymap"         minSdkVersion xiv         targetSdkVersion 24         versionCode i         versionName "1.0"     } }                                              

October 24, 2016

Resolved Issues

  • Circle filling flickers on fast update of circle radius and center. (Result 5707)
  • Crash if Google Play app is non available. (Issue 4862)
  • Calling Mark.showInfoWindow() in onMarkerClick(Mark) and returning truthful causes Marker.isInfoWindowShown to however return false on subsequent marker clicks. (Issue 5408)
  • Poor performance when app retentiveness footprint is large. (Issue 5445)
  • StrictMode violations shown in log. (Issue 10170)

Notes

  • The previously-deprecated getStreetViewPanorama() function is no longer available in the Google Play services SDK. (It is however available in the Google Play services APK that is delivered to Android devices. Existing apps therefore go on running ordinarily until you recompile them.) The getStreetViewPanorama() function has been deprecated since Dec 2014. Instead, y'all should use StreetViewPanoramaView.getStreetViewPanoramaAsync() or StreetViewPanoramaFragment.getStreetViewPanoramaAsync() to get a ready-to-use Street View panorama. See the developer'due south guide.

September 21, 2016

Features

  • This release introduces custom styling of the base map. (Issue 5463.) Yous can pass a JSON style proclamation to your MapStyleOptions, changing the visual display of features like roads, parks, businesses, and other points of involvement. This means that you can emphasize particular components of the map or brand the map complement the mode of your app. Custom styling is available for maps with a map type of normal.

    • See the quick guide to styling your map, using dark way as an example style.
    • Use styling to prevent certain features from appearing on the map. (Issue 4841)
    • Learn the total power of custom styling in the style reference.
  • The new Maps Platform Styling Wizard provides a quick style to generate a JSON style declaration for your map. The Maps SDK for Android supports the aforementioned manner declarations every bit the Maps JavaScript API.

  • Concern points of interest (POIs) at present announced past default on the map, provided the map blazon is normal. (Prior to this release, local POIs appeared on the map, but not concern POIs.) Concern POIs represent businesses such as shops, restaurants, hotels, and more than. See the guide to points of interest.

  • You can respond to click events on a POI.

Resolved Issues

  • Getting alarm Maps SDK for Android: GLHudOverlay deprecated; draw(): no-op. (Result 10201)
  • Customer must accept ACCESS_FINE_LOCATION permission to request PRIORITY_HIGH_ACCURACY locations. (Event 10166)
  • Android Nougat developer preview: MapView blank when resized in Multi Window fashion and non focused. (Issue 213354)

Notes

  • Forwarding of lifecycle methods: If you're using the MapView course, and the API is in fully interactive mode rather than low-cal fashion, your app must forward the following activity lifecycle methods to the corresponding methods in the MapView class: onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(), onSaveInstanceState(), and onLowMemory(). Prior to this release, in that location was no need to forrard onStart() and onStop(), but when you recompile your app with the new release, it'due south essential to frontwards them also. See the documentation for details.

August 1, 2016

Features

  • This release introduces a set of new photographic camera modify listeners for camera motion starting time, ongoing, and end events. You can also see why the camera is moving, whether information technology's caused by user gestures, born API animations or developer-controlled movements. Below is a summary of the new listeners. For details, run across the guide to photographic camera alter events. (Issue 4636)

    • The onCameraMoveStarted() callback of the OnCameraMoveStartedListener is invoked when the photographic camera starts moving. The callback method receives a reason for the camera motion.
    • The onCameraMove() callback of the OnCameraMoveListener is invoked multiple times while the camera is moving or the user is interacting with the bear on screen.
    • The OnCameraIdle() callback of the OnCameraIdleListener is invoked when the camera stops moving and the user has stopped interacting with the map.
    • The OnCameraMoveCanceled() callback of the OnCameraMoveCanceledListener is invoked when the current camera movement has been interrupted.
  • You tin can shop an capricious information object with a marker using Mark.setTag(), and recollect the information object using Marker.getTag(). For details, see the guide to associating data with a mark. (Issue 4650)

  • With GoogleMap.setMinZoomPreference() and GoogleMap.setMaxZoomPreference() yous can gear up a preferred minimum and/or maximum zoom level. This is useful, for example, if your app shows a defined area around a indicate of interest, or if you're using a custom tile overlay with a limited fix of zoom levels. For details, see the guide to setting minimum/maximum zoom preferences. (Effect 4663)

  • With GoogleMap.setLatLngBoundsForCameraTarget(), you lot tin can constrain the lat/lng centre bounds of the focal point of the map (the photographic camera target) so that users tin can only ringlet and pan within these premises. For case, a retail app for a shopping eye or airport may desire to constrain the map to a particular premises, allowing users to curl and pan within those premises. For details, run into the guide to restricting the user's panning to a given area.

Resolved Issues

  • Mark icon ballast breaks with Google Play services 9.0.83. (Issue 9768)
  • ActivityNotFoundException when Google Map is uninstalled/deactivated. (Issue 9483)

Notes

  • The OnCameraChangeListener is deprecated in favour of the new listeners described above - that is, OnCameraMoveStartedListener, OnCameraMoveListener, OnCameraMoveCanceledListener and OnCameraIdleListener.

June 27, 2016

Features

  • The new MarkerOptions.zIndex() sets the stack order of a mark in relation to other markers on the map. Read more nearly marker z-indexes and the upshot of z-index on click events. (Issue 4688)
  • Y'all can set up a transparency factor on tile overlays, so users tin see the base map beneath the overlaid tiles. Read more about tile overlay transparency and the way it works with fade-in animation. (Outcome 4765)
  • Information technology'due south at present easier to make circles clickable. You tin can enable and disable clickability by providing a CircleOptions object with a clickable choice, or by calling Circle.setClickable(boolean). Use an OnCircleClickListener to listen to click events on a clickable circle. See a lawmaking sample.

Resolved Issues

  • NullPointerException: Effort to invoke virtual method boolean java.io.File.mkdir() on a null object reference. (Issue 9021)
  • NullPointerException: Effort to invoke interface method java.util.Iterator java.util.Listing.iterator() on a null object reference at com.google.maps.api.android.lib6.d.ei.a(). (Outcome 9008)
  • Calling Marking.setIcon() with resources id on marking outside view makes the marker white. (Issue 9765)
  • Setting icon for google map markers will sometimes cause a flicker. (Event 8531)
  • Calling Marker.setIcon() causes info window to disappear. (Upshot 5419)
  • Mark stops dragging if icon is changed in onMarkerDragStart event. (Issue 5932)
  • Info window no longer highlights on bear upon when implementing custom InfoWindowAdapter. (Upshot 7809)
  • Polylines drawn incorrectly in certain cases. (Issue 5313)
  • Strange behaviour drawing polyline. (Issue 5123)
  • Polylines which venture near the poles are fatigued incorrectly. (Issue 9176)
  • NullPointerException when clicking directions toolbar push button. (Upshot 8817)
  • Possible explicit call to the Arrangement.gc() in GoogleMap.getProjection().toScreenLocation(). (Issue 6483)
  • When using SupportMapFragment, the API leaks retentiveness on screen rotation until the map is loaded for the current zoom level. (Effect 5905)
  • GoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(LatLng,zoom)) messes upwardly the zoom if cancelled. (Issue 6947)

Notes

  • The previously-deprecated getMap() role is no longer bachelor in the Google Play services SDK. (Information technology is still available in the Google Play services APK that is delivered to Android devices.) The getMap() function has been deprecated since December 2014. See the release weblog post for assistance with converting from getMap() to getMapAsync().
  • Deprecation detect: In a future release, indoor maps will only exist bachelor on normal blazon maps. From that future release, indoor maps will not exist supported on satellite, terrain or hybrid maps. Even where indoor is not supported, isIndoorEnabled() volition continue to render the value that has been set via setIndoorEnabled(), as it does now. By default, setIndoorEnabled is true. Subscribe to these release notes for a notification of each release.

December 17, 2015

Features

This release introduces a number of new event listeners:

  • OnInfoWindowLongClickListener triggers a callback to onInfoWindowLongClick(Marking) when the user long clicks on an info window. This listener behaves similarly to the existing click listener.
  • OnInfoWindowCloseListener triggers a callback to onInfoWindowClose(Marker) when an info window closes. For details, see the guide to info window events. (Issue 5469)
  • OnPolylineClickListener triggers a callback to onPolylineClick(Polyline) when the user clicks on a polyline. Meet the guide to polyline events.
  • OnPolygonClickListener triggers a callback to onPolygonClick(Polygon) when the user clicks on a polygon. See the guide to polygon events. (Issue 4683)
  • OnGroundOverlayClickListener triggers a callback to onGroundOverlayClick(GroundOverlay) when the user clicks on a ground overlay. See the guide to ground overlay events.
  • You can enable or disable the clickability of polylines, polygons and footing overlays by calling setClickable(boolean) on the relevant object.

Resolved Issues

  • Zoom into maximum level when info window is double tapped. (Result 4640)
  • Android maps v2 mark infowindow RTL text trouble. (Consequence 5608)
  • Correct tiles generated by TileProvider but rendered solid white on the map. (Issue 8084)
  • Memory leak. (Upshot 8696)
  • Turning on the my location layer leaks the Activity. (Event 8111)

November v, 2015

Notes

  • If you lot're targeting version 8.3 or later of the Google Play services SDK, yous no longer need the WRITE_EXTERNAL_STORAGE permission to utilise the Maps SDK for Android. For details, see the configuration guide.
  • All the code samples for the Maps SDK for Android are at present available on GitHub.

Resolved Issues

  • Memory leak: obfuscated class in "chimera" bundle. (Result 8472)

September 24, 2015

Features

  • The Maps SDK for Android now supports ambient mode for wear apps. Ambient mode is for ever on apps, and is activated when the user is no longer actively using the app, allowing the app to remain visible on the clothing device. The Maps SDK for Android provides a simplified, depression-color rendering of the map. This mode reduces the power consumption of your app and ensures a consistent look and feel with other ambience apps, such as watch faces.

Notes

  • Android vi.0 (Marshmallow) introduces a new model for handling permissions, which streamlines the procedure for users when they install and upgrade apps. If your app targets API level 23 or afterwards, you lot can utilise the new permissions model. This is particularly of import if y'all're using the My Location layer in the Maps SDK for Android. To learn more, meet the documentation for the My Location layer.

Resolved Bug

  • java.lang.IllegalStateException: CreatorImpl not initialized properly. (Upshot 8314)

May 28, 2015

Features

  • The Maps SDK for Android is now bachelor on Android Article of clothing. Create map-based apps that run directly on wearable devices.

Resolved Issues

  • Problems rendering a map in a MapView when setting the zOrderOnTop property to true or when embedding a MapView in a scrollable container. (Effect 7936)
  • Map toolbar always visible in lite way, fifty-fifty if disabled. (Result 7947)

April 28, 2015

Features

  • A new interface, StreetViewPanorama.OnStreetViewPanoramaLongClickListener, supports long-clicking (tapping and property down the finger) on a Street View panorama.
  • When using the MapView grade in lite fashion, forwarding lifecycle events is at present optional, with some exceptions as noted in the documentation.
  • To disable click events on a map in lite mode, you tin call setClickable() on the view that contains the MapView or MapFragment. This is useful, for example, when displaying a map or maps in a list view, where yous want the click event to invoke an action unrelated to the map. For details, see the documentation.

Resolved Issues

  • showInfoWindow() now works in lite mode too as full mode.
  • TileOverlay.clearTileCache() works as expected afterward returning NO_TILE. (Issue 4755)
  • The API is more selective in its logging behavior in light fashion, when reporting the functions that are not supported in low-cal mode. It no longer logs the default calls that are fabricated at app startup.
  • CameraUpdateFactory is now properly initialized, so y'all should no longer see a NullPointerException 'CameraUpdateFactory is not initialized' after MapView.getMap() returns a valid GoogleMap. (Issue 6499)
  • App launch performance is improved, and the chief thread is no longer blocked on app launch. (Effect 7532)
  • StreetViewPanoramaView no longer requests focus in onCreate(), thus no longer causing the view to gyre to brand Street View visible. (Issue 7566)
  • Fixed a resource leak that showed itself in strict mode. (Issue 5992)
  • Fixed a NullPointerException that occurred with setPadding() in accessibility manner. (Issue 7619)
  • Fixed a bug crashing apps when loading an icon from an asset. (Outcome 7696)

Dec 8, 2014

Features

  • The API offers a new light way. When lite mode is enabled, the API serves a bitmap paradigm instead of a fully-interactive map. Low-cal style supports all of the map types and a subset of the functionality supplied past the total API. Markers and shapes are fatigued on top of the static paradigm customer-side, so you still take full control over them. A lite-mode map is useful when y'all want to display a number of small maps, or a map that is too small-scale to offering meaningful interactivity.
  • A new map toolbar is available in both lite mode and full mode, and is enabled by default in both modes for apps that are recompiled against the new client library. Borer on the toolbar opens the Google Maps mobile app, giving users quick access to directions and turn-past-turn navigation to the selected mark. In lite mode the toolbar is static, whereas in full mode it slides in when the user taps a mark. You lot tin can disable the toolbar in both modes, by calling UiSettings.setMapToolbarEnabled(false).
  • The API supports a new onMapReady() callback which you tin set by calling MapView.getMapAsync() or MapFragment.getMapAsync(). The onMapReady() method is called when the map is ready to exist used, and provides a non-zilch example of GoogleMap. This means that you lot no longer need to check for a not-goose egg map before using the map. See the guide to adding a map.
  • Similarly, you can at present apply StreetViewPanoramaView.getStreetViewPanoramaAsync() or StreetViewPanoramaFragment.getStreetViewPanoramaAsync() to get a ready-to-apply Street View panorama. See the documentation.

Resolved Issues

  • GoogleMap.CancelableCallback() at present behaves correctly when animating/moving the photographic camera. (Issue 5208)
  • The visible region'south LatLngBounds are now calculated correctly in landscape mode. (Consequence 5285)
  • A marker performance regression is fixed. (Upshot 7174)
  • The problem with arrowhead shapes in triangulating convex quadrilaterals is fixed. (Upshot 6197 - the initial problem reported is now fixed)

Notes

  • getMap() is deprecated in favour of the new getMapAsync(), described above. Similarly, getStreetViewPanorama() is deprecated in favor of the new getStreetViewPanoramaAsync().
  • For apps that are recompiled against the new client library, the map's zoom controls are disabled by default. Up to this release, they have been enabled past default. You can notwithstanding enable and disable them by calling UiSettings.setZoomControlsEnabled().

October 16, 2014

  • Updated some assets to use fabric design.

May 2014

Features

  • Added Street View for embedding and controlling panoramic 360-degree views.
  • Added functionality to indoor maps and so that you lot tin can respond to indoor and level change events, and supercede the level picker with your ain. (Issue 5939)
  • Improved accessibility features across various embedded controls.

Jan 2014

Features

  • Added a fadeIn flag to TileOverlayOptions to toggle the fade-in of tiles.

Resolved Issues

  • Failed API key authentication attempts are no longer cached. (Issue 6099)

October 2013

Features

  • Added a setImage method to the GroundOverlay grade that allows you to change the image of a ground overlay. (Event 4847)
  • Added an blastoff option and setAlpha method to Markers. (Upshot 4768)
  • Added a setOnMapLoadedCallback method to the GoogleMap class. onMapLoaded is chosen when the map has completely finished rendering. (Effect 5779)
  • Added a setBuildingsEnabled method to the GoogleMap form. Buildings are nonetheless enabled by default. (Issue 5550)
  • The Google logo has been updated.

Resolved Issues

  • CameraPosition returned in a OnCameraChangeListener at present respects map padding. (Issue 5844)
  • GroundOverlay.setPositionFromBounds now redraws the ground overlay.

September 2013

Features

  • Added a setPadding method to the GoogleMap class that allows y'all to signal parts of the map that may exist obscured by other views. Setting padding re-positions the standard map controls, and camera updates will use the padded region. (Issue 4670, Issue 5321)
  • Added the LatLngBounds.getCenter method. (Issue 4664)
  • Added methods to Marker:
    • setFlat, which toggles between billboarded (default) and flat markers. (Issue 4881)
    • setInfoWindowAnchor. (Issue 5338, Issue 5131)
    • setRotation.

Resolved issues

  • GooglePlayServicesUtil.getErrorDialog always returns a dialog, except when Google Play services is bachelor. (Issue 4720)

August 2013

Resolved issues

  • The map is now rendered using TextureView on Jelly Bean iv.ane+ (API 16+) devices. This should resolves several issues, including blackness rectangles when a map view is moved on the screen. (Consequence 4659, Result 4639, Issue 4865, Outcome 4782, Issue 4839)

August 2013

Features

  • Added a snapshot() method to the GoogleMap class that returns a bitmap of the current map. Snapshots can exist used elsewhere on the device, or in your app, to evidence a map when a MapFragment or MapView would not be feasible; they shouldn't exist transmitted off the device. (Issue 4898)
  • Added a click outcome listener to the My Location button. (Issue 4789)

Resolved issues

  • Fixed info window sprites for xxhdpi devices. (Event 5439)
  • Clickable regions on custom markers more than closely friction match the size of the custom epitome. (Issue 5368)
  • Added implementations for canScrollHorizontally and canScrollVertically. This improves behavior for maps appearing inside of scrollable containers, such equally ViewPager.

July 2013

Features

  • The MAPS_RECEIVE permission is no longer required. You can remove this permission from your manifest.
  • Updated map pattern inspired by the new Google Maps.
  • You tin now save Maps API Parcelable classes (eastward.chiliad. LatLng, GoogleMapOptions) in the land Bundle of a MapFragment. (Result 4713)

Resolved bug

  • Stock-still an outcome that would cause a NullPointerException. (Issue 5395)

May 2013

Features

  • Added the Mark.setIcon method. (Result 5075)
  • Added the Marker.setAnchor method.
  • Android emulator support. (Issue 4627)
  • My Location layer is backed past the fused location provider in the Android Location API. Location accuracy should be greatly improved. (Upshot 4660, Issue 4682)

Resolved issues

  • A number of memory leaks were fixed. (Issue 4766, Issue 4703)
  • OpenGL ES two.0 feature requirement is no longer required to be included in AndroidManifest. Note: OpenGL ES 2.0 is still required for Maps to function. (Effect 4699)
  • MapView(Context) constructor no longer throws a NullPointerException. (Issue 4903)
  • LayoutParams no longer need to be set on a RelativeLayout returned by an InfoWindowAdapter. (Issue 4748)
  • OnMapClickListener is now called when a user clicks on a map icon (due east.g. transit station). (Event 5062)
  • The Google Maps awarding is no longer required to be installed. (Effect 4914)
  • Pre-multiplied alphas in ground overlays are at present blended correctly. (Event 4924)
  • Documentation added for zOrderOnTop. (Issue 4812)

Note: OnMyLocationChangedListener and GoogleMap.getMyLocation() are deprecated in favor of the new Android Location APIs.

March 2013

Resolved Problems

  • Maps can now be rendered offline (Event 5017)

February 2013

Features

  • Added OnMyLocationChangeListener, which is called when a alter in location is detected. (Effect 4644)
  • Added the BitmapDescriptor.fromPath method. (Issue 4637)
  • Added support for Circle overlays. (Issue 4819)
  • Added back up for the hybrid map blazon when using XML attributes.

Resolved bug

  • Improvements to memory management, minimizing retention leaks. (Upshot 4766)
  • OpenGL ES 2.0 feature requirement is no longer required to exist included in AndroidManifest. Note: OpenGL ES 2.0 is still required for Maps to function. (Outcome 4699)
  • Fixed blurry markers due to non-rounded pixel alignment. (Issue 4667)
  • Greatly improved performance of calculation many markers. (Issue 4669)
  • Stock-still an occasional 1px gap in a info windows. (Issue 4666)
  • Calling MarkerOptions.visible(false) will now make the marker invisible. (Issue 4677)
  • Invisible markers are no longer clickable. (Issue 4668)
  • Copyrights are no longer visible when mapType is fix to MAP_TYPE_NONE. (Issue 4834)
  • Fixed incorrect sizing of GroundOverlays. (Issue 4723)
  • Improved recovery from gaining network connectivity. This set up requires the ACCESS_NETWORK_STATE permission. (Issue 4817)
  • Fixed disappearing info window while the map is moving. (Issue 4657)
  • Info window is now selectable after being double tapped. (Consequence 4641)
  • The double tap and drag gesture is disabled when zoom gestures are disabled. (Issue 4694)
  • Several improvements to product documentation. (Issue 4675, Issue 4676, Issue 4653)
  • Polygon vertices may now be ordered in clockwise or counterclockwise club.
  • CancelableCallback at present calls onCancel() instead of onFinish() when interrupted past a user interaction.
  • Text labels are at present sized correctly on tablets.
  • TileFetcher no longer continues to fetch later a TileOverlay is removed from the map.

December 2012

  • Initial release. Included as part of Google Play Services SDK.