GMSMapLayeris a custom subclass ofCALayer, provided as the layer class onGMSMapView.
This layer should not be instantiated directly. It provides model access to the camera normally
defined onGMSMapView.
Modifying or animating these properties will typically interrupt any current gesture onGMSMapView, e.g., a user’s pan or rotation. Similarly, if a user performs an enabled gesture
during an animation, the animation will stop ‘in-place’ (at the current presentation value).
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-27 UTC."],[[["\u003cp\u003e\u003ccode\u003eGMSMapLayer\u003c/code\u003e is a custom subclass of \u003ccode\u003eCALayer\u003c/code\u003e used as the layer class for \u003ccode\u003eGMSMapView\u003c/code\u003e and should not be directly instantiated.\u003c/p\u003e\n"],["\u003cp\u003eIt provides access to the camera properties of the \u003ccode\u003eGMSMapView\u003c/code\u003e, like latitude, longitude, bearing, zoom level, and viewing angle.\u003c/p\u003e\n"],["\u003cp\u003eModifying or animating \u003ccode\u003eGMSMapLayer\u003c/code\u003e properties can interrupt user gestures on the map and vice-versa.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can use these properties to programmatically control the map's camera view.\u003c/p\u003e\n"]]],[],null,["# GoogleMaps Framework Reference\n\nGMSMapLayer\n===========\n\n @interface GMSMapLayer : ../Classes/GMSCALayer.html\n\n`GMSMapLayer` is a custom subclass of `CALayer`, provided as the layer class on [GMSMapView](../Classes/GMSMapView.html).\nThis layer should not be instantiated directly. It provides model access to the camera normally\ndefined on [GMSMapView](../Classes/GMSMapView.html).\n\nModifying or animating these properties will typically interrupt any current gesture on\n[GMSMapView](../Classes/GMSMapView.html), e.g., a user's pan or rotation. Similarly, if a user performs an enabled gesture\nduring an animation, the animation will stop 'in-place' (at the current presentation value).\n- `\n ``\n ``\n `\n\n ### [cameraLatitude](#/c:objc(cs)GMSMapLayer(py)cameraLatitude)\n\n `\n ` \n\n #### Declaration\n\n Swift \n\n var cameraLatitude: CLLocationDegrees { get set }\n\n Objective-C \n\n @property(nonatomic) CLLocationDegrees cameraLatitude\n\n- `\n ``\n ``\n `\n\n ### [cameraLongitude](#/c:objc(cs)GMSMapLayer(py)cameraLongitude)\n\n `\n ` \n\n #### Declaration\n\n Swift \n\n var cameraLongitude: CLLocationDegrees { get set }\n\n Objective-C \n\n @property(nonatomic) CLLocationDegrees cameraLongitude\n\n- `\n ``\n ``\n `\n\n ### [cameraBearing](#/c:objc(cs)GMSMapLayer(py)cameraBearing)\n\n `\n ` \n\n #### Declaration\n\n Swift \n\n var cameraBearing: CLLocationDirection { get set }\n\n Objective-C \n\n @property(nonatomic) CLLocationDirection cameraBearing\n\n- `\n ``\n ``\n `\n\n ### [cameraZoomLevel](#/c:objc(cs)GMSMapLayer(py)cameraZoomLevel)\n\n `\n ` \n\n #### Declaration\n\n Swift \n\n var cameraZoomLevel: Float { get set }\n\n Objective-C \n\n @property(nonatomic) float cameraZoomLevel\n\n- `\n ``\n ``\n `\n\n ### [cameraViewingAngle](#/c:objc(cs)GMSMapLayer(py)cameraViewingAngle)\n\n `\n ` \n\n #### Declaration\n\n Swift \n\n var cameraViewingAngle: Double { get set }\n\n Objective-C \n\n @property(nonatomic) double cameraViewingAngle"]]