GoogleMaps Framework Reference

GMSOverlay

@interface GMSOverlay : NSObject <NSCopying>

GMSOverlay is an abstract class that represents some overlay that may be attached to a specific GMSMapView. It may not be instantiated directly; instead, instances of concrete overlay types should be created directly (such as GMSMarker, GMSPolyline, and GMSPolygon).

This supports the NSCopying protocol; [overlay_ copy] will return a copy of the overlay type, but with map set to nil.

  • Title, a short description of the overlay. Some overlays, such as markers, will display the title on the map. The title is also the default accessibility text.

    Declaration

    Swift

    var title: String? { get set }

    Objective-C

    @property (nonatomic, copy, nullable) NSString *title;
  • map

    The map this overlay is on. Setting this property will add the overlay to the map. Setting it to nil removes this overlay from the map. An overlay may be active on at most one map at any given time.

    Declaration

    Swift

    weak var map: GMSMapView? { get set }

    Objective-C

    @property (nonatomic, weak, nullable) GMSMapView *map;
  • If this overlay should cause tap notifications. Some overlays, such as markers, will default to being tappable.

    Declaration

    Swift

    var isTappable: Bool { get set }

    Objective-C

    @property (nonatomic, getter=isTappable) BOOL tappable;
  • Higher zIndex value overlays will be drawn on top of lower zIndex value tile layers and overlays. Equal values result in undefined draw ordering. Markers are an exception that regardless of zIndex, they will always be drawn above tile layers and other non-marker overlays; they are effectively considered to be in a separate z-index group compared to other overlays.

    Declaration

    Swift

    var zIndex: Int32 { get set }

    Objective-C

    @property (nonatomic) int zIndex;
  • Overlay data. You can use this property to associate an arbitrary object with this overlay. Google Maps SDK for iOS neither reads nor writes this property.

    Note that userData should not hold any strong references to any Maps objects, otherwise a retain cycle may be created (preventing objects from being released).

    Declaration

    Swift

    var userData: Any? { get set }

    Objective-C

    @property (nonatomic, nullable) id userData;