Google-Maps-iOS-Utils 4.2.2

Google-Maps-iOS-Utils 4.2.2

LangLanguage Obj-CObjective C
License Apache-2.0
ReleasedLast Release Jun 2023

Maintained by Son Nguyen, Daniel Teh, Chris Arriola, Google Maps Bot, Angela Yu.

  • By
  • Google Inc.

Run unit tests pod GitHub contributors Apache-2.0

Google Maps SDK for iOS Utility Library


This open-source library contains classes that are useful for a wide range of applications using the Google Maps SDK for iOS.



  1. Include the GoogleMaps dependency using one of the available installation options (CocoaPods, XCFramework, Carthage (for v6.2.1 and earlier) or manual).

  2. Add this utility library using one of the methods below:


In your Podfile:


target 'TARGET_NAME' do
    pod 'Google-Maps-iOS-Utils', '4.2.2'

Replace TARGET_NAME and then, in the Podfile directory, type:

pod install

Swift Package Manager

Note: This feature is only available with Swift 5.3 (Xcode 12) or later.

Add the following to your dependencies value of your Package.swift file.

dependencies: [
    url: "",
    .upToNextMinor(from: "4.2.2")


Only supported if using Maps SDK v6.2.1 or earlier

In your Cartfile:

github "googlemaps/google-maps-ios-utils" ~> 4.1.0

See the Carthage doc for further installation instructions.

Sample App

See the README for the Swift and Objective-C samples apps in /samples.


Read documentation about this utility library on or within the /docs directory.


Clustering markers

import GoogleMaps
import GoogleMapsUtils

class MarkerClustering: UIViewController, GMSMapViewDelegate {
  private var mapView: GMSMapView!
  private var clusterManager: GMUClusterManager!

  override func viewDidLoad() {

    // Set up the cluster manager with the supplied icon generator and
    // renderer.
    let iconGenerator = GMUDefaultClusterIconGenerator()
    let algorithm = GMUNonHierarchicalDistanceBasedAlgorithm()
    let renderer = GMUDefaultClusterRenderer(mapView: mapView,
                                clusterIconGenerator: iconGenerator)
    clusterManager = GMUClusterManager(map: mapView, algorithm: algorithm,
                                                      renderer: renderer)

    // Register self to listen to GMSMapViewDelegate events.
    // ...
  // ...

let markerArray = [marker1, marker2, marker3, marker4] // define your own markers


Displaying KML data

import GoogleMaps
import GoogleMapsUtils

func renderKml() {
    // Parse KML
    let path: String = // Path to your KML file...
    let kmlUrl = URL(fileURLWithPath: path)
    let kmlParser = GMUKmlParser(url: kmlUrl)

    // Render parsed KML
    let renderer = GMUGeometryRenderer(
        map: mapView,
        geometries: kmlParser.placemarks,
        styles: kmlParser.styles,
        styleMaps: kmlParser.styleMaps


Contributions are welcome and encouraged. Please see the contributing guide for guidance.


This library is offered via an open source license. It is not governed by the Google Maps Platform Support Technical Support Services Guidelines, the SLA, or the Deprecation Policy (however, any Google Maps Platform services used by the library remain subject to the Google Maps Platform Terms of Service).

This library adheres to semantic versioning to indicate when backwards-incompatible changes are introduced. Accordingly, while the library is in version 0.x, backwards-incompatible changes may be introduced at any time.

If you find a bug, or have a feature request, please file an issue on GitHub. If you would like to get answers to technical questions from other Google Maps Platform developers, ask through one of our developer community channels such as our Discord server.