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
:
NSObject
GMSCoordinateBounds 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.
Declaration
Swift
var northEast : CLLocationCoordinate2D { get }Objective-C
@property ( nonatomic , readonly ) CLLocationCoordinate2D northEast ; -
The South-West corner of these bounds.
Declaration
Swift
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.
Declaration
Swift
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.
Declaration
Swift
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|.
Declaration
Swift
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|.
Declaration
Swift
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.
Declaration
Swift
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.
Declaration
Swift
func intersects ( _ other : GMSCoordinateBounds ) -> BoolObjective-C
- ( BOOL ) intersectsBounds :( nonnull GMSCoordinateBounds * ) other ;
-
Inits with bounds that encompass
region.Declaration
Swift
init ( region : GMSVisibleRegion )Objective-C
- ( nonnull id ) initWithRegion :( GMSVisibleRegion ) region ;

