GoogleNavigation Framework Reference

  • GMSCollisionBehavior controls how markers interact with each other and map labels, with GMSCollisionBehaviorRequired as the default, ensuring markers always display.

  • Marker display priority is determined by Collision Behavior (Required > Optional) and then by zIndex (higher > lower).

  • GMSCollisionBehaviorRequiredAndHidesOptional markers always display and hide overlapping optional markers or labels.

  • GMSCollisionBehaviorOptionalAndHidesLowerPriority markers display only if they don't overlap with required markers or higher zIndex optional markers, with undefined behavior for same zIndex optional markers.

GMSCollisionBehavior

enum GMSCollisionBehavior : NSInteger {}

How markers interact with other markers and regular labels. Defaults to GMSCollisionBehaviorRequired.

Marker collisions occur when coordinates intersect.

Priority is defined as: 1) Required > Optional 2) zIndex: higher zIndex > lower zIndex

Beyond this, it is undefined which marker will show if both are optional and have the same zIndex. Regular map labels are the lowest priority.

  • Always display the marker regardless of collision. This is the default behavior. Has no impact on whether any other markers or basemap labels show.

    Declaration

    Swift

    case required = 0

    Objective-C

    GMSCollisionBehaviorRequired
  • Always display the marker regardless of collision, and hide any CollisionBehaviorOptionalAndHidesLowerPriority markers or labels that would overlap with the marker.

    Declaration

    Swift

    case requiredAndHidesOptional = 1

    Objective-C

    GMSCollisionBehaviorRequiredAndHidesOptional
  • Display the marker only if it does not overlap with other markers. Does not include GMSCollisionBehaviorRequired. If two markers of this type would overlap, the one with the higher zIndex is shown. Collision rules for markers with the same zIndex is undefined.

    Declaration

    Swift

    case optionalAndHidesLowerPriority = 2

    Objective-C

    GMSCollisionBehaviorOptionalAndHidesLowerPriority