gpt4 book ai didi

ios - 无法使用 Google Map API (GMSMapView) 获取当前位置

转载 作者:行者123 更新时间:2023-11-28 20:10:19 29 4
gpt4 key购买 nike

我尝试使用 Google Map API 获取从当前位置到其他点的方向。当我手动输入起点和终点时,一切正常。但是,当我尝试将原点设置为当前位置时,该位置为空,如下代码所示:

mainMap=[[GMSMapView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithTarget:[mainMap.myLocation coordinate] zoom:13];
mainMap.camera=camera;
mainMap.myLocationEnabled=YES; // <---- The blue point appear on map: it's exactly my location

[self.view addSubview:mainMap];

//Get mylocation
CLLocation *myLocation = mainMap.myLocation; // <----- NULL

有没有人知道我的问题是什么?非常感谢

最佳答案

问题是:获取位置是异步的,你如何做是期望它阻塞直到它到达那里......这不是它的工作方式

你必须在 map 和观察者 myLocation 中添加一个 KVO 观察者。
然后当您的观察方法被调用时,您将获得 myLocation。

(这也是蓝点的工作方式:))

- (void)viewDidLoad {
//...
[self.mapView addObserver:self forKeyPath:"myLocation" options:0 context:nil];
}
- (void)dealloc {
[_mapView removeObserver:self forKeyPath:@"myLocation"];
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if([keyPath isEqualToString:@"myLocation"]) {
CLLocation *l = [object myLocation];
//...
}
}

关于ios - 无法使用 Google Map API (GMSMapView) 获取当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20607358/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com