Search code examples
iosswiftgoogle-maps-sdk-ios

How to get address using Google maps SDK?


I have a function where I try to get a users current address through their lat/long. But I am getting an error saying Cannot convert value of type '(GMSReverseGeocodeResponse, _) -> Void' to expected argument type 'GMSReverseGeocodeCallback' (aka '(Optional<GMSReverseGeocodeResponse>, Optional<Error>) -> ()')

   func googleMapsReverseGeocoding(){
        
      let gmsGeocoder = GMSGeocoder()
        gmsGeocoder.reverseGeocodeCoordinate((CLLocationCoordinate2DMake(currentLocation.coordinate.latitude, currentLocation.coordinate.longitude))) { //This is where I get the error.
            (gmsReverseGeocodeResponse: GMSReverseGeocodeResponse!, error: NSError!) -> Void in

            let gmsAddress: GMSAddress = gmsReverseGeocodeResponse.firstResult()
            print("\ncoordinate.latitude=\(gmsAddress.coordinate.latitude)")
            print("coordinate.longitude=\(gmsAddress.coordinate.longitude)")
            print("thoroughfare=\(gmsAddress.thoroughfare)")
            print("locality=\(gmsAddress.locality)")
            print("subLocality=\(gmsAddress.subLocality)")
            print("administrativeArea=\(gmsAddress.administrativeArea)")
            print("postalCode=\(gmsAddress.postalCode)")
            print("country=\(gmsAddress.country)")
            print("lines=\(gmsAddress.lines)")
        }
    }

Can someone let me know what I am doing wrong?


Solution

  • You need

    gmsGeocoder.reverseGeocodeCoordinate((CLLocationCoordinate2DMake(currentLocation.coordinate.latitude, currentLocation.coordinate.longitude))) {  
         (response, error) in
    }