This is provided as frequently as possible by the location provider. Locations are only
road-snapped when in driving mode, not when walking or cycling.
If any of the location properties are unavailable, they are set to the following values:
coordinate: kCLLocationCoordinate2DInvalid
altitude: NAN
horizontalAccuracy: -1
verticalAccuracy: -1
course: -1
speed: -1
Note that this method will not be called if the terms and conditions have not been accepted.
[[["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\u003eGMSRoadSnappedLocationProviderListener\u003c/code\u003e is a protocol for receiving events from the \u003ccode\u003eGMSRoadSnappedLocationProvider\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003elocationProvider:didUpdateLocation:\u003c/code\u003e method is called frequently with the device's current location, road-snapped when in driving mode.\u003c/p\u003e\n"],["\u003cp\u003eIf location properties are unavailable, they are set to specific invalid values like \u003ccode\u003ekCLLocationCoordinate2DInvalid\u003c/code\u003e for coordinate, \u003ccode\u003eNAN\u003c/code\u003e for altitude, and \u003ccode\u003e-1\u003c/code\u003e for accuracy, course, and speed.\u003c/p\u003e\n"],["\u003cp\u003eThis method will not be called if the necessary terms and conditions have not been accepted by the user.\u003c/p\u003e\n"]]],[],null,["# GoogleNavigation Framework Reference\n\nGMSRoadSnappedLocationProviderListener\n======================================\n\n @protocol GMSRoadSnappedLocationProviderListener \u003cNSObject\u003e\n\nListener for events on [GMSRoadSnappedLocationProvider](../Classes/GMSRoadSnappedLocationProvider.html).\n- `\n ``\n ``\n `\n\n ### [-locationProvider:didUpdateLocation:](#/c:objc(pl)GMSRoadSnappedLocationProviderListener(im)locationProvider:didUpdateLocation:)\n\n `\n ` \n Called when the device's location is updated.\n\n This is provided as frequently as possible by the location provider. Locations are only\n road-snapped when in driving mode, not when walking or cycling.\n\n If any of the location properties are unavailable, they are set to the following values:\n coordinate: `kCLLocationCoordinate2DInvalid`\n altitude: NAN\n horizontalAccuracy: -1\n verticalAccuracy: -1\n course: -1\n speed: -1\n\n Note that this method will not be called if the terms and conditions have not been accepted. \n\n #### Declaration\n\n Swift \n\n func locationProvider(_ locationProvider: ../Classes/GMSRoadSnappedLocationProvider.html, didUpdate location: CLLocation)\n\n Objective-C \n\n - (void)locationProvider:\n (nonnull ../Classes/GMSRoadSnappedLocationProvider.html *)locationProvider\n didUpdateLocation:(nonnull CLLocation *)location;"]]