纬度经度IOS 4.3

时间:2012-01-07 15:54:41

标签: objective-c ios xcode ios4

我正在关注http://www.switchonthecode.com/tutorials/getting-your-location-in-an-iphone-application教程,但我无法在Xcode SDK中获得经度和纬度。

- (void)viewDidLoad {
 [super viewDidLoad];
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager startUpdatingLocation];

}


- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
       fromLocation:(CLLocation *)oldLocation
{

int degrees = newLocation.coordinate.latitude;
double decimal = fabs(newLocation.coordinate.latitude - degrees);
int minutes = decimal * 60;
double seconds = decimal * 3600 - minutes * 60;
NSString *lat = [NSString stringWithFormat:@"%d° %d' %1.4f\"", 
                 degrees, minutes, seconds];
//latLabel.text = lat;
degrees = newLocation.coordinate.longitude;
decimal = fabs(newLocation.coordinate.longitude - degrees);
minutes = decimal * 60;
seconds = decimal * 3600 - minutes * 60;
NSString *longt = [NSString stringWithFormat:@"%d° %d' %1.4f\"", 
                   degrees, minutes, seconds];  
NSLog(@"%@ %@",longt, lat);

}

它没有显示控制台中的纬度和经度。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

您的代码看起来很好。如果它不起作用 - 问题不在这里。

确保:

  1. 您在设备(非模拟器)上运行它
  2. 您的设备已安装SIM卡并已连接至移动网络
  3. 将设备连接到具有Internet访问权限的WiFi是个好主意。
  4. 所有这些都将帮助GPS使用辅助GPS更快地固定位置。

    另外,请考虑Core Location几乎立即返回上一个已知位置。这是陈旧的,可能是错的,但立即提供。如果没有得到任何东西 - 它看起来像你的设备上的核心位置问题,而不是应用程序。

    此外,最好实现locationManager:didFailWithError:方法来捕获可能的错误。像禁用GPS一样。

    以下是此方法的示例:

    - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
    {
    NSLog(@"GPS Error: %@", [error localizedDescription]);
    }
    

    GPS定位可能需要几分钟才能完成3G和早期,大约需要10秒才能实现4和4S(假设两种情况下天空晴朗)