字符串到CLLocation纬度和经度

时间:2011-10-26 19:21:17

标签: iphone objective-c string cllocation

我有两个表示纬度和经度的字符串,如:“ - 56.6462520”,我想分配给CLLocation对象以与我当前的位置进行比较。我尝试了以下代码,但我只得到错误:

CLLocation * LocationAtual = [[CLLocation alloc]init];
LocationAtual.coordinate.latitude = @"-56.6462520";
LocationAtual.coordinate.longitude = @"-36.6462520";

然后将对象与我的实际位置纬度和经度进行比较。有什么建议吗?

5 个答案:

答案 0 :(得分:107)

您不能直接分配到坐标 - 它是CLLocation的只读属性。
使用以下实例方法:

- (instancetype)initWithLatitude:(CLLocationDegrees)latitude
                       longitude:(CLLocationDegrees)longitude

示例:

CLLocation *LocationAtual = [[CLLocation alloc] initWithLatitude:-56.6462520 longitude:-36.6462520];

答案 1 :(得分:13)

我认为你需要:

LocationAtual.coordinate.latitude = [@"-56.6462520" floatValue];
LocationAtual.coordinate.longitude = [@"-36.6462520" floatValue];

答案 2 :(得分:7)

快速回答懒惰:

var LocationAtual: CLLocation = CLLocation(latitude: -56.6462520, longitude: -36.6462520)

答案 3 :(得分:2)

CLLocation坐标实际上是一个只读值

    @property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

因此,将虚拟数据分配给坐标的最佳方法是AMITp方式

答案 4 :(得分:1)

纬度和经度是双倍值,因此需要以这种方式分配。

CLLocation *LocationAtual=[[CLLocation alloc] initWithLatitude:[[location objectForKey:@"latitude"] doubleValue] longitude:[[location objectForKey:@"longitude"] doubleValue]]