GoogleMaps Framework Reference
Stay organized with collections
Save and categorize content based on your preferences.
GMSPanoramaViewDelegate
@protocol GMSPanoramaViewDelegate <NSObject>
Delegate for events on GMSPanoramaView
.
-
Called when starting a move to another panorama.
This can be the result of interactive navigation to a neighbouring panorama.
At the moment this method is called, the view
.panorama is still pointing to the old panorama,
as the new panorama identified by panoID
is not yet resolved.
-panoramaView:didMoveToPanorama:
will be called when the new panorama is ready.
Declaration
Swift
optional func panoramaView(_ view: GMSPanoramaView, willMoveToPanoramaID panoramaID: String)
Objective-C
- (void)panoramaView:(nonnull GMSPanoramaView *)view
willMoveToPanoramaID:(nonnull NSString *)panoramaID;
-
This is invoked every time the view
.panorama property changes.
-
Called when the panorama change was caused by invoking -moveToPanoramaNearCoordinate:
. The
coordinate passed to that method will also be passed here.
Declaration
Swift
optional func panoramaView(_ view: GMSPanoramaView, didMoveTo panorama: GMSPanorama, nearCoordinate coordinate: CLLocationCoordinate2D)
Objective-C
- (void)panoramaView:(nonnull GMSPanoramaView *)view
didMoveToPanorama:(nonnull GMSPanorama *)panorama
nearCoordinate:(CLLocationCoordinate2D)coordinate;
-
Called when -moveNearCoordinate:
produces an error.
Declaration
Swift
optional func panoramaView(_ view: GMSPanoramaView, error: any Error, onMoveNearCoordinate coordinate: CLLocationCoordinate2D)
Objective-C
- (void)panoramaView:(nonnull GMSPanoramaView *)view
error:(nonnull NSError *)error
onMoveNearCoordinate:(CLLocationCoordinate2D)coordinate;
-
Called when -moveToPanoramaID:
produces an error.
Declaration
Swift
optional func panoramaView(_ view: GMSPanoramaView, error: any Error, onMoveToPanoramaID panoramaID: String)
Objective-C
- (void)panoramaView:(nonnull GMSPanoramaView *)view
error:(nonnull NSError *)error
onMoveToPanoramaID:(nonnull NSString *)panoramaID;
-
Called repeatedly during changes to the camera on GMSPanoramaView
. This may not be called for
all intermediate camera values, but is always called for the final position of the camera after
an animation or gesture.
-
Called when a user has tapped on the GMSPanoramaView
, but this tap was not consumed (taps may
be consumed by e.g., tapping on a navigation arrow).
Declaration
Swift
optional func panoramaView(_ panoramaView: GMSPanoramaView, didTap point: CGPoint)
Objective-C
- (void)panoramaView:(nonnull GMSPanoramaView *)panoramaView
didTap:(CGPoint)point;
-
Called after a marker has been tapped. May return YES to indicate the event has been fully
handled and suppress any default behavior.
-
Called when the panorama tiles for the current view have just been requested and are beginning to
load.
Declaration
Swift
optional func panoramaViewDidStartRendering(_ panoramaView: GMSPanoramaView)
Objective-C
- (void)panoramaViewDidStartRendering:(nonnull GMSPanoramaView *)panoramaView;
-
Called when the panorama tiles have been loaded (or permanently failed to load) and rendered on
screen.
Declaration
Swift
optional func panoramaViewDidFinishRendering(_ panoramaView: GMSPanoramaView)
Objective-C
- (void)panoramaViewDidFinishRendering:(nonnull GMSPanoramaView *)panoramaView;
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-27 UTC.
[null,null,["Last updated 2025-08-27 UTC."],[[["\u003cp\u003e\u003ccode\u003eGMSPanoramaViewDelegate\u003c/code\u003e handles events and interactions within a \u003ccode\u003eGMSPanoramaView\u003c/code\u003e, offering control over panorama navigation and user actions.\u003c/p\u003e\n"],["\u003cp\u003eIt provides methods to track panorama changes, including starting a move (\u003ccode\u003ewillMoveToPanoramaID:\u003c/code\u003e) and completing a move (\u003ccode\u003edidMoveToPanorama:\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eDelegates can respond to camera movements (\u003ccode\u003edidMoveCamera:\u003c/code\u003e), taps on the panorama (\u003ccode\u003edidTap:\u003c/code\u003e), and marker taps (\u003ccode\u003edidTapMarker:\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eError handling is provided for move operations (\u003ccode\u003eerror:onMoveNearCoordinate:\u003c/code\u003e and \u003ccode\u003eerror:onMoveToPanoramaID:\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eRendering events are signaled through \u003ccode\u003epanoramaViewDidStartRendering:\u003c/code\u003e and \u003ccode\u003epanoramaViewDidFinishRendering:\u003c/code\u003e, enabling developers to manage loading indicators.\u003c/p\u003e\n"]]],[],null,["# GoogleMaps Framework Reference\n\nGMSPanoramaViewDelegate\n=======================\n\n @protocol GMSPanoramaViewDelegate \u003cNSObject\u003e\n\nDelegate for events on [GMSPanoramaView](../Classes/GMSPanoramaView.html).\n- `\n ``\n ``\n `\n\n ### [-panoramaView:willMoveToPanoramaID:](#/c:objc(pl)GMSPanoramaViewDelegate(im)panoramaView:willMoveToPanoramaID:)\n\n `\n ` \n Called when starting a move to another panorama.\n\n This can be the result of interactive navigation to a neighbouring panorama.\n\n At the moment this method is called, the `view`.panorama is still pointing to the old panorama,\n as the new panorama identified by `panoID` is not yet resolved.\n [-panoramaView:didMoveToPanorama:](../Protocols/GMSPanoramaViewDelegate.html#/c:objc(pl)GMSPanoramaViewDelegate(im)panoramaView:didMoveToPanorama:) will be called when the new panorama is ready. \n\n #### Declaration\n\n Swift \n\n optional func panoramaView(_ view: ../Classes/GMSPanoramaView.html, willMoveToPanoramaID panoramaID: String)\n\n Objective-C \n\n - (void)panoramaView:(nonnull ../Classes/GMSPanoramaView.html *)view\n willMoveToPanoramaID:(nonnull NSString *)panoramaID;\n\n- `\n ``\n ``\n `\n\n ### [-panoramaView:didMoveToPanorama:](#/c:objc(pl)GMSPanoramaViewDelegate(im)panoramaView:didMoveToPanorama:)\n\n `\n ` \n This is invoked every time the `view`.panorama property changes. \n\n #### Declaration\n\n Swift \n\n optional func panoramaView(_ view: ../Classes/GMSPanoramaView.html, didMoveTo panorama: ../Classes/GMSPanorama.html?)\n\n Objective-C \n\n - (void)panoramaView:(nonnull ../Classes/GMSPanoramaView.html *)view\n didMoveToPanorama:(nullable ../Classes/GMSPanorama.html *)panorama;\n\n- `\n ``\n ``\n `\n\n ### [-panoramaView:didMoveToPanorama:nearCoordinate:](#/c:objc(pl)GMSPanoramaViewDelegate(im)panoramaView:didMoveToPanorama:nearCoordinate:)\n\n `\n ` \n Called when the panorama change was caused by invoking `-moveToPanoramaNearCoordinate:`. The\n coordinate passed to that method will also be passed here. \n\n #### Declaration\n\n Swift \n\n optional func panoramaView(_ view: ../Classes/GMSPanoramaView.html, didMoveTo panorama: ../Classes/GMSPanorama.html, nearCoordinate coordinate: CLLocationCoordinate2D)\n\n Objective-C \n\n - (void)panoramaView:(nonnull ../Classes/GMSPanoramaView.html *)view\n didMoveToPanorama:(nonnull ../Classes/GMSPanorama.html *)panorama\n nearCoordinate:(CLLocationCoordinate2D)coordinate;\n\n- `\n ``\n ``\n `\n\n ### [-panoramaView:error:onMoveNearCoordinate:](#/c:objc(pl)GMSPanoramaViewDelegate(im)panoramaView:error:onMoveNearCoordinate:)\n\n `\n ` \n Called when `-moveNearCoordinate:` produces an error. \n\n #### Declaration\n\n Swift \n\n optional func panoramaView(_ view: ../Classes/GMSPanoramaView.html, error: any Error, onMoveNearCoordinate coordinate: CLLocationCoordinate2D)\n\n Objective-C \n\n - (void)panoramaView:(nonnull ../Classes/GMSPanoramaView.html *)view\n error:(nonnull NSError *)error\n onMoveNearCoordinate:(CLLocationCoordinate2D)coordinate;\n\n- `\n ``\n ``\n `\n\n ### [-panoramaView:error:onMoveToPanoramaID:](#/c:objc(pl)GMSPanoramaViewDelegate(im)panoramaView:error:onMoveToPanoramaID:)\n\n `\n ` \n Called when `-moveToPanoramaID:` produces an error. \n\n #### Declaration\n\n Swift \n\n optional func panoramaView(_ view: ../Classes/GMSPanoramaView.html, error: any Error, onMoveToPanoramaID panoramaID: String)\n\n Objective-C \n\n - (void)panoramaView:(nonnull ../Classes/GMSPanoramaView.html *)view\n error:(nonnull NSError *)error\n onMoveToPanoramaID:(nonnull NSString *)panoramaID;\n\n- `\n ``\n ``\n `\n\n ### [-panoramaView:didMoveCamera:](#/c:objc(pl)GMSPanoramaViewDelegate(im)panoramaView:didMoveCamera:)\n\n `\n ` \n Called repeatedly during changes to the camera on [GMSPanoramaView](../Classes/GMSPanoramaView.html). This may not be called for\n all intermediate camera values, but is always called for the final position of the camera after\n an animation or gesture. \n\n #### Declaration\n\n Swift \n\n optional func panoramaView(_ panoramaView: ../Classes/GMSPanoramaView.html, didMove camera: ../Classes/GMSPanoramaCamera.html)\n\n Objective-C \n\n - (void)panoramaView:(nonnull ../Classes/GMSPanoramaView.html *)panoramaView\n didMoveCamera:(nonnull ../Classes/GMSPanoramaCamera.html *)camera;\n\n- `\n ``\n ``\n `\n\n ### [-panoramaView:didTap:](#/c:objc(pl)GMSPanoramaViewDelegate(im)panoramaView:didTap:)\n\n `\n ` \n Called when a user has tapped on the [GMSPanoramaView](../Classes/GMSPanoramaView.html), but this tap was not consumed (taps may\n be consumed by e.g., tapping on a navigation arrow). \n\n #### Declaration\n\n Swift \n\n optional func panoramaView(_ panoramaView: ../Classes/GMSPanoramaView.html, didTap point: CGPoint)\n\n Objective-C \n\n - (void)panoramaView:(nonnull ../Classes/GMSPanoramaView.html *)panoramaView\n didTap:(CGPoint)point;\n\n- `\n ``\n ``\n `\n\n ### [-panoramaView:didTapMarker:](#/c:objc(pl)GMSPanoramaViewDelegate(im)panoramaView:didTapMarker:)\n\n `\n ` \n Called after a marker has been tapped. May return YES to indicate the event has been fully\n handled and suppress any default behavior. \n\n #### Declaration\n\n Swift \n\n optional func panoramaView(_ panoramaView: ../Classes/GMSPanoramaView.html, didTap marker: ../Classes/GMSMarker.html) -\u003e Bool\n\n Objective-C \n\n - (BOOL)panoramaView:(nonnull ../Classes/GMSPanoramaView.html *)panoramaView\n didTapMarker:(nonnull ../Classes/GMSMarker.html *)marker;\n\n- `\n ``\n ``\n `\n\n ### [-panoramaViewDidStartRendering:](#/c:objc(pl)GMSPanoramaViewDelegate(im)panoramaViewDidStartRendering:)\n\n `\n ` \n Called when the panorama tiles for the current view have just been requested and are beginning to\n load. \n\n #### Declaration\n\n Swift \n\n optional func panoramaViewDidStartRendering(_ panoramaView: ../Classes/GMSPanoramaView.html)\n\n Objective-C \n\n - (void)panoramaViewDidStartRendering:(nonnull ../Classes/GMSPanoramaView.html *)panoramaView;\n\n- `\n ``\n ``\n `\n\n ### [-panoramaViewDidFinishRendering:](#/c:objc(pl)GMSPanoramaViewDelegate(im)panoramaViewDidFinishRendering:)\n\n `\n ` \n Called when the panorama tiles have been loaded (or permanently failed to load) and rendered on\n screen. \n\n #### Declaration\n\n Swift \n\n optional func panoramaViewDidFinishRendering(_ panoramaView: ../Classes/GMSPanoramaView.html)\n\n Objective-C \n\n - (void)panoramaViewDidFinishRendering:(nonnull ../Classes/GMSPanoramaView.html *)panoramaView;"]]