Called when a route from the device’s location to the provided destination(s) is found, or fails
to be found for a reason indicated by the RouteStatus.
Callback for when a panorama metadata becomes available.
If an error occurred, panorama is nil and error is not nil.
Otherwise, panorama is not nil and error is nil.
GMSVisibleRegion contains the four points defining the polygon that is visible in a map’s
camera.
This polygon can be a trapezoid instead of a rectangle, because a camera can have tilt. If the
camera is directly over the center of the camera, the shape is rectangular, but if the camera is
tilted, the shape will appear to be a trapezoid whose smallest side is closest to the point of
view.
[[["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-07-14 UTC."],[[["\u003cp\u003eThis documentation outlines globally available type definitions used in the iOS SDK for Google Maps Navigation.\u003c/p\u003e\n"],["\u003cp\u003eThese definitions include types for callbacks, error handlers, route and navigation functionalities, and map features.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can utilize these type definitions when interacting with various aspects of the Google Maps Navigation services within their iOS applications.\u003c/p\u003e\n"],["\u003cp\u003eThe provided definitions encompass a wide range of operations, such as handling terms and conditions, recording transactions, calculating routes, and displaying panoramas.\u003c/p\u003e\n"],["\u003cp\u003eEach type definition has a detailed explanation of its purpose and usage, accompanied by Swift and Objective-C declarations for seamless integration into projects.\u003c/p\u003e\n"]]],[],null,["Type-Definitions\n\nThe following type definitions are available globally.\n- `\n ``\n ``\n `\n\n [GMSMapViewPresentReportIncidentPanelErrorCode](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSMapViewPresentReportIncidentPanelErrorCode)`\n ` \n \u003cbr /\u003e\n\n \u003cbr /\u003e\n\n | [Experimental](/maps/launch-stages#experimental) feature\n\n \u003cbr /\u003e\n\n \u003cbr /\u003e\n\n Type used to represent error codes for errors that have the domain\n [GMSMapViewPresentReportIncidentPanelErrorDomain](/maps/documentation/navigation/ios-sdk/reference/objc/Constants/GMSMapViewPresentReportIncidentPanelErrorDomain). \n\n Declaration \n Swift \n\n struct GMSMapViewPresentReportIncidentPanelErrorCode : _ObjectiveCBridgeable, Hashable, Equatable, _SwiftNewtypeWrapper, RawRepresentable, @unchecked Sendable\n\n Objective-C \n\n typedef NSInteger GMSMapViewPresentReportIncidentPanelErrorCode\n\n- `\n ``\n ``\n `\n\n [GMSTermsResponseCallback](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSTermsResponseCallback)`\n ` \n Called when the user accepts or rejects the terms and conditions.\n\n For versions \\\u003e= 5.5.0, `termsAccepted` will always be YES.\n\n @related [GMSNavigationServices](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSNavigationServices) \n\n Declaration \n Swift \n\n typealias GMSTermsResponseCallback = (Bool) -\u003e Void\n\n Objective-C \n\n typedef void (^GMSTermsResponseCallback)(BOOL)\n\n- `\n ``\n ``\n `\n\n [GMSNavigationTransactionRecorderErrorHandler](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSNavigationTransactionRecorderErrorHandler)`\n ` \n\n Declaration \n Swift \n\n typealias GMSNavigationTransactionRecorderErrorHandler = (any Error) -\u003e Void\n\n Objective-C \n\n typedef void (^GMSNavigationTransactionRecorderErrorHandler)(NSError *error)\n\n- `\n ``\n ``\n `\n\n [GMSRouteStatusCallback](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSRouteStatusCallback)`\n ` \n Called when a route from the device's location to the provided destination(s) is found, or fails\n to be found for a reason indicated by the RouteStatus.\n\n @related [GMSNavigator](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSNavigator) \n\n Declaration \n Swift \n\n typealias GMSRouteStatusCallback = (/maps/documentation/navigation/ios-sdk/reference/objc/Enums/GMSRouteStatus) -\u003e Void\n\n Objective-C \n\n typedef void (^GMSRouteStatusCallback)(/maps/documentation/navigation/ios-sdk/reference/objc/Enums/GMSRouteStatus)\n\n- `\n ``\n ``\n `\n\n [GMSRouteInfoCallback](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSRouteInfoCallback)`\n ` \n Called when the route information (ETA and distance) to the provided waypoint is calculated. \n\n Declaration \n Swift \n\n typealias GMSRouteInfoCallback = (/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSNavigationRouteInfo?) -\u003e Void\n\n Objective-C \n\n typedef void (^GMSRouteInfoCallback)(/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSNavigationRouteInfo *_Nullable)\n\n Parameters\n\n |-------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n | ` `*routeInfo*` ` | The route information to the given destination. Will be nil if the calculation fails. @related [GMSNavigator](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSNavigator) |\n\n- `\n ``\n ``\n `\n\n [GMSNavigationTransactionIDErrorHandler](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSNavigationTransactionIDErrorHandler)`\n ` \n Called if setting transaction IDs through the setTransactionIDs fails. Refer documentation for\n the API for more details.\n\n @related [GMSNavigator](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSNavigator) \n\n Declaration \n Swift \n\n typealias GMSNavigationTransactionIDErrorHandler = (any Error) -\u003e Void\n\n Objective-C \n\n typedef void (^GMSNavigationTransactionIDErrorHandler)(NSError *_Nonnull)\n\n- `\n ``\n ``\n `\n\n [GMSFeatureType](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSFeatureType)`\n ` \n Identifiers for feature types of data-driven styling features. \n\n Declaration \n Swift \n\n struct FeatureType : _ObjectiveCBridgeable, Hashable, Equatable, _SwiftNewtypeWrapper, RawRepresentable, @unchecked Sendable\n\n Objective-C \n\n typedef NSString *GMSFeatureType\n\n- `\n ``\n ``\n `\n\n [GMSReverseGeocodeCallback](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSReverseGeocodeCallback)`\n ` \n Handler that reports a reverse geocoding response, or error.\n\n @related GMSGeocoder \n\n Declaration \n Swift \n\n typealias GMSReverseGeocodeCallback = (/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSReverseGeocodeResponse?, (any Error)?) -\u003e Void\n\n Objective-C \n\n typedef void (^GMSReverseGeocodeCallback)(/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSReverseGeocodeResponse *_Nullable,\n NSError *_Nullable)\n\n- `\n ``\n ``\n `\n\n [GMSMapPoint](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSMapPoint)`\n ` \n A point on the map. May represent a projected coordinate.\n\n x is in \\[-1, 1\\]. The axis direction is normal: y grows towards North, x grows towards East. (0,\n 0) is the center of the map.\n\n See `GMSProject()` and `GMSUnproject()`. \n\n Declaration \n Objective-C \n\n typedef struct /maps/documentation/navigation/ios-sdk/reference/objc/Structs/GMSMapPoint /maps/documentation/navigation/ios-sdk/reference/objc/Structs/GMSMapPoint\n\n- `\n ``\n ``\n `\n\n [GMSOrientation](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSOrientation)`\n ` \n [GMSOrientation](/maps/documentation/navigation/ios-sdk/reference/objc/Structs/GMSOrientation) is a tuple of heading and pitch used to control the viewing\n direction of a [GMSPanoramaCamera](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSPanoramaCamera). \n\n Declaration \n Objective-C \n\n typedef struct /maps/documentation/navigation/ios-sdk/reference/objc/Structs/GMSOrientation /maps/documentation/navigation/ios-sdk/reference/objc/Structs/GMSOrientation\n\n- `\n ``\n ``\n `\n\n [GMSPanoramaCallback](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSPanoramaCallback)`\n ` \n Callback for when a panorama metadata becomes available.\n If an error occurred, `panorama` is nil and `error` is not nil.\n Otherwise, `panorama` is not nil and `error` is nil.\n\n @related [GMSPanoramaService](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSPanoramaService) \n\n Declaration \n Swift \n\n typealias GMSPanoramaCallback = (/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSPanorama?, (any Error)?) -\u003e Void\n\n Objective-C \n\n typedef void (^GMSPanoramaCallback)(/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSPanorama *_Nullable, NSError *_Nullable)\n\n- `\n ``\n ``\n `\n\n [GMSVisibleRegion](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSVisibleRegion)`\n ` \n [GMSVisibleRegion](/maps/documentation/navigation/ios-sdk/reference/objc/Structs/GMSVisibleRegion) contains the four points defining the polygon that is visible in a map's\n camera.\n\n This polygon can be a trapezoid instead of a rectangle, because a camera can have tilt. If the\n camera is directly over the center of the camera, the shape is rectangular, but if the camera is\n tilted, the shape will appear to be a trapezoid whose smallest side is closest to the point of\n view. \n\n Declaration \n Objective-C \n\n typedef struct /maps/documentation/navigation/ios-sdk/reference/objc/Structs/GMSVisibleRegion /maps/documentation/navigation/ios-sdk/reference/objc/Structs/GMSVisibleRegion\n\n- `\n ``\n ``\n `\n\n [GMSTileURLConstructor](/maps/documentation/navigation/ios-sdk/reference/objc/Type-Definitions/GMSTileURLConstructor)`\n ` \n `GMSTileURLConstructor` is a block taking `x`, `y` and `zoom` and returning an NSURL, or nil to\n indicate no tile for that location.\n\n @related [GMSURLTileLayer](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSURLTileLayer) \n\n Declaration \n Swift \n\n typealias GMSTileURLConstructor = (UInt, UInt, UInt) -\u003e URL?\n\n Objective-C \n\n typedef NSURL *_Nullable (^GMSTileURLConstructor)(NSUInteger, NSUInteger,\n NSUInteger)"]]