1

distanceFromLocationメソッドを使用すると、常にゼロが返されるという問題があります。

ここに私のコードスニペットがあります:

NSArray *arrATMItem = [arrATMs objectAtIndex:indexPath.row];
cell.textLabel.text = [arrATMItem objectAtIndex:0];

float lat = [[arrATMItem objectAtIndex:1] floatValue];
float lon = [[arrATMItem objectAtIndex:2] floatValue];
CLLocation *branchLoc = [[CLLocation alloc] initWithLatitude:lat longitude:lon];

CLLocationDistance dist = [currentLocation distanceFromLocation:branchLoc];
NSLog(@"distance = %d",dist);
cell.detailTextLabel.text = [[NSString alloc] initWithFormat:@"%d m", dist];

branchLocまた、インスタンスとcurrentLocインスタンスの値が正しいことも確認しました。

の値の例を次に示しますbranchLoc

緯度: -6.17503957 経度: 106.79891717

の値currentLocは次のとおりです。

緯度: -6.17603957 経度: 106.79891717

値はbranchLocplist ファイルから取得され、デリゲート ファイルで定義されcurrentLocた CLLocation メソッドの CLLocation クラスから取得されます。locationUpdate

%f を使用してみましたが、 0.00000 なども返されます。

私が間違っていることは何か分かりますか?

ありがとう

4

1 に答える 1

0

緯度と経度に double (または CLLocationDegrees) を使用してみてください。

于 2011-03-31T12:46:42.577 に答える