AI-generated Key Takeaways
- 
          GMSCoordinateBoundsrepresents a rectangular area on the Earth's surface, defined by its north-east and south-west corners.
- 
          It's immutable, meaning it cannot be changed after creation but methods provide ways to create new, extended bounds. 
- 
          You can determine if a coordinate or another GMSCoordinateBoundsis contained within or intersects with the bounds.
- 
          Initializing bounds can be done using two coordinates, a region, or by encompassing a path. 
- 
          Invalid bounds are possible, for instance when initialized without coordinates, and specific behaviors are defined for operations involving them. 
GMSCoordinateBounds
@interface GMSCoordinateBounds : NSObjectGMSCoordinateBounds represents a rectangular bounding box on the Earth’s surface. GMSCoordinateBounds is immutable and can’t be modified after construction.
- 
                  
                  The North-East corner of these bounds. DeclarationSwift var northEast: CLLocationCoordinate2D { get }Objective-C @property (nonatomic, readonly) CLLocationCoordinate2D northEast;
- 
                  
                  The South-West corner of these bounds. DeclarationSwift var southWest: CLLocationCoordinate2D { get }Objective-C @property (nonatomic, readonly) CLLocationCoordinate2D southWest;
- 
                  
                  Returns NO if this bounds does not contain any points. For example, [[GMSCoordinateBounds alloc] init].valid == NO. When an invalid bounds is expanded with valid coordinates via includingCoordinate: or includingBounds:, the resulting bounds will be valid but contain only the new coordinates. DeclarationSwift var isValid: Bool { get }Objective-C @property (nonatomic, readonly, getter=isValid) BOOL valid;
- 
                  
                  Inits the northEast and southWest bounds corresponding to the rectangular region defined by the two corners. It is ambiguous whether the longitude of the box extends from |coord1| to |coord2| or vice-versa; the box is constructed as the smaller of the two variants, eliminating the ambiguity. DeclarationSwift init(coordinate coord1: CLLocationCoordinate2D, coordinate coord2: CLLocationCoordinate2D)Objective-C - (nonnull id)initWithCoordinate:(CLLocationCoordinate2D)coord1 coordinate:(CLLocationCoordinate2D)coord2;
- 
                  
                  Returns a GMSCoordinateBounds representing the current bounds extended to include the passed-in coordinate. If the current bounds is invalid, the result is a valid bounds containing only |coordinate|. DeclarationSwift func includingCoordinate(_ coordinate: CLLocationCoordinate2D) -> GMSCoordinateBoundsObjective-C - (nonnull GMSCoordinateBounds *)includingCoordinate: (CLLocationCoordinate2D)coordinate;
- 
                  
                  Returns a GMSCoordinateBounds representing the current bounds extended to include the entire other bounds. If the current bounds is invalid, the result is a valid bounds equal to |other|. DeclarationSwift func includingBounds(_ other: GMSCoordinateBounds) -> GMSCoordinateBoundsObjective-C - (nonnull GMSCoordinateBounds *)includingBounds: (nonnull GMSCoordinateBounds *)other;
- 
                  
                  Returns YES if |coordinate| is contained within this bounds. This includes points that lie exactly on the edge of the bounds. DeclarationSwift func contains(_ coordinate: CLLocationCoordinate2D) -> BoolObjective-C - (BOOL)containsCoordinate:(CLLocationCoordinate2D)coordinate;
- 
                  
                  Returns YES if |other| overlaps with this bounds. Two bounds are overlapping if there is at least one coordinate point contained by both. DeclarationSwift func intersects(_ other: GMSCoordinateBounds) -> BoolObjective-C - (BOOL)intersectsBounds:(nonnull GMSCoordinateBounds *)other;
- 
                  
                  Inits with bounds that encompass region.DeclarationSwift init(region: GMSVisibleRegion)Objective-C - (nonnull id)initWithRegion:(GMSVisibleRegion)region;