我试图让地图自动跟随用户(位置),但不知何故应用程序崩溃(没有错误消息)或地图在我启动应用程序时不显示。我做错了什么?
我试过没有locationManager func,然后它确实有效。还有其他方法可以关注用户吗?
{{1}}
答案 0 :(得分:2)
检查这些事情: -
您已将GMSMapview
@IBOutlet 的代理设置为自我
mapView.delegate = self
您已使用特定密钥
您已在AppDelegate
var googleApiKey = String(_yourAPIkey)
GMSServices.provideAPIKey(googleApiKey)
答案 1 :(得分:1)
我认为最好的方法是使用键值观察(KVO):
override func viewWillAppear(animated: Bool) {
mapView.addObserver(self, forKeyPath: "myLocation", options:0, context:nil)
}
deinit {
mapView.removeObserver(self, forKeyPath:"myLocation", context:0)
}
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
if(keyPath! == "myLocation"]) {
let location = [object myLocation]
let target =
CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude);
mapView.animateToLocation(target)
mapView.animateToZoom(17)
}
}
答案 2 :(得分:0)
似乎谷歌地图没有出现在你的视图中。我想你想获得像图像一样的视图。
因此,我建议您下载 Google地图SDK 版本 1.10以下,因为我遇到此问题的次数太多了。
我建议您从下面链接下载谷歌地图SDK 1.9.1 以获取谷歌地图
https://developers.google.com/maps/documentation/ios-sdk/releases
尝试使用版本1.9.1 一次。希望这件事有效
注意:如果您想使用Google地图自动填写和其他新服务,请使用更高版本的Google地图SDK
答案 3 :(得分:0)
有同样的问题。 通过获取新的API密钥来修复。 我发现,您需要两个密钥:一个用于Google地方信息,一个用于Google地图。至少是为了测试目的。
在Google文档中,它没有提及。