2016-12-11 97 views
0

让用户的位置加载谷歌地图非常麻烦。在用户位置加载地图 - iOS中的谷歌地图

我已经使用了大量的资源,尤其是这一个,但它最后一次更新超过一年前,好好尝试一下工作以及在斯威夫特3/8的Xcode (https://www.raywenderlich.com/109888/google-maps-ios-sdk-tutorial

任何人有一些样本代码或调整,可以帮助我做到这一点?

RayWenderlich教程的主要问题 - 不会让我运行扩展中的函数。扩展中的导入类是多余的,并引发错误。类,你不能使用扩展。所以,我试过只使用一个函数,但然后我得到一个错误,试图调用 func locationManag ER(经理:CLLocationManager,didChangeAuthorizationStatus状态:CLAuthorizationStatus)

+0

尝试获取用户位置,然后使用它在开始时设置地图位置。所以,地图应该加载在中心的用户位置。 –

回答

0

解决:

可变

var centerMap = true 

viewDidLoad中

super.viewDidLoad() 
    self.locationManager.delegate = self 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest 
    locationManager.requestWhenInUseAuthorization() 
    if CLLocationManager.locationServicesEnabled() { 
     self.locationManager.startUpdatingLocation() 
     self.mapView?.isMyLocationEnabled = true 
     print("locationserviceson") 
     centerMap = true 

功能的更新,当用户位置的改变

func locationManager(_ manager: CLLocationManager, didUpdateLocations location: [CLLocation]) { 
    print("yes") 

    userLocation = location.last! 
    if centerMap == true { 
     self.mapView.camera = GMSCameraPosition.camera(withTarget: userLocation.coordinate, zoom: 15.0) 
     self.locationManager.stopUpdatingLocation() 
     centerMap == false 
    } 

}