Combine Library
Stay organized with collections
Save and categorize content based on your preferences.
Combine is a
framework for handling asynchronous events by combining event-processing operators.
Combine makes your code easier to read and maintain by centralizing your event-processing code.
The GoogleMapsPlatformCombine library
is a Swift library that returns
Publishers
for the Maps SDK for iOS and Places SDK for iOS so that you can take advantage
of the rich set of Combine features.
Installation
See the
GoogleMapsPlatformCombine library
documentation on GitHub for the latest system requirements and installation instructions.
Example Usage
The GoogleMapsPlatformCombine library includes the
GMSMapViewPublisher
class
which contains publisher properties that let you subscribe to events emitted by the map.
The following example configures a GMSMapViewPublisher
instance to subscribe to
camera change events:
let publisher = GMSMapViewPublisher(mapView: mapView)
publisher.didChangeCameraPosition.sink { cameraPosition in
print("Camera position at \(cameraPosition.target)")
}
What's next
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-28 UTC.
[null,null,["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eGoogleMapsPlatformCombine is a Swift library that integrates the Maps SDK for iOS and Places SDK for iOS with Apple's Combine framework.\u003c/p\u003e\n"],["\u003cp\u003eThis library provides Publishers for various SDK functionalities, allowing developers to leverage Combine's features for asynchronous event handling.\u003c/p\u003e\n"],["\u003cp\u003eBy using GoogleMapsPlatformCombine, developers can simplify their code and centralize event-processing logic for Google Maps and Places SDKs within their applications.\u003c/p\u003e\n"],["\u003cp\u003eA practical example demonstrates subscribing to camera change events on a \u003ccode\u003eGMSMapView\u003c/code\u003e using the \u003ccode\u003eGMSMapViewPublisher\u003c/code\u003e and Combine's \u003ccode\u003esink\u003c/code\u003e operator.\u003c/p\u003e\n"]]],["The content introduces the GoogleMapsPlatformCombine library, which utilizes Apple's Combine framework for handling asynchronous events within the Google Maps and Places SDKs for iOS. It leverages `Publishers` to manage events. A key action is demonstrated through the `GMSMapViewPublisher` class, allowing users to subscribe to map events. An example illustrates how to monitor camera position changes using the `didChangeCameraPosition` publisher. Installation instructions and further details are available on the library's GitHub page.\n"],null,["[Combine](https://developer.apple.com/documentation/combine) is a\nframework for handling asynchronous events by combining event-processing operators.\nCombine makes your code easier to read and maintain by centralizing your event-processing code.\n\nThe [GoogleMapsPlatformCombine library](https://github.com/googlemaps/ios-combine)\nis a Swift library that returns\n[`Publishers`](https://developer.apple.com/documentation/combine/publisher)\nfor the Maps SDK for iOS and Places SDK for iOS so that you can take advantage\nof the rich set of Combine features.\n\nInstallation See the [GoogleMapsPlatformCombine library](https://github.com/googlemaps/ios-combine) documentation on GitHub for the latest system requirements and installation instructions.\n\n\u003cbr /\u003e\n\nExample Usage\n\nThe GoogleMapsPlatformCombine library includes the\n[`GMSMapViewPublisher`](https://github.com/googlemaps/ios-combine/blob/main/Sources/Maps/GMSMapViewPublisher.swift) class\nwhich contains publisher properties that let you subscribe to events emitted by the map.\n\nThe following example configures a `GMSMapViewPublisher` instance to subscribe to\ncamera change events: \n\n```yaml\nlet publisher = GMSMapViewPublisher(mapView: mapView)\npublisher.didChangeCameraPosition.sink { cameraPosition in\n print(\"Camera position at \\(cameraPosition.target)\")\n}\n```\n\nWhat's next\n\n- View the [Combine library](https://github.com/googlemaps/ios-combine) GitHub project page."]]