2011-12-12 115 views
0

我使用这个代码来获得GPS数据GPS获取经度和海拔分别

- (void)locationUpdate:(CLLocation *)location { 
    locLabel.text = [location description]; 
} 

结果看起来像这样

< 38.76856432,11.99454301> +/-100.00米(速度......)

当我特里此我有一个错误,

- (void)locationUpdate:(CLLocation *)location { 
    locLabel.text = [location altitude];} 

错误

Assigng到 “的NSString *” 从不兼容的类型CLLocationDistance (又名双)

我想经度太

回答

4

您应该能够从location.coordinate.latitudelocation.coordinate.longitude分别获得纬度和经度。

您收到的高度可能无效。检查location.verticalAccuracy中的值。根据文档,“负值表示高度值无效。” location.horizontalAccuracy也一样,以确保location.coordinate中的纬度和经度值有效。

+0

谢谢你,它是无效的! – user567

1

altitude属性是CLLocationDistance类型,这是typedefdouble。您正在尝试将数字分配给期望字符串的属性。你需要创建一个数字的字符串表示。使用这样的事情:

locLabel.text = [NSString stringWithFormat:@"%f", [location altitude]]; 
+0

谢谢,但我有零结果。我认为我们没有以这种方式获得经度和高度 – user567

+0

这是访问海拔高度数据的正确方式,但高度数据不适用于所有位置更新。 – Jim

+0

我是户外,它的工作:) – user567

相关问题