ios - swift - 如何在应用程序运行时顺利加载谷歌地图 View

标签 ios swift google-maps currentlocation

当 View 在初始启动时加载(点击图标/运行程序),谷歌地图 View 在英国启动,然后以非常突然的方式传送到我当前的位置。我的代码中没有任何我认为会导致它加载到那里然后传送到我的位置的英国坐标。

如何解决这个问题并使启动过程更优雅?

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

}

Beginning of Launch

Abruptly shifts to current location

最佳答案

您可以尝试使用 Map Objects .默认情况下, map 上不显示位置数据。您可以通过在 GMSMapView 上设置 myLocationEnabled 来启用蓝色的“我的位置”点和罗盘方向。

mapView.myLocationEnabled = true

启用此功能还将通过 myLocation 属性提供用户的当前位置。

if let mylocation = mapView.myLocation {
  print("User's location: \(mylocation)")
} else {
  print("User's location is unknown")
}

此属性可能不会立即可用 - 例如,如果 iOS 提示用户允许访问此数据。在这种情况下它将为零。

关于ios - swift - 如何在应用程序运行时顺利加载谷歌地图 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34984898/

相关文章:

javascript - Apple 会允许在 iOS 上使用 V8 驱动的 Javascript 应用程序吗?

objective-c - 创建好友属性的正确方法

swift - RxTest - 如何比较 Event<Void> 因为 Void 不是 Equatable

javascript - Drupal 7 - Javascript 与 Google map 自动完成的集成问题

javascript - 对两个或多个地址进行地理编码

ios - Swift - 访问 self 以避免将参数传递给函数

ios - 是否可以让 Twitter 在 iOS 应用程序中注销?

ios - deleteRowsAtIndexPaths 重置自定义单元格

ios - PhaseScriptExecution 失败,退出代码非零

标记图标内的 Android Google Maps API 字符串