经度/纬度值不正确
Posted
技术标签:
【中文标题】经度/纬度值不正确【英文标题】:longitude/latitude values are not correct 【发布时间】:2011-05-01 22:30:01 【问题描述】:我尝试捕捉经度和纬度值并暂时将它们显示在控制台(NSLog)中,我已经将对应的代码放在viewWillAppear
方法中,无论如何,这没什么大不了的,我的问题是当我第一次显示视图时,我的控制台向我显示:
latitude: 0.000000
longitude:0.000000
第二次它告诉我:
latitude : 134217731.444448
longitude : 0.700000
第三次:
latitude : 134217731.444448
longitude : 0.700000
第n次:
latitude : 134217731.444448
longitude : 0.700000
这是我在viewWillAppear
中的代码(我确信它的逻辑非常正确,我正在等待您的澄清):
-(void)viewWillAppear:(BOOL)animated
// locationManager update as location
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = kCLDistanceFilterNone;
[locationManager startUpdatingLocation];
CLLocation *location = [locationManager location];
// Configure the new event with information from the location
CLLocationCoordinate2D coordinate = [location coordinate];
NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude];
NSLog(@"Latitude : %@", latitude);
NSLog(@"Longitude : %@",longitude);
请注意,我在 iPhone 模拟器上工作,谢谢帮助 :)))
【问题讨论】:
【参考方案1】:你不应该在这里检查坐标。
在同一个类中实现locationManager:didUpdateToLocation:fromLocation:
方法并检查该方法内部的位置:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
CLLocationCoordinate2D coordinate = [newLocation coordinate];
NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude];
NSLog(@"Latitude : %@", latitude);
NSLog(@"Longitude : %@",longitude);
您当前的类应该实现CLLocationManagerDelegate
协议,即它应该是位置管理器的代表。
【讨论】:
以上是关于经度/纬度值不正确的主要内容,如果未能解决你的问题,请参考以下文章