当视图加载初始启动(点击图标/运行程序),谷歌Map视图开始在英国,然后传送到我目前的位置在一个非常突然的方式。在我的代码没有任何地方,我会认为会导致它加载那里,然后传送到我的位置。
如何解决这个问题并使启动过程更优雅?
let locationManager = CLLocationManager()
let googleMapView: GMSMapView!
override func viewDidLoad() {
super.viewDidLoad()
self.locationManager.requestAlwaysAuthorization()
self.locationManager.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startMonitoringSignificantLocationChanges()
}
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
self.googleMapView = GMSMapView(frame: self.mapViewContainer.frame)
self.view.addSubview(self.googleMapView)
self.googleMapView.myLocationEnabled = true
self.googleMapView.settings.compassButton = true
}
2条答案
按热度按时间wpx232ag1#
您可以尝试使用Map Objects。默认情况下,Map上不显示位置数据。您可以通过在
GMSMapView
上设置myLocationEnabled
来启用蓝色“我的位置”点和指南针方向。mapView.myLocationEnabled = true
通过启用此功能,还将通过myLocation属性提供用户的当前位置。
此属性可能不会立即可用-例如,如果iOS提示用户允许访问此数据,则此属性将为空。
8qgya5xd2#
您必须使用相机初始化Map(和位置初始化)。例如: