[英]Getting current location from Google Maps IOS on start up of app
我正在使用IOS的Google Maps API,想知道是否有一种方法可以在应用程序加载后立即检索设备的当前位置以在地图上显示。
目前,当应用加载时,当前位置坐标对象为nil,因此在应用崩溃之前,我无法将地图摄像头设置在该对象上。 有没有一种方法可以解决此问题,而不必将相机放置在其他位置,然后用户按“我的位置”按钮移动相机。
要从地图获取位置,只需使用gmsMap.myLocationEnabled = true
,谷歌地图将为您完成其余工作。 要将相机设置到您的位置,请添加关键值myKey的关键值观察器以进行映射
map.addObserver(self, forKeyPath: "myLocation", options: .New, context: nil)
deinit {
//dont forget to remove observer
mapView.removeObserver(self, forKeyPath: "myLocation")
}
override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
if change[NSKeyValueChangeOldKey] == nil {
let location = change[NSKeyValueChangeNewKey] as CLLocation
gmsMap.camera = GMSCameraPosition.cameraWithTarget(location.coordinate, zoom: 16)
}
}
我认为这个答案将帮助您: https : //stackoverflow.com/a/20994202/4195406
基本上,您必须在地图视图加载后启用myLocation:
dispatch_async(dispatch_get_main_queue(), ^{
mapView_.myLocationEnabled = YES;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.