Protocol defining methods that support custom views specifying accessory UI elements applied to
the primary view. Accessory views must implement this protocol in order to be visible.
[[["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\u003eThis documentation details globally available protocols for the Maps SDK for iOS.\u003c/p\u003e\n"],["\u003cp\u003eThese protocols define delegates and listeners for handling events and interactions within the map environment.\u003c/p\u003e\n"],["\u003cp\u003eThey cover areas such as navigation UI, custom views, screen metrics, and location updates.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can use these protocols to customize map behavior and respond to user actions.\u003c/p\u003e\n"],["\u003cp\u003eProtocols are available for features like indoor maps, panoramic views, and tile layers.\u003c/p\u003e\n"]]],[],null,["# GoogleNavigation Framework Reference\n\nProtocols\n=========\n\nThe following protocols are available globally.\n- `\n ``\n ``\n `\n\n ### [GMSMapViewNavigationUIDelegate](/maps/documentation/navigation/ios-sdk/reference/objc/Protocols/GMSMapViewNavigationUIDelegate)\n\n `\n ` \n A delegate for events on [GMSMapView](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSMapView) related to the navigation UI. \n\n #### Declaration\n\n Swift \n\n protocol GMSMapViewNavigationUIDelegate : NSObjectProtocol\n\n Objective-C \n\n @protocol GMSMapViewNavigationUIDelegate \u003cNSObject\u003e\n\n- `\n ``\n ``\n `\n\n ### [GMSNavigationAccessoryView](/maps/documentation/navigation/ios-sdk/reference/objc/Protocols/GMSNavigationAccessoryView)\n\n `\n ` \n Protocol defining methods that support custom views specifying accessory UI elements applied to\n the primary view. Accessory views must implement this protocol in order to be visible. \n\n #### Declaration\n\n Swift \n\n protocol GMSNavigationAccessoryView : NSObjectProtocol\n\n Objective-C \n\n @protocol GMSNavigationAccessoryView \u003cNSObject\u003e\n\n- `\n ``\n ``\n `\n\n ### [GMSNavigationScreenMetrics](/maps/documentation/navigation/ios-sdk/reference/objc/Protocols/GMSNavigationScreenMetrics)\n\n `\n ` \n Protocol for returning information about screen metrics.\n\n This protocol is a subset of the screen-metric-related properties implemented by `UIScreen`. \n\n #### Declaration\n\n Swift \n\n protocol GMSNavigationScreenMetrics\n\n Objective-C \n\n @protocol GMSNavigationScreenMetrics\n\n- `\n ``\n ``\n `\n\n ### [GMSNavigatorListener](/maps/documentation/navigation/ios-sdk/reference/objc/Protocols/GMSNavigatorListener)\n\n `\n ` \n Listener for events on [GMSNavigator](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSNavigator). \n\n #### Declaration\n\n Swift \n\n protocol GMSNavigatorListener : NSObjectProtocol\n\n Objective-C \n\n @protocol GMSNavigatorListener \u003cNSObject\u003e\n\n- `\n ``\n ``\n `\n\n ### [GMSRoadSnappedLocationProviderListener](/maps/documentation/navigation/ios-sdk/reference/objc/Protocols/GMSRoadSnappedLocationProviderListener)\n\n `\n ` \n Listener for events on [GMSRoadSnappedLocationProvider](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSRoadSnappedLocationProvider). \n\n #### Declaration\n\n Swift \n\n protocol GMSRoadSnappedLocationProviderListener : NSObjectProtocol\n\n Objective-C \n\n @protocol GMSRoadSnappedLocationProviderListener \u003cNSObject\u003e\n\n- `\n ``\n ``\n `\n\n ### [GMSFeature](/maps/documentation/navigation/ios-sdk/reference/objc/Protocols/GMSFeature)\n\n `\n ` \n An interface representing a feature's metadata.\n\n Do not save a reference to a particular feature object because the reference will not be stable. \n\n #### Declaration\n\n Swift \n\n protocol Feature : NSObjectProtocol\n\n Objective-C \n\n @protocol GMSFeature \u003cNSObject\u003e\n\n- `\n ``\n ``\n `\n\n ### [GMSIndoorDisplayDelegate](/maps/documentation/navigation/ios-sdk/reference/objc/Protocols/GMSIndoorDisplayDelegate)\n\n `\n ` \n Delegate for events on [GMSIndoorDisplay](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSIndoorDisplay). \n\n #### Declaration\n\n Swift \n\n protocol GMSIndoorDisplayDelegate : NSObjectProtocol\n\n Objective-C \n\n @protocol GMSIndoorDisplayDelegate \u003cNSObject\u003e\n\n- `\n ``\n ``\n `\n\n ### [GMSMapViewDelegate](/maps/documentation/navigation/ios-sdk/reference/objc/Protocols/GMSMapViewDelegate)\n\n `\n ` \n Delegate for events on [GMSMapView](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSMapView). \n\n #### Declaration\n\n Swift \n\n protocol GMSMapViewDelegate : NSObjectProtocol\n\n Objective-C \n\n @protocol GMSMapViewDelegate \u003cNSObject\u003e\n\n- `\n ``\n ``\n `\n\n ### [GMSPanoramaViewDelegate](/maps/documentation/navigation/ios-sdk/reference/objc/Protocols/GMSPanoramaViewDelegate)\n\n `\n ` \n Delegate for events on [GMSPanoramaView](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSPanoramaView). \n\n #### Declaration\n\n Swift \n\n protocol GMSPanoramaViewDelegate : NSObjectProtocol\n\n Objective-C \n\n @protocol GMSPanoramaViewDelegate \u003cNSObject\u003e\n\n- `\n ``\n ``\n `\n\n ### [GMSTileReceiver](/maps/documentation/navigation/ios-sdk/reference/objc/Protocols/GMSTileReceiver)\n\n `\n ` \n `GMSTileReceiver` is provided to [GMSTileLayer](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSTileLayer) when a tile request is made, allowing the\n callback to be later (or immediately) invoked. \n\n #### Declaration\n\n Swift \n\n protocol GMSTileReceiver : NSObjectProtocol\n\n Objective-C \n\n @protocol GMSTileReceiver \u003cNSObject\u003e"]]