我试图找出如何获取我的位置坐标" currentCentre"在ViewDidLoad中,所以我可以在我的详细视图中自动查询谷歌数据(不点击任何内容),问题是最初的坐标是0.0000,0.0000而谷歌不能查询任何内容,但如果我放大地图和然后查询我返回谷歌搜索结果。我怎么能解决这个问题,我已经读过一些地方,这些地方经理需要更多的时间来找到我的位置,所以如果这就是问题,我可以用什么一两个衬垫创造一个人工延迟,所以我可以得到有效的坐标:
代码段:
- (void)viewDidLoad
{
[super viewDidLoad];
_mapView.delegate = self;
self.mapView.delegate = self;
[self.mapView setShowsUserLocation:YES];
locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationManager startUpdatingLocation];
[self autoQuery];
}
-(void)autoQuery {
NSLog(@"%f", currentCentre.latitude);
NSLog(@"%f", currentCentre.longitude);
[self queryGooglePlaces:@"cafe"]; //]self.detailItem];
NSLog(@"%@",self.detailItem);
}
答案 0 :(得分:0)
如果你打电话,我实际上找到了解决问题的更好方法:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
NSLog(@"%f", currentCentre.latitude);
[self autoQuery];
}
此方法不允许您在更新位置之前执行内部代码,因此一旦更新,内部代码将会执行。
答案 1 :(得分:0)
您可以使用位置管理器委托方法并在那里更新Google查询。
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { [self autoQuery]; }
答案 2 :(得分:0)
if (currentCentre.latitude != 0.000000)
{
if (_count == 0) {
[self autoQuery];
_count = _count + 1;
}
}
currentCentre在界面中定义,以获取GPS坐标:CLLocationCoordinate2D currentCentre;
如果有人有更好的方式或更有效的方式,请写评论。感谢