获取用户的当前位置google api无法正常工作

时间:2016-08-09 15:16:40

标签: ios swift google-places-api google-location-services

你好我在我的IOS应用程序中使用谷歌自动完成位置。但问题是它不起作用。而且我无法获得用户的当前位置。

搜索功能在自动填充框中成功显示位置,但我遇到的唯一问题是无法获取用户的当前位置。这是获取用户当前位置的代码

class ViewController: UIViewController,CLLocationManagerDelegate {


    var locationManager = CLLocationManager()
    var placesClient : GMSPlacesClient?
    override func viewDidLoad() {
        super.viewDidLoad()

         locationManager.requestAlwaysAuthorization()

       run()

    }

 func run(){

        self.placesClient?.currentPlaceWithCallback({ (list: GMSPlaceLikelihoodList?, error: NSError?) -> Void in
            if let error = error {
                print("error: \(error.description)")
                return
            }

            for likelihood in list!.likelihoods {
                if let likelihood = likelihood as? GMSPlaceLikelihood {
                    let place = likelihood.place
                    print("Current Place name \(place.name) at likelihood \(likelihood.likelihood)")
                    print("Current Place address \(place.formattedAddress)")
                    print("Current Place attributions \(place.attributions)")

                    print("Current PlaceID \(place.placeID)")
                }
            }
        })
    }

我也在info.plist中添加了密钥,我正在手机上编译应用程序。

enter image description here

1 个答案:

答案 0 :(得分:0)

viewDidLoad()

中添加以下内容
placesClient = GMSPlacesClient.shared()

您在请求授权后立即放置run(),API可能无法在您运行应用程序时第一次运行,因为它是异步的,并且API会因为当时尚未获得授权而响应错误。