web-dev-qa-db-ja.com

CLLocationの緯度と経度の文字列

「-56.6462520」のような緯度と経度を表す2つの文字列があり、それからCLLocationオブジェクトに割り当てて現在の場所と比較したい。

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

オブジェクトを実際の場所の緯度と経度と比較します。助言がありますか?

20
Vinicius Albino

私はあなたがする必要があると思う:

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

coordinateに直接割り当てることはできません-CLLocationの読み取り専用プロパティです。
次のインスタンスメソッドを使用します。

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

例:

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

怠け者のための迅速な回答:

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

CLLocation座標は実際には読み取り専用の値です

    @property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

したがって、ダミーデータを座標に割り当てる最良の方法は、AMITp方法です。

2
abc123

緯度と経度は二重の値であるため、この方法で割り当てる必要があります。

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