AI-generated Key Takeaways
-
GMSCollisionBehavior
controls how markers interact with each other and map labels, withGMSCollisionBehaviorRequired
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