【发布时间】:2012-09-20 17:26:29
【问题描述】:
你好朋友,我看过很多关于 GPS 精度问题的帖子,但它始终无法正常工作
-(void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSString *latstr = [NSString stringWithFormat:@"%f", newLocation.coordinate.latitude];
NSString *longstring=[NSStringstringWithFormat:@"%f",newLocation.coordinate.longitude];
if (abs(howRecent)>5.0)
{
[self.locationManager startUpdatingLocation];
return;
}
if(abs(newLocation.horizontalAccuracy)<0.0f)
{
[self.locationManager startUpdatingLocation];
return;
}
if(newLocation.horizontalAccuracy>65.0f)
{
[self.locationManager startUpdatingLocation];
return;
}
self.latstring = [latstr copy];
self.longstr = [longstring copy];
if((updateLocationFirst||loadFirstView))
{
[[NSUserDefaults standardUserDefaults]setObject:latstring forKey:@"Latitude"];
[[NSUserDefaults standardUserDefaults]setObject:longstr forKey:@"Longitude"];
[self displayParticularDaySpecial];
loadFirstView=FALSE;
updateLocationFirst=FALSE;
[self.locationManager stopUpdatingLocation];
}
}
这里的问题是,如果我要降低精度值,它需要花费大量时间来加载,并且当您到达目的地时这个值有问题,那么我正在将一些地址的纬度和经度发送到 Google到目的地相差 0.6 英里。
【问题讨论】:
-
顺便说一句,
abs(newLocation.horizontalAccuracy)<0.0f永远不会是真的,不是吗?一个数的绝对值怎么会小于零?
标签: iphone ios cllocationmanager