Subscribe to these release notes.
This page is updated with each new release of the Maps SDK for iOS. The changelog lists releases by 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 iOS.
August 28, 2024
Bug fixes.
August 14, 2024
The Maps SDK for iOS version 9.1.0 is now available. Version bump, no changes. This version is functionally identical to v.9.0.0. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed.
If you are a new user, see Set up your Google Cloud project to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
May 28, 2024
Release 9.0.0
The Maps SDK for iOS version 9.0.0 is now available. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed.
If you are a new user, see Set up your Google Cloud project to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
According to the Mobile OS version support policy, we are freezing support for iOS 15 in an upcoming major version of Maps, Places, and Navigation SDKs for iOS.
Versions of Maps, Places, and Navigation SDKs for iOS released beginning the second quarter of 2025 will support a minimum of iOS 16. Earlier SDK versions will continue supporting iOS 15.
If your dependencies do not specify a version number, your IDE will load the newest SDK version and new builds of your app will not support iOS 15.
Specify a version of the Maps, Places, and Navigation SDKs for iOS in your application's build dependencies in order to control when you raise the minimum supported OS for new versions of your app.
According to the Mobile OS version support policy, we are freezing support for iOS 14 as of Maps SDK for iOS v9.0.0. The new minimum supported OS is iOS 15. Earlier SDK versions will continue supporting iOS 14.
If your dependencies do not specify a version number, your IDE will load the newest SDK version and new builds of your app will not support iOS 14.
Specify a version of the Maps SDK for iOS in your application's build dependencies in order to control when you raise the minimum supported OS for new versions of your app.
You can now use data-driven styling for datasets with your apps. Data-driven styling for datasets lets you upload your own geospatial datasets, apply custom styling to their data features, and display those data features on maps.
For more information and examples, see Data-driven styling for datasets.
Updated the default colors for maps to match the new colors that are already available in the Google Maps app. For more information, see New map style for Google Maps Platform.
The Apple Privacy Manifest file is now included in the resources bundle for the SDK. For more information, see Inspect the privacy manifest file.
You can now set the map color scheme to dark, light, or to use the system settings.
For more information and examples, see Map color scheme.
Simplified the install process when using the Swift Package Manager by changing the dependencies for the Maps SDK for iOS. Previously, you had to add dependencies for GoogleMapsBase
, GoogleMapsCore
, and GoogleMaps
to your project. With this release, you only have to add GoogleMaps
. We have also removed GoogleMapsM4B
from the Maps Swift package.
Because of this change, if you upgrade from an older version to 9.0.0, you need to remove GoogleMapsBase
, GoogleMapsCore
, and GoogleMapsM4B
from your project dependencies after you upgrade to version 9.0.0.
Since Apple has deprecated OpenGL support as of iOS 12 (2018), support for the OpenGL renderer and the setMetalRendererEnabled
boolean in the Maps SDK for iOS is deprecated as of v9.0.0 , and will be unsupported in the major version that will be released in the second quarter of 2025.
Instead, use the Metal renderer, which has been default since Maps SDK for iOS v8.0.0, and remove setMetalRendererEnabled
from your codebase.
April 01, 2024
With the release of the Places SDK for iOS version 8.5, the latest version of the Maps SDK for iOS remains v.8.4.0.
The new minimum supported version of Xcode is 15.0.
February 20, 2024
To streamline the SDK, the obsolete GoogleMapsM4B module in the Maps SDK for iOS is deprecated as of February 2024, and will be unsupported in the major version that will be released in the second quarter of 2025.
Since the GoogleMapsM4B module is related to an obsolete billing plan, it is safe to remove dependencies on the legacy GoogleMapsM4B module in your app. If you use CocoaPods to install the Maps SDK for iOS, remove the GoogleMapsM4B
pod from the list of dependencies in your Podfile. If you manually install the Maps SDK for iOS, remove the GoogleMapsM4B framework
from your project.
February 05, 2024
Release 8.4.0
The Maps SDK for iOS version 8.4.0 is now available. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed.
If you are a new user, see Set up your Google Cloud project to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
234007610 : Fix for zoomed out Polyline rendering on Metal.
December 14, 2023
Release 8.3.1
Infrastructure update. The Maps SDK for iOS now supports Swift Package Manager.
Using Xcode's Swift Package Manager integration, you can add or update the Maps SDK dependency directly from Xcode. Select the version of the Maps SDK for iOS that you want to use. For new projects, Google recommends you specify the latest version and use the option "Exact Version".
To learn how to add the Maps SDK for iOS to a project through Swift Package Manager, see the Set up an Xcode project guide.
November 28, 2023
Fixed a crashing bug for Maps SDK.
November 14, 2023
Release 8.3.0
The Maps SDK for iOS version 8.3.0 is now available. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed.
If you are a new user, see Set up your Google Cloud project to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
The Google Maps Platform now offers updated cloud-based maps styling in the Google Cloud Console, enhancing your ability to create a customized map experience for users of your iOS applications. Learn more at New Cloud Styling Overview.
When initializing your map view, configuration options are now set with GMSMapViewOptions. Option properties include the frame
, camera
, mapID
or backgroundColor
. For developers who subclass the GMSMapView
, you will also need to update your initializer.
The new GMSMapViewOptions backgroundColor
property allows you to override the default map background color.
October 05, 2023
Infrastructure update. For versions of Maps SDK 8.0.0 or greater, the default renderer has been changed to Metal. We encourage customers to remove calls to GMSService.setMetalRendererEnabled from their code as this method will be deprecated.
September 19, 2023
See the Release Notes for information about this update and for all previous updates or subscribe to the Release Notes XML feed.
If you are a new user, see Set up your Google Cloud project to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
As of version 8.0.0, the Maps SDK now supports advanced markers. With advanced markers you can customize the default marker's background, border, glyph text, collision behavior and replace the default marker icon with a custom graphic image.
For more information, see the advanced markers overview.
As of version 8.0.0, the Maps SDK now supports data-driven styling for boundaries. Data-driven styling for boundaries lets you access Google's polygons for administrative boundaries, apply styling to boundary polygons, display them on your maps.
For more information, see the data-driven styling for boundaries overview.
September 05, 2023
Release 8.2.0
The Maps SDK for iOS version 8.2.0 is now available. Version bump, no changes. This version is functionally identical to v.8.1.0. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed.
If you are a new user, see Set up your Google Cloud project to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
July 24, 2023
Release 8.1.0
The Maps SDK for iOS version 8.1.0 is now available. Version bump, no changes. This version is functionally identical to v.8.0.0. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed.
If you are a new user, see Set up your Google Cloud project to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
May 17, 2023
Release 8.0.0
The Maps SDK for iOS version 8.0.0 is now available. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed.
If you are a new user, see Set up your Google Cloud project to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
According to the Mobile OS version support policy, we are freezing support for iOS 13 as of Maps SDK for iOS v8.0.0. The new minimum supported OS is iOS 14. Earlier SDK versions will continue supporting iOS 13.
If your dependencies do not specify a version number, your IDE will load the newest SDK version and new builds of your app will not support iOS 13.
Specify a version of the Maps SDK for iOS in your application's build dependencies in order to control when you raise the minimum supported OS for new versions of your app.
Sprite Stamped polylines are now supported with the Metal Framework. This allows you to create a polyline using a repeating bitmap image of your choice. Shapes show with a clear background stroke, but the stamp is not truncated around line corners - making them useful for situations such as dots for illustrating walking directions. For more information see Sprite Stamped Polylines.
The new mapCapabilities
property on GMSMapView
adds programmatic checking for map-specific features. Included is support for Sprite Stamped Polylines. For more information see Map Capabilities.
The new minimum supported version of Xcode is 14.0. Note the deprecations in the Xcode 14 release notes about the end of support for building with bitcode.
May 15, 2023
Freezing support for iOS 14
According to the Mobile OS version support policy, we are freezing support for iOS 14 in an upcoming major version of
Versions of Maps SDK for iOS released beginning the second quarter of 2024 will support a minimum of iOS 15. Earlier SDK versions will continue supporting iOS 14.
If your dependencies do not specify a version number, your IDE will load the newest SDK version and new builds of your app will not support iOS 14.
Specify a version of the Maps SDK for iOS in your application's build dependencies in order to control when you raise the minimum supported OS for new versions of your app.
February 27, 2023
Release 7.4.0
The Maps SDK for iOS version 7.4.0 is now available. Version bump, no changes. This version is functionally identical to v.7.3.0. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed.
If you are a new user, see Set up your Google Cloud project to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
January 12, 2023
Release 7.3.0
The Maps SDK for iOS version 7.3.0 is now available. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed.
If you are a new user, see Set up your Google Cloud project to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
Maps SDK framework installation with CocoaPods now includes built-in support for XCFramework. This framework allows developers to build code for Xcode Simulator on M1 Macs.
November 03, 2022
Release 7.2.0
The Maps SDK for iOS version 7.2.0 is now available. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed.
If you are a new user, see Set Up in the Google Cloud Console to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
234007610 : Polyline spans fixed for paths with duplicate points on Metal.
August 29, 2022
Release 7.1.0
The Maps SDK for iOS version 7.1.0 is now available. See the Release Notes for information about this release and for all previous releases.
If you are a new user, see Set Up in the Google Cloud Console to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
With this release, we have updated the default image used for markers in the Maps SDK for iOS.
239943840: Updated the draggable marker experience.
August 15, 2022
Freezing support for iOS 13 - August 15, 2022
According to the Mobile OS version support policy, we are freezing support for iOS 13 in an upcoming major version of Maps and Places SDKs for iOS.
Versions of Maps and Places SDKs for iOS that release beginning the second quarter of 2023 will support a minimum of iOS 14. Earlier SDK versions will continue supporting iOS 13.
If your dependencies do not specify a version number, your IDE will load the newest SDK version and new builds of your app will not support iOS 13.
Be sure to specify a version in your application's build dependencies in order to control when you raise the minimum supported OS for new versions of your app.
With this release of the Maps SDK for iOS, we have moved the XML feed to a new location. Subscribe to the new location of the XML feed at:
https://developers.google.com/feeds/maps-sdk-ios-release-notes.xml
Version 7.0 - June 27, 2022
Support for iOS 12 is now frozen. The minimum iOS version is now 13.0.
The new minimum version of Xcode is 13.0.
Version 6.2.1 - May 9, 2022
Bug fixes
Fix an issue where apps running in the iOS simulator would crash when using the Metal renderer (Issue 208593323).
Fix crash that occurred occasionally when a GMSMapView instance was released.
Version 6.2.0 - April 25, 2022
Features
cloud-based maps styling lets you style, customize, and manage your maps using the Google Cloud Console. cloud-based maps styling is a paid feature accessed by adding a map ID to your app. The map ID triggers a map load charged against the Dynamic Maps SKU for Maps SDK for iOS.
In previous releases of the Maps SDK for iOS, if you exceeded your usage quota for the map ID, your app displayed an error message to the user. With this release, if you exceed your usage quota, cloud-based maps styling is disabled and your map appears without any custom styling. Error messages are no longer displayed to the user.
Version 6.1.1 - March 22, 2022
Bug fixes
Fixed an issue where labels disappeared at certain zoom levels when using a custom style.
Fixed an issue where a deadlock could occur when using the Metal renderer.
Version 6.1.0 - March 9, 2022
Features
- Version bump with no feature changes. Added stability improvements and bug fixes to the release.
Versions 2.5 and lower deprecation - January 26, 2022
Maps SDK for iOS v2.5 and lower are now deprecated and will be fully decommissioned in January 2023.
Application versions built with Maps SDK for iOS v2.5 and lower will no longer work after those versions are decommissioned. To avoid disruption for your users, build new versions of your application with Maps SDK for iOS v2.6 or higher and encourage users to upgrade to the newer versions of your app before January 2023.
Note that v2.6 supports a minimum of iOS 8, which will be the new minimum OS supported by Maps SDK for iOS, so users may need to upgrade their version of iOS as well.
Version 2.6 also supports a minimum of Xcode 8.0, so this deprecation also raises the minimum IDE supported by Maps SDK for iOS.
Be sure to specify a version in your application's build dependencies in order to control which version of the SDK you build with, which has implications on minimum OS supported for your users. See the guidance on app maintenance best practices which encourages specifying the newest version available in order to access the latest features and bugfixes.
Version 6.0.1 - December 9, 2021
Features
- Added stability improvements to the release.
Version 6.0.0 - November 29, 2021
Features
The
appearAnimation
field on GMSMarker can now be set tokGMSMarkerAnimationFadeIn
to cause the marker to fade in when added.(Beta) This release contains a preview of support for the XCFramework format. You can now install the Maps SDK for iOS as an XCFramework, a binary package that you can use on multiple platforms including machines using the M1 chipset.
Google recommends that you only use this Beta release for development and testing, and rely on the
.framework
version of the SDK for your production apps.
Bug fixes
- Fixed an issue where custom tile images with alpha transparency were not being rendered properly by GMSTileLayer.
Support for iOS 11 is now frozen. The minimum iOS version is now 12.0.
The new minimum version of Xcode is 12.0.
Support for cloud-based maps styling (paid feature) - October 27, 2021
Support for cloud-based maps styling is generally available as of October 27, 2021 in SDK versions 5.0 and newer. These features, tied to a map ID, will incur charges against the Dynamic Maps SKU.
Version 5.2.0 - October 19, 2021
Features
Opt-in support added for using the Metal rendering framework from Apple. To try the Metal renderer in your app, call
[GMSServices setMetalRendererEnabled:YES]
in Objective-C, orGMSServices.setMetalRendererEnabled(true)
in Swift before creating any map views.If you are Installing the SDK manually, you must also ensure to add the
Metal.framework
in XCode.Polylines can now have a repeated image, or stamp, over the line. See the GMSPolyline Class reference for more information.
Bug fixes
- Fixed an issue in the OpenGL renderer where marker images were drawn slightly smaller than intended.
Known issues
Texture stamp images can appear distorted on polylines when using the OpenGL renderer (Issue 200024432).
Polylines with segments that meet at an acute angle may appear differently on the OpenGL or Metal renderers (Issue 200025456).
Freezing support for iOS 12 - October 18, 2021
In response to changes in our internal dependencies, we are freezing support for iOS 12 in an upcoming major version of Maps SDK for iOS.
Versions of Maps SDK for iOS released beginning the second quarter of 2022 will support a minimum of iOS 13. Earlier SDK versions will continue supporting iOS 12.
If your dependencies in CocoaPods or Carthage do not specify a version number, Xcode will load the newest version and new builds of your app will not support iOS 12.
Be sure to specify a version in your application's build dependencies in order to control when you raise the minimum supported OS for new versions of your app. See the guidance on app maintenance best practices.
Beta SDK deprecation - August 18, 2021
Deprecation
The Beta versions of Maps SDK for Android and iOS are now deprecated and will be fully decommissioned in late 2022. A supported version of the Maps SDK for Android and iOS will be made available at least one year prior to the beta SDK being fully decommissioned, which is estimated to occur in late 2022.
The use of the mobile Maps SDKs (Android & iOS) Beta will be degraded per the following schedule:
For Android:
- As of the date of this release note, the Maps SDK for Android Beta (versions 3.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 part of the Google Play services SDK.
- Support for the Maps SDK for Android Beta (versions 3.0.0 to and 3.1.0) will cease no earlier than November 2022.
For iOS:
- As the date of this release note, the Maps SDK for iOS Beta (versions v3.0.0 and v3.10.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 cease no earlier than November 2022.
On all platforms, the Beta SDKs will be fully decommissioned, at least one year after a supported (non-Beta) version is released. We will communicate with you again once the new version is released, so that you can start your migration efforts.
What do you need to do?
If you are not currently using features in Beta (maps customization, marker collision handling, or polyline customization—Android, iOS), please update your apps to use a supported version as soon as possible before the decommission in late 2022. See 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.
Freezing support for iOS 11 - July 20, 2021
In response to changes in our internal dependencies, we are freezing support of iOS 11 in an upcoming major version of Google Maps Platform SDKs for iOS.
Versions of Maps SDK for iOS released beginning the fourth quarter of 2021 will support a minimum of iOS 12. Earlier SDK versions will continue supporting iOS 11.
If your dependencies in CocoaPods or Carthage do not specify a version number, Xcode will load the newest version and new builds of your app will not support iOS 11.
Be sure to specify a version in your application's build dependencies in order to control when you raise the minimum supported OS for new versions of your app. See the guidance on app maintenance best practices.
Version 5.1.0 - June 28, 2021
Bug fixes
- Fixed an issue with the generated module map for frameworks without headers.
- The background color of the map view has been slightly changed.
- Support for iOS 11 will be frozen in an upcoming major version.
Version 5.0.0 - May 13, 2021
- Support for iOS 10 is now frozen. The minimum OS is now 11.0.
Deprecations
- ARMv7 32-bit architecture no longer supported.
This release also includes deprecations and updates for the Places SDK for iOS and Navigation SDK for iOS.
Version 4.2.0 - March 8, 2021
- Version bump, no changes. This version is functionally identical to v.4.1.0.
- Changes are coming in version 5.0.0:
- Support for iOS 10.0 will be dropped in version 5.0.0.
- To avoid unexpected errors, be sure to specify a version number in your Podfile or Cartfile. This will ensure that your builds remain stable against a known version, and will not switch to the next major version until you are ready to update your code.
Version 4.1.0 - December 8, 2020
Features:
- Added crash detection during SDK initialization. In cases where two or more
consecutive crashes are detected at initialization time, the SDK will attempt
to restore functionality by automatically resetting cached map tile data. A
recovery attempt event will be logged unless the client has opted out of
abnormal termination reporting via the
setAbnormalTerminationReportingEnabled:
API onGMSServices
.
Version 4.0.0 - October 13, 2020
Features:
- Support for iOS 9.0 has been dropped. The new minimum is iOS 10.0.
- The new minimum version of Xcode is 11.7.
- By default, abnormal SDK terminations, such as app crashes while the SDK is
still running, are monitored. This allows Google to improve SDK stability when
applicable. There is also an option to opt-out by using the
setAbnormalTerminationReportingEnabled:
API onGMSServices
.
Version 3.10.0 - August 10, 2020
- Version bump, no changes. This version is functionally identical to v.3.9.0.
- There is a new Maps Swift Demo App in Google Maps cocoapods.
Note:
- To build apps using the Maps SDK for iOS, the current minimum IDE version supported is Xcode 11.5.
Version 3.9.0 - May 26, 2020
Improvements
- The demo app has been improved.
Bug fixes
- Fixed issue where apps would crash when resizing map view in some circumstances (Issue 152145655).
- Fixed issue where apps would crash when particular custom styles were used (Issue 73344082).
- Some types of camera move animations were skipped if initiated before the map view had gone through a layout cycle (Issue 80065881).
Version 3.8.2 - May 18, 2020
Bug fixes
- Fixed an issue where apps using the Maps SDK for iOS would crash upon startup.
Version 3.8.0 - February 18, 2020
- Version bump, no changes. This version is functionally identical to v.3.7.0.
Note:
- To build apps using the Maps SDK for iOS, the current minimum IDE version supported is Xcode 11.0.
Version 3.7.0 - December 2, 2019
- Version bump, minor bug fixes only. This version is functionally identical to v.3.6.0.
Version 3.6.0 - October 28, 2019
- Version bump, no changes. This version is functionally identical to v.3.5.0.
Version 3.5.0 - October 08, 2019
Resolved Issues:
- Fixed missing info window title in dark mode on iOS 13 (Issue 137173762).
Version 3.4.0 - September 04, 2019
- Version bump, no changes. This version is functionally identical to v.3.3.0.
Version 3.3.0 - July 29, 2019
Features
- Added the
SDKLongVersion
method, which returns the long version of the Maps SDK for iOS.
Resolved Issues
- Fixed a long-standing intermittent crash on startup related to CoreData cache (Issue 111132807).
Version 3.2.0 - July 8, 2019
Resolved Issues:
- Fixed an issue when rendering polygons that would result in incorrect shapes being drawn.
- Fixed a crashing bug that occurred occasionally when removing overlays from a map.
Improvements:
- Reduced the amount of work done when the map is hidden by other views to improve CPU usage.
Version 3.1.0 - April 16, 2019
Resolved Issues:
- Indoor maps are now styled to match outdoor maps (Issue 35830576).
- Fixes an issue where a crash could occur if markup entities were added to the map before the map was ready to draw.
Version 3.0.0 - January, 2019
- Support for iOS 8.0 has been dropped. The new minimum is iOS 9.0.
Known Issues:
- There is an occasional rendering bug when using the polygon overlay feature.
Old Style Removed - November 1, 2018
Features:
- Removed support for the old basemap style. The opt-in and opt-out API options (see below) are no longer supported. This applies to all versions of the Maps SDK for iOS. See the blog post for more information about the new style.
New Style Default - June 28, 2018
Features:
Enabled the new basemap style by default. You can still opt-out temporarily if you need time to modify your app to accommodate the new style. If you do, please follow Issue 72853293 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, use the code snippet below. The best place to do this in your app is right after providing your API key, via
GMSServices provideAPIKey
. You must be using at least Version 2.6.0 in order to opt-out. If you had previously opted-in to the new basemap style, this should replace the code you added to opt-in. See the blog post for more information about the new style.NSArray *options = @[@"B3H9HE845CFHYG"]; BOOL didSetApiOptions = [GMSServices provideAPIOptions:options]; NSLog(@“Options were set: %d”, didSetApiOptions);
Version 2.7.0 - April 18, 2018
Improvements:
- Improved documentation on thread safety of
GMSServices
.
Resolved Issues:
- Fixed crash in
GMSDASHStreamingBody
(Issue 68701108). - Fixed Google Logo positioning in
GMSPanoramaView
(Issue 72581496).
Note:
- Support for Xcode 8.0 has been dropped. The new minimum is Xcode 9.0.
New Style Opt-In - February 13, 2018
Features:
Enabled opt-in for the new basemap style. To opt-in, use the code snippet below. The best place to do this in your app is right after providing your API key, via
GMSServices provideAPIKey
. You must be using at least Version 2.6.0 in order to opt-in. See the blog post for more information about the new style.NSArray *options = @[@"B3MWHUG2MR0DQW"]; BOOL didSetApiOptions = [GMSServices provideAPIOptions:options]; NSLog(@“Options were set: %d”, didSetApiOptions);
Version 2.6.0 - February 6, 2018
Features:
- Added a mechanism for developers to enable experimental features.
- Added a click listener to the My Location dot. This allows developers to respond to interactions with the My Location dot.
- Added a Source attribute to Panorama searches allowing them to be restricted to outdoor-only results. Note that this feature is experimental and some searches may still include indoor panoramas (Issue 72250080).
Improvements:
- Updated the default marker to match the new Google Maps marker.
- iOS 11 OpenGL crash reduction (Issue 68699629).
Resolved Issues:
- Fixed a compile error when the
-Wobjc-property-no-attribute
flag is used (Issue 65561405).
Note:
- CoreImage has been added as a dependency.
Version 2.5.0 - October 2017
Features:
- Added the paddingAdjustmentBehavior property to GMSMapView. This property controls how safe area insets interact with padding.
Improvements:
- Improved iOS 11 & iPhone X support. (Issue 64504919, Issue 63686068.)
- GMSMapView and GMSPanoramaView managed subviews are now positioned within iPhone X device safe areas by default.
Resolved Issues:
- Fixed an issue where Xcode 9's Main Thread Checker warns that [UIApplication applicationState] is being called on a background thread. (Issue 63322270.)
- Fixed an issue where setting either navigationLinksHidden or streetNamesHidden to YES still resulted in the navigation links and street names appearing. (Issue 64210766.)
Version 2.4 - August 2, 2017
Resolved Issues
- Addressed a crash when using GMSPanoramaView with an application moving to the background state. (Issue 63665236.)
Version 2.3.1 - June 19, 2017
Resolved Issues
- Fixed an issue where navigating between panoramas did not consistently raise GMSPanoramaView delegate events. (Issue 62290311.)
- Fixed an issue resulting in a crash when UIWebView and GMSPanoramaView are both in the view hierarchy at the same time. (Issue 62279895.)
- Reinstated the tap-drag zoom gesture for GMSPanoramaView. (Issue 62218602.)
Version 2.3 - May 30, 2017
Improvements
- The internals of the GMSPanoramaView and associated classes have had a significant overhaul. These changes should generally give improved performance.
- Dropped support for iOS 7, which enabled the use of modern core data threading models. This means that applications should be able to use -com.apple.CoreData.ConcurrencyDebug 1 when debugging with iOS 10 devices. (Issue 35829579.)
Resolved Issues
- Fixed case sensitivity issues with imports in GMSTileLayer.h and GMSPolyline.h. (Issue 35831050.)
Version 2.2 - February 14, 2017
Features
- Added the
cameraTargetBounds
property toGMSMapView
. This property restricts the camera target to the specified bounds area. Subsequent gestures are then also restricted to keep the camera target within the specified bounds. - The
userData
property ofGMSMarker
was moved to its parent classGMSOverlay
. This enables the property to be used with theGMSPolyline
,GMSPolygon
,GMSCircle
, andGMSGroundOverlay
classes.
Improvements
- Fixes naming of certain enum cases in Swift. The following enums are
affected:
GMSMapViewType
,GMSFrameRate
,GMSMarkerAnimation
, andGMSLengthKind
.
Resolved Issues
- Fixed an issue where the
mapViewSnapshotReady
delegate method was sometimes raised too early (Issue 10799.)
Version 2.1.1 - November 8, 2016
Resolved Issues
- Fixed an issue which caused many Road Shields to not be displayed when custom styling is active even if the custom styling didn't attempt to style them.
- Renamed some symbols which could cause duplicate symbols when using all_load and Firebase. (Issue 10631.)
- Resolved a problem where changing any property of polygon, polyline or ground overlay in between taps would cause tap cycling to break. This could make it seem impossible to tap through to items underneath. (Issue 10436.)
- Fixed cameraForBounds:insets: to respect the currently set min and max zoom restrictions. (Issue 10817.)
Version 2.1 - September 22, 2016
Features
This release introduces custom styling of the base map (Issue 4968). You can use a JSON style declaration to create a
GMSMapStyle
instance and pass it to themapStyle
property, to change the visual display of features like roads, parks, businesses, and other points of interest. You can use styling to emphasize particular components of the map, or make the map complement the style of your app. Styling works only on thekGMSTypeNormal
map type.- See the quick guide to styling your map, using night mode as an example style.
- Use styling to prevent certain features from appearing on the map.
- Learn the full power of custom styling in the style reference.
It is now possible to apply "night mode" to maps, by applying custom styles. (Issue 5661.)
Business points of interest (POIs) now appear by default on the map, provided that the map type is
kGMSTypeNormal
. Prior to this release, local POIs appeared on the map, but not business POIs). Business POIs represent businesses such as shops, restaurants, hotels, and more. See the guide to points of interest.With the addition of business points of interest, there is a new optional method
didTapPOIWithPlaceID
onGMSMapViewDelegate
which provides notification when a POI has been tapped. (Issue 8174.)You can hide POIs on a map by using map styling.
Resolved Issues
- Renamed the
canGoOffline
selector internally, to avoid triggering false positives during submission to the Apple app store. (Issue 10393.) - The
iconView
property ofGMSMarker
is now correctly marked as nullable. (Issue 10391.) - Renderer in iOS has been updated to avoid a race condition which would cause rendering to not stop in time when an app transitions to background. (Issue 10224.)
GMSPath
initFromEncodedPath
now returns nil for invalid input (previously invalid input could result in a crash). (Issue 10162.)- An additional method was added to
GMSMapView
, which compares two camera positions to determine whether they are close enough to render identically. (Issue 9494.) GMSCircle
will now always draw at least a dot for small radius circles, including radius 0. (Issue 9528.)
Version 2.0.1 - July 29, 2016
Resolved Issues
- Array properties are now correctly typed when accessed from Swift. (Issue 10183.)
Version 2.0.0 - July 26, 2016
Improvements
- This release splits the Places API from the Maps SDK. Previously, if you wanted to use the Places API you had to include all of GoogleMaps. As a result of the split, the final size of the Places API binary is 70% smaller than the previous combined binary. If you are using only the Maps SDK you will not be affected unless you have pinned your dependency on GoogleMaps to a version earlier than 2.0. In this case, you should update this restriction in your Podfile. If you are using the Places API, see Migrating to Places SDK for iOS.
- Places SDK demos are now available separately from Maps demo apps.
Resolved Issues
- The GoogleMaps binary has been reduced to less than 100MB to avoid exceeding GitHub's file size limit. (Issue 9030.)
- The Maps framework is now available as a download for manual installation. For details, see Get Started. (Issue 8856.)
- GMSGroundOverlays now correctly respond to touch input when rotated. (Issue 9544.)
- Marker info windows now render consistently (Issue 9670, Issue 9819.)
- Info windows created using the return value of mapView:markerInfoContents: will now correctly respect the height of the returned content rather than always being square based on the width.
- Fixed an issue where texture cache limit is exceeded on devices supporting @3x sized images. (Issue 9859.)
Utility library update - July 19, 2016
Features
- The new marker clustering utility helps you manage multiple markers at different zoom levels on the map. By clustering your markers, you can put a large number of markers on a map without making the map hard to read. Get the utility library from GitHub, follow the setup guide, and see how to implement marker clustering in your app. (Issue 5723.)
Version 1.13.2 - May 12, 2016
Resolved Issues
- Added a workaround to avoid the false positive for the non-public API imageWithName: selector. (Issue 9704.)
Version 1.13.1 - May 02, 2016
Resolved Issues
- Fixed an application hang when using a UIView with autolayout enabled as an info window or as a marker iconView. (Issue 9525.)
- Changed lookUpPlaceID to not call its callback twice in error scenarios. (Issue 9310.)
Version 1.13.0 - March 29, 2016
Features
- UIView based markers. Marker content can now show advanced animations by providing a custom view hierarchy to be displayed through the iconView property. See the documentation for details. (Issue 5203.)
- Info windows can now have their custom views animated. Set tracksInfoWindowChanges on the associated marker to YES to enable real-time updates. (Issue 5559.)
- Map rendering now defaults to 60fps on modern iOS devices. Set the new preferredFrameRate property on GMSMapView to revert to the old behavior (Conservative) or a new low frame rate option to save battery (PowerSave). (Issue 5066.)
- Added mapViewSnapshotReady: to GMSMapViewDelegate which fires when map content, including markers and other overlays, has been fully rendered.
- Autocomplete widgets in the Places API now provide options for custom styling.
Resolved Issues
- GMSCoordinateBounds initWithVisibleRegion: now chooses correct bounds for large viewports.
- Added a workaround to avoid a graphical glitch in snapshots taken using pre iOS 7 methods when the My Location button is disabled. (Issue 9173.)
- GMSAutocompleteViewController now works when used in a storyboard.
- Added missing Place Type constants. (Issue 8121.)
Version 1.12.3 - February 2016
Resolved Issues
- Fixed corruption in included bitcode that caused Xcode archive action to fail. (Issue 9368.)
- Added a workaround for a limitation in Xcode 6.4 which was failing to compile the included headers.
Version 1.12.2 - February 2016
Features
- Added place photos to the Places API. (Issue 8202.)
- Added structured address components to GMSPlace objects. (Issue 8121.)
- SDK method signatures have been updated with generics and nullability annotations.
Resolved Issues
- GMSPlace objects now contain rating and price level where available.
- Minor bugfixes for the autocomplete widget UI.
- panoramaView:didMoveCamera: is no longer raised during the panoramaView delegate setter. (Issue 5630.)
- Old unused logo files have been removed from the SDK. (Issue 9148.)
- Tap events on polygons near the anti-meridian are more reliable.
- Resolved an issue resulting in unrecognized selector crashes when calling class methods on categories. (Issue 9000.)
Version 1.12.1 - February 2016
This version is exactly the same as 1.11.1. It was released to replace the removed 1.12.0 release.
Version 1.12.0 - February 2016
This version was removed because of errors in the framework and should not be used.
Version 1.11.1 - December 2015
Resolved Issues
- Modally presented Place Autocomplete widgets now correctly respect UINavigationBar appearance proxy settings.
- Resolved minor UI issues with the Place Autocomplete widgets.
- Updated GoogleMaps.bundle info.plist to avoid triggering checks in pre-submission verification. (Issue 8488.)
Version 1.11.0 - December 2015
Features
- Bitcode is now included in the SDK binary for all device architectures. (Issue 8219.)
- Added Place Autocomplete widget classes.
- New events for long press on an info window, and closing an info window, have been added to GMSMapViewDelegate.
- GMSMapViewDelegate has new events to indicate when map tiles and labels are pending and finished rendering. (Issue 5430.)
- GMSPanoramaViewDelegate has new events to indicate when panorama tiles are pending and finished rendering. (Issue 5430.)
- GMSGroundOverlay now supports an alpha multiplier via the opacity property.
- Added a holes property to GMSPolygon to allow for the subtraction away from the filled area in order to create more complex shapes. (Issue 5464.)
- At zoom levels greater than 14, the maximum tilt has been increased. (Issue 5169.)
- Added an autocomplete screen to the Place Picker.
- Split autocomplete predictions into primary and secondary text fields.
- Added a country filter option to GMSAutocompleteFilter.
- Added a viewport field to GMSPlace.
Resolved Issues
- Correct handling of taps on overlapping markers. (Issue 7587, Issue 8591.)
- Address a race condition dependent crash which can happen when an application enters and leaves the background while showing a map. (Issue 7011.)
- Fix blank maps which can happen when launching an app into the background. (Issue 8510.)
- Workaround issues with core animation that caused markers to jump. (Issue 8451.)
- Updated to avoid subtle conflicts with applications which use google-toolbox-for-mac.
- Use the iPhone language instead of the region formatting language for Places API results (Issue 8536.)
Notes - Setting GMSMapView selectedMarker to a marker not on the map is now ignored, always set the marker's map property before attempting to select it.
Version 1.10.5 - October 2015
Resolved Issues
- Worked around an issue in the Swift compiler's handling of umbrella header module entries. (Issue 8524.)
Version 1.10.4 - October 2015
Resolved Issues
- Fixed a crash on iOS 9 when dismissing the place picker without a selection. (Issue 8672.)
- Fixed a crash when using both a GMSMapView and a UIWebView or WKWebView in the view hierarchy at the same time. (Issue 8343.)
- Recompiled with Xcode 7 to avoid raising failed to load optimized model log messages on iOS 9 devices. (Issue 8459.)
Version 1.10.3 - September 2015
Features:
- Google logos have been updated.
Resolved Issues:
- Framework now ships with the device version of bundles to pass Xcode 7 archive checks. (Issue 8568.)
Version 1.10.2 - August 2015
Resolved Issues:
- Fixed a crash releasing a map view while in background. (Issue 8200.)
- Resolved a conflict with apps using gtm-session-fetcher resumable downloads.
- Recompiled with Xcode 6.4 to avoid some bugs in Xcode 6.3 compiler.
- Updated GoogleMaps.bundle info.plist to avoid triggering new checks in pre-submission verification. (Issue 8488.)
Version 1.10.1 - June 2015
Resolved Issues:
- Fixed an issue where instantiating GMSPlacesClient triggered a request to the user to enable Bluetooth on the device.
- Miscellaneous improvements to the GMSPlacePicker UI.
Version 1.10.0 - May 2015
Features:
- The Places SDK for iOS is now included in the SDK framework, so you can connect people to places in your iOS apps. If you want to use the Places SDK for iOS in your project, please refer to the getting started guide.
- CocoaPods is now the fully-supported means of installing and upgrading the Maps SDK for iOS. CocoaPods is an open source dependency manager for Swift and Objective-C Cocoa projects. Below is a short guide to migrating from earlier versions of the Maps SDK for iOS. See the getting started guide for full instructions.
- A new
allowScrollGesturesDuringRotateOrZoom
property onGMSUISettings
allows you to control whether the user can scroll by panning during multi-touch rotate or zoom gestures. (Issue 7737.) GMSPanoramaView
now supports being used in storyboard.GMSGeocoder
now supports being used while the app is in the background.GMSServices sharedServices
can now be called while the app is in the background. Note that if the first call tosharedServices
occurs while the app is in the background, some async initialization work will be deferred until the first time a map is shown where it will be performed synchronously.GMSMapView
andGMSPanoramaView
init messages can now be handled while the app is in the background. This should remove the last case whereGMSMapView
orGMSPanoramaView
could not be used in the background. (Issues 7860, 8007, 8037, 7896, 7951.)GMSMapView
andGMSPanormaView
delegate properties now supportIBOutlet
for easier use in storyboard. (Progress towards a fix for issue 6866.)
Resolved Issues:
mapView:didTapMyLocationButtonForMapView:
is now correctly called even if no location is available. (Issue 7742.)GMSGroundOverlay
now shows correctly when rotated if image aspect ratio doesn't match the selected ground region. (Issue 7772.)- Fixed an issue resizing the map on iOS 8.
- Fixed a rare crash under fast camera changes. (Issue 7885.)
- Map no longer hangs when adding a ground overlay with certain invalid bounds. (Issue 7701.)
- Fixed a crash when texture memory is exhausted by markers. (Issue 7638.)
- Correctly returns the tapped
GMSCircle
tomapView:didTapOverlay:
for tappable circles. (Issue 6890.) mapView:idleAtCameraPosition:
is now called even if there is an ongoing update of the My Location dot. (Issue 7889.)
Notes:
- Due to an ABI change in the Xcode compiler, Xcode 6.3 is now the only supported version for compiling against Maps SDK for iOS. (Issue 7900.)
- The minimum target iOS version for Maps SDK for iOS is now 7.0. Version 6.0 is no longer supported.
Migration from 1.9.2 or earlier:
Versions 1.9.2 and earlier of the Maps SDK for iOS were available as a zip file containing a static framework. There was also the option to install recent versions from a CocoaPods pod. From version 1.10.0 onwards, the Maps SDK for iOS is available for installation only via CocoaPods.
If you previously installed the Maps SDK for iOS from a zip file containing a static framework:
- Remove all references to the previous framework from your Xcode project.
- Follow the instructions in the getting started guide to install the Maps SDK for iOS using CocoaPods.
If you previously installed the Maps SDK for iOS from the
Google-Maps-iOS-SDK
pod:
- Change your pod name to
GoogleMaps
. - Run
pod install
.
Version 1.9.2 - February 2015
Download version 1.9.2.
Resolved Issues:
- Show correct characters for Myanmar place labels. (Issue 7576)
- Fixed a small memory leak related to font registration. (Issue 7559)
- Fixed a large memory leak in rare cases where My Location is enabled and the user rotates the screen.
- Correctly show ground overlays defined by zoom level which extend across more than 180 degrees of longitude.
- Allow selected marker to be set during
mapView:didTapAtCoordinate:
. (Issue 7222) - Throw exception rather than crash when map services are initialized while the application is in the background.
- Raise
mapView:willMove:
andmapView:idleAtCameraPosition:
even for swipe motions which last less than 30ms. (Issue 7206) - Correctly handle animations starting while a gesture is decelerating. (Issue 7348)
- Always return an error from
GMSPanoramaService
callbacks if the panorama is nil. - Don't attempt to navigate to an empty panorama if
moveNearCoordinate:
resolves to nil. (Issue 7109)
Version 1.9.1 - December 2014
Download version 1.9.1.
Resolved Issues:
- Added workaround for false positive on
userEmail
private selector. (Issue 7310) - Improved handling of info windows for iPhone 6+ running applications in scaled mode. (Issue 7323)
Version 1.9.0 - October 2014
Download version 1.9.0.
Features:
- Support for iOS 8.
- Support for iPhone 6/6+. (Issue 7140)
- Support for Swift.
- UI elements have been updated for material design.
Resolved Issues:
- Fixed some memory reclamation issues.
- Improved handling of application background state transition.
Notes:
- In order to improve compatibility with Swift, two geometry library
functions have been renamed to avoid function overloading.
The new names are
GMSGeometryIsLocationOnPathTolerance
andGMSStyleSpansOffset
.
Version 1.8.1 - May 2014
Download version 1.8.1.
Resolved issues:
- Resolved GMSTileLayer not displaying. (Issue 6686)
- Resolved a rare case where an app would crash when displaying polylines while accessibility features are enabled. (Issue 6689)
mapView:willMove:
is no longer called alongside a tap gesture. (Issue 6702)- Resolved symbol collisions with the Protocol Buffer library.
Version 1.8.0 - May 2014
Version 1.8.0 has been replaced by version 1.8.1 and is no longer available for download.
Resolved issues:
- Resolved threading deadlock prominent on iPhone 4 running iOS 7.1 or later. (Issue 6484, Issue 6524)
GMSMapView
correctly releases some shared GL state previously causing memory leak. (Issue 5941, Issue 6265, Issue 6629)GMSPolyline
no longer crashes in some cases where its path contained more than 1024 segments. (Issue 6542)- The delegate method
mapView:idleAtCameraPosition:
is now only called once all user gestures are complete. (Issue 5718) - The Maps SDK for iOS now includes fonts for languages currently
unsupported by the iOS system, such as Khmer. (Issue 5228)
- These fonts may be safely removed from your
GoogleMaps.framework
if you have no interest in these regions, but some text may render as "[?]".
- These fonts may be safely removed from your
Version 1.7.2 - March 2014
Download version 1.7.2.
Resolved issues:
GMSPolyline
's are no longer grayscale on iOS 7.1.
Version 1.7.1 - March 2014
Version 1.7.1 has been replaced by Version 1.7.2 and is no longer available for download.
Resolved issues:
- Heading will only appear on My Location dot when available.
- Better reduction of colors on gradient or colored polylines at low zoom. (Issue 6386)
- The search radius is now respected when retrieving a
GMSPanorama
object. viaGMSPanoramaService
and onGMSPanoramaView
construction or move.
Version 1.7 - February 2014
Version 1.7 has been replaced by Version 1.7.2 and is no longer available for download.
Features
- Styled polylines: additional color options via
GMSPolyline
, including gradients and colors for any number of polyline segments. (Issue 4856)- Each polyline may be drawn with many
GMSStyleSpan
instances, configuring a unique color or gradient over an arbitrary number of segments. - Gradient or color may be specified via a
GMSStrokeStyle
. GMSPath
provides a helper category to determine distance along a path.GMSStyleSpans
helper to apply repeated styles along a polyline.
- Each polyline may be drawn with many
GMSGeocoder
now provides structured addresses viaGMSAddress
, deprecatingGMSReverseGeocodeResult
.- Added mutable version of
GMSCameraPosition
,GMSMutableCameraPosition
. - Delegate method for user tapping the My Location button.
- Added
GMSMapPoint
for linear interpolation between points in Mercator space on the Earth. - My Location dot now shows compass arrow. (Issue 5325)
- 3D building data is newly available for many places on the Earth.
Resolved issues:
GMSPolyline
width is much closer to screen width. (Issue 5788, Issue 5265)GMSPolyline
performance and memory improvements. (Issue 4904)- Reduced memory use of OpenGL textures.
- Floor picker is positioned correctly when My Location button is disabled. (Issue 5742)
cameraForBounds:insets:
onGMSMapView
now correctly accounts for padding. (Issue 6080)
Notes:
- To align with other Google Maps APIs,
GMSMapView
no longer provides helper methods to retrieve previously added overlays, such asmarkers
,polylines
andgroundOverlays
.
Version 1.6.2 - January 2014
Download Version 1.6.2.
Resolved issues:
- Resolved a gesture bug effecting full-screen maps on iOS 7. (Issue 6216)
- Resolved an issue where overlays were sometimes not initially tappable. (Issue 6143)
Version 1.6.1 - December 2013
Version 1.6.1 has been replaced by version 1.6.2 and is no longer available for download.
Resolved issues:
- Resolved a memory leak involving vector tiles.
- Markers not immediately added to a GMSMapView no longer fail to appear when configured at a later point. (Issue 6092)
- GMSMapView/GMSPanoramaView will now continue to render while your application is resigned. (Issue 5546)
Version 1.6 - November 2013
Version 1.6 has been replaced by version 1.6.2 and is no longer available for download.
Features
- The Maps SDK for iOS now supports 64-bit architectures. Both 32 and 64 bit binaries are built into the single GoogleMaps framework. The correct binary will be selected by Xcode based on your build settings. For instructions on building 64-bit applications, please refer to Apple’s 64-bit transition guide. (Issue 5806)
- Changed some instances of
CGFloat
to either afloat
ordouble
where it was more appropriate. - Added the ability to restrict min and max zoom on
GMSMapView
. (Issue 5882) - Added opacity on
GMSTileLayer
andGMSMarker
. - Core Animation on
GMSMapView
now requires model values to be set
Resolved issues:
- Info windows and tappable regions now rotate correctly with markers. (Issue 5896, Issue 5969)
- Padding on a
GMSMapView
is no longer clamped to its bounds (useful if setting padding on an initially zero-sized map). (Issue 5864) - Copyright information now animates when changing
GMSMapView
size or padding. - Info windows are removed if their
GMSMarker
is removed from aGMSMapView
. (Issue 5856) - My Location dot uses the last known location information when enabled. (Issue 5590)
- Resolved two rare race conditions that were causing crashes. (Issue 5795)
- Resolved an issue where retain cycles were causing memory leaks on
GMSMapView
andGMSPanoramaView
.
Version 1.5 - September 2013
Download Version 1.5.
Features
- This release officially supports iOS 7, and requires iOS 6.0 or later (iOS 5.1 is no longer supported).
- The 'animated' field on
GMSMarker
is now known asappearAnimation
, and may be set tokGMSMarkerAnimationNone
(default) orkGMSMarkerAnimationPop
. - The Maps SDK for iOS now ships with an
armv7s
slice. (Issue 4745) - Several new features for
GMSMarker
instances:- Markers can be made draggable using the
draggable
property, and new drag delegate methods have been added toGMSMapViewDelegate
. (Issue 4975) - Added
GMSMarkerLayer
, a customCALayer
subclass forGMSMarker
that supports animation of marker position and rotation. (Issue 4951, Issue 5743) - Changing a markers
position
will cause the marker to animate to the new location. - Added support for markers that appear flat against the Earth's surface.
- Added rotation property to rotate markers around their ground anchor.
- The
UIImage
used byGMSMarker
now supports the images and duration properties, and will animate images with multiple frames. - The
UIImage
used byGMSMarker
now supportsalignmentRectInsets
, and will adjustgroundAnchor
,infoWindowAnchor
, and the tappable region. (Issue 5729)
- Markers can be made draggable using the
- Added padding on
GMSMapView
, allowing you to indicate parts of the map that may be obscured by other views; setting padding re-positions the standard map controls, and the camera and camera updates will use the padded region. (Issue 5466, Issue 5728) GMSPanoramaView
andGMSPanoramaService
now support searching for panoramas with custom radius.- Added
cameraForBounds:insets:
toGMSMapView
, allowing construction of aGMSCameraPosition
for the map from a specifiedGMSCoordinateBounds
.
Resolved issues:
- The "My Location" button now clips within
GMSMapView
. (Issue 5764) - Reduced memory usage of
GMSMapView
through less aggressive tile caching. (Issue 5202) - Reduced the time taken to obtain
GMSServices
by moving some startup tasks to a background thread; obtaining this object early in your application (before creating aGMSMapView
or other objects) may improve performance. (Issue 5640) - Polylines may now be drawn twice, as required, if they have very large longitudinal span.
- Resolved a rounding error with very small polygons far from latlng (0,0). (Issue 5413, Issue 5654)
Migration from 1.4.x:
- Version 1.5 requires iOS 6.0 or later. Applications that must support iOS 5.1 should continue to use the most recent 1.4.x release.
The
animated
property of GMSMarker has been replaced with the new field:appearAnimation
. To maintain previous behavior, replace all references to theanimated
property as follows:marker.animated = YES;
Should be replaced with:
marker.appearAnimation = kGMSMarkerAnimationPop;
Changes to the
GMSMarker
.position
property are now animated. You can disable this animation with the following sample code.[CATransaction begin]; [CATransaction setDisableActions:YES]; marker.position = ...; [CATransaction commit];
Version 1.4.3 - August 2013
Resolved issues:
- Resolved several causes of modifying markers that could cause 'ghost' markers to appear. (Issue 5751)
- Resolved excess texture use when modifying animated markers. (Issue 5756)
Version 1.4.2 - August 2013
Resolved issues:
- Fixed a rare case where modifying an animated marker could cause 'ghost' markers to appear.
- Prioritized markers over other overlays for tappability.
Version 1.4.1 - August 2013
Features
- Tappable markers inside
GMSPanoramaView
using thepanoramaView:didTapMarker:
delegate method onGMSPanoramaViewDelegate
. (Issue 5622) - Added
GMSPanoramaLayer
, a customCALayer
subclass forGMSPanoramaView
that supports animation of the panorama camera. GMSPanoramaCamera
supports custom field of view (FOV).- Programmatic access to the floor picker allows you to enable or disable the selector, and set which floor should be displayed. (Issue 5623, Issue 5666)
GMSTileLayer
now supports high DPI tiles for use on a Retina device. (Issue 5402)GMSMapView.camera
is now observable via KVO.- Added
fitBounds:withEdgeInsets:
toGMSCameraUpdate
. (Issue 5475) - The default behavior of a
GMSMapView
to consume all gestures within its bounds may now be disabled viaconsumesGesturesInView
. (Issue 5552) - Expanded
GMSGeometryUtils
to include additional helper methods. GMSServices
may be held by applications to maintain cache and connection to Google; this can improve performance when creating and destroying many maps.- Improved visuals when resizing a
GMSMapView
viaUIView
animation methods.
Resolved issues:
- Fixed crash bug during memory warning (related to indoor). (Issue 5637)
- Fixed crash bug with indoor maps on iOS 5.1. (Issue 5664)
- Performance improvements when using hundreds of
GMSMarkers
. - Reduced memory footprint of
GMSMapView
. - Touch target for
GMSMarkers
matches the size and shape of the marker when theGMSMapView
is tilted. (Issue 5273) GMSMapView
will no longer render a single frame of black in some cases (noticeable e.g., insideUISplitViewController
on iPad).- Street View imagery is now adjusted correctly for tilted base data (e.g., data taken by a Street View car on a slope).
- Geodesic interpolation has been tweaked to be more correct.
- Fixed incorrect
GMSGroundOverlay
sizing that prevented some images from displaying. (Issue 5663) fitBounds:withPadding:
onGMSCameraUpdate
now correctly applies padding to all edges of the bounds; previously it used 1/2 padding on each edge.
Version 1.4.0 - July 2013
Features
- Support for Google Street View imagery, with coverage in 50+ countries.
- Added
GMSPanoramaView
, a viewer for Street View imagery, that enables both programmatic and user control. GMSMarker
s can be shared betweenGMSMapView
andGMSPanoramaView
.GMSPanoramaService
may be used to load panorama data ahead of display.
- Added
- Indoor floor plans and a floor selector control will now be displayed when available.
- Updated map design inspired by the new Google Maps.
- Info windows now show at 1:1 resolution on the screen regardless of tilt.
- Additional delegate methods on
GMSMapView
—mapView:willMove:
andmapView:idleAtCameraPosition:
— allow you to detect the start and end of camera movement, respectively. - An improved look and feel for polylines and polygon stroke.
- Added a
zIndex
property on all overlays. Z-Indexes are calculated in two groups:GMSMarker
s and all other overlays. - Added
GMSGeometryUtils
methods for heading, distance, offset etc. with respect to points on the Earth. - To align with other Google Maps APIs,
GMSGroundOverlay
no longer supports thezoomLevel
property. You can use the helper methodgroundOverlayWithPosition:icon:zoomLevel:
to migrate existing code.
Resolved issues:
- Improved the tappability of
GMSPolygon
. - The compass now disappears when the map returns to zero bearing for any reason, including animation.
- Resolved crash issue when creating a zero-sized
GMSPolygon
. - Resolved an issue where active gestures could cause a
GMSMapView
to not be released until deceleration completed. - Info windows no longer allow taps to pass through them.
- Accessibility elements on
GMSMapView
are now hidden by default. See the migration steps below if you wish to enable these elements.
Migration from 1.3.x:
Version 1.4 introduces changes to accessibility and ground overlays. If you make use of either of these in your application, you will have to modify any existing code as follows:
If your application relies on the accessibility elements of
GMSMapView
, set theaccessibilityElementsHidden
property toNO
.mapView_.accessibilityElementsHidden = NO;
Replace direct references to the
GMSGroundOverlay
zoomLevel
property with the newgroundOverlayWithPosition:icon:zoomLevel:
convenience method. Alternatively, you can position the image with a geographic bounds. The below code samples are equivalent.
Version 1.3.x assigned zoomLevel directly.
GMSGroundOverlay *groundOverlay = [[GMSGroundOverlay alloc] init];
groundOverlay.icon = [UIImage imageNamed:@"newark_nj_1922.jpg"];
groundOverlay.position = CLLocationCoordinate2DMake(40.742, -74.174);
groundOverlay.zoomLevel = 13.6;
In version 1.4 and later, you can use the convenience method.
GMSGroundOverlay *groundOverlay = [GMSGroundOverlay groundOverlayWithPosition:newark
icon:[UIImage imageNamed:@"newark_nj_1922.jpg"]
zoomLevel:13.6];
From this release, we recommend that you position your ground overlay by defining its south west and north east corners.
CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest
coordinate:northEast];
UIImage *icon = [UIImage imageNamed:@"newark_nj_1922.jpg"];
GMSGroundOverlay *overlay =
[GMSGroundOverlay groundOverlayWithBounds:overlayBounds
icon:[UIImage imageNamed:@"newark_nj_1922.jpg"]];
Version 1.3.1 - June 2013
Resolved issues:
- Shows all tiles when animating across the antimeridian
- Performance improvements while zooming
- Touches are consumed more agressively by
GMSMapView
- Fixed constructing a
GMSMutablePath
viapathFromEncodedPath:
- Restores OpenGL state correctly in
GMSMapView
in applications that also useGLKView
Version 1.3 - May 2013
Features
- Support for custom tile overlays (image-based) via
GMSTileLayer
. - Anti-aliasing for
GMSPolyline
andGMSPolygon
stroke. - Support for 'invisible' base map tiles via
kGMSTypeNone
. - Basic support for
CAAnimationGroup
onGMSMapLayer
.
Resolved issues:
- Performance improvements with large numbers of overlays.
- Resolved excessive memory use when device was locked/unlocked while an info window was displayed
- Animations are stopped when a user performs a gesture
- Animations stop any active gesture (e.g., a pan)
- Resolved crash issue with setting/clearing My Location dot
GMSPolyline
andGMSPolygon
now support greater precision at high zoomGMSPolyline
andGMSPolygon
use the correct alpha values- Touches are consumed by
GMSMapView
, allowing use within objects such as a scroll view
Version 1.2.2 - April 2013
Resolved issues:
- Tappable regions for
GMSMarker
fixed. - Overlays are no longer able to render on half pixels.
- Ground overlays appear underneath the My Location dot.
GMSPolyline
strokeColor
is no longer erroneously deallocated.
Version 1.2 - April 2013
Features
- You can now create overlays directly, without the need for an associated
options class. The
GMS...Options
classes have been removed from this release. - Map overlays, such as
GMSMarker
andGMSPolyline
, now inherit from a sharedGMSOverlay
class. - Added support for two new overlays,
GMSPolygon
andGMSCircle
. - The
width
andstroke
properties ofGMSPolyline
have been renamed tostrokeWidth
andstrokeColor
to parallelGMSPolygon
andGMSCircle
. - Overlay types may now be subclassed.
- Additional helper methods have been added to
GMSCoordinateBounds
. Theincluding
method has been renamed toincludingCoordinate
, addedincludingBounds
. - A
GMSMarker
may be animated when added to a map. GMSCameraUpdate
to create camera update objects, including operations to set a camera that presents a specifiedGMSCoordinateBounds
GMSUISettings
may be used to add a compass or "My Location" button (disabled by default).- Non-marker overlay types are tappable (see
GMSMapViewDelegate
). - The default marker image has been changed to the Google Maps for iOS marker.
- Added
markerImageWithColor:
to create tinted versions of the default marker. GMSMapLayer
, theCALayer
subclass forGMSMapView
, now supports modification of its camera properties, allowing for advanced animation effects.semaphore_wait_trap
issue resolved.
Resolved issues:
visibleRegion
now reports correctly sized region on Retina Devices.- Double-tap to zoom now centers around tapped point.
- Disabling pan via
UISettings
now prevents movement with zoom gestures. GMSPolyline
performance is improved for large polylines.GMSMapView
may be subclassed.- My Location dot appears underneath markers.
- Performance improvements when using the My Location dot.
- Grayscale polylines now render correctly.
- Calling
renderInContext:
on theGMSMapView
layer now renders correctly; this allows for snapshots and UI effects. - The default behavior when a marker is tapped has been updated to also pan the camera to the marker's position.
Migration from 1.1.x:
When upgrading to the most recent version, you will have to modify any existing code as follows:
- Replace references to the
width
andstroke
properties ofGMSPolyline
withstrokeWidth
andstrokeColor
. The behavior is otherwise the same. - Replace calls to the
including
method ofGMSCoordinateBounds
with a call toincludingCoordinate
. - Version 1.2 simplifies overlays (items added to the map) by allowing you
to set overlay options directly on the object, instead of first creating
an overlay options object. This change impacts existing code as follows:
- Remove all references to
GMSGroundOverlayOptions
,GMSMarkerOptions
orGMSPolylineOptions
. GMSGroundOverlay
,GMSMarker
andGMSPolyline
are now concrete classes, not protocols. Specify them asGMSMarker *
, instead ofid<GMSMarker>
.- Add an overlay to the map by setting its
map
property instead of calling theadd...Overlay
method. - Remove an overlay from the map by setting its
map
property tonil
(rather than callingremove
). - Values previously set on properties of an options object should now be set on the object itself.
- Remove all references to
Below is an example of how to add a polyline to the map in version 1.1:
GMSPolylineOptions *lineOptions = [GMSPolylineOptions options];
GMSMutablePath *path = [GMSMutablePath path];
[path addCoordinate:CLLocationCoordinate2DMake(37.35, -122.0)];
[path addCoordinate:CLLocationCoordinate2DMake(37.45, -122.0)];
lineOptions.color = [UIColor blueColor];
lineOptions.path = path;
id<GMSPolyline> line = [mapView_ addPolylineWithOptions:lineOptions];
The equivalent code in version 1.2.0 and later is:
GMSMutablePath *path = [GMSMutablePath path];
[path addCoordinate:CLLocationCoordinate2DMake(37.35, -122.0)];
[path addCoordinate:CLLocationCoordinate2DMake(37.45, -122.0)];
GMSPolyline *line = [GMSPolyline polylineWithPath:path];
line.strokeColor = [UIColor blueColor];
line.map = mapView_;
Version 1.1.2 - March 2013
Resolved issues:
- Updated the SDK to use libc++ instead of libstdc++.
- Improved support for including a
GMSMapView
andGLKView
in the same app.
Migrating from v1.1.1 or earlier:
Version 1.1.2 and later use libc++ instead of libstdc++. To upgrade to the most recent version of the SDK, do the following:
- In the Project Navigator, replace the previous framework with the most recent framework.
- Select your project from the Project Navigator, and choose your application's target.
- Open the Build Phases tab, and within Link Binary with Libraries:
- Remove
libstdc++.dylib
. - Add
libc++.dylib
.
- Remove
- Recompile your project.
Version 1.1.1 - March 2013
Features
- Improved the messages that are logged to the console when a invalid key is used or a connection error occurs.
- Added multi-line snippet support for
GMSMarker
.
Resolved issues:
GMSMapView
could return anil
camera.- Multiple
GMSMapView
instances no longer 'camera crosstalk'. - The SDK contained unresolved external references.
- A
GMSMarker
with an empty title and snippet no longer shows an empty info window.
Version 1.1 - February 2013
Features
- The points of a
GMSPolyline
(andGMSPolylineOptions
) are now specified as aGMSPath
and built via aGMSMutablePath
, rather thanaddVertex:
etc GMSPolyline
may now be specified as geodesic.animateToCameraPosition:
method onGMSMapView
.GMSProjection
providescontainsCoordinate:
andvisibleRegion
helpers.
Resolved issues:
GMSCameraPosition
andanimateToLocation:
now clamp/wrap latitude/longitude respectively; similarly, bearing is clamped to0 <= bearing < 360
GMSGroundOverlay
may be modified after creation.GMSPolyline
may cross the antimeridian- Resolved a marker sorting issue.
Version 1.0.2 - January 2013
Features
- GMSCamera was changed to GMSCameraPosition
- Removed requirement to call start/stopRendering
- Improved texture memory handling
- Added UISettings to control gesture availability
- Added Ground Overlays
Resolved issues:
- Fixed: GMSMapViewDelegate's mapView:didTapInfoWindowOfMarker: method is unreliable
- Selected markers are automatically brought to front
- Polylines now render at a constant size regardless of the zoom level
Version 1.0.1 - December 2012
- Initial release alongside Google Maps for iOS.
- Support for 3D maps, rotation, tilt, 3D buildings, markers, polylines.
- Satellite and terrain tiles, traffic data, and other features.