-1

場所の座標をユーザーの現在の座標と比較しています。距離は次のように出力されます: 6056609.511004132946254686

これが何の測定値なのかわかりません。最終的な測定距離を km にしたいのです。

 // location of deal
CLLocation *locA = [[CLLocation alloc] initWithLatitude:latNum longitude:lngNum];

// user's current location
CLLocation *locB = [[CLLocation alloc] initWithLatitude:currentLatitude longitude:currentLongitude];

CLLocationDistance distanceToDeal = [locA distanceFromLocation:locB];
4

3 に答える 3

4

ドキュメンテーションをざっと読んだだけで、これが明確になったはずです。クイック ヘルプ インスペクターをオンにすると (Xcode 4.5 ではcommand+ option+を押すか、[表示] メニューの [ユーティリティ] セクションから [クイック ヘルプ インスペクターを表示] を選択します)、コード内で を2クリックすると、distanceFromLocationこのメソッドのドキュメントがすぐそこにあり、メートル単位であることが明確になっています。または、optionキーを押しながらマウスをdistanceFromLocationコード内のメソッドの上に移動し、(キーを押したまま) をクリックするとoption、オンライン ヘルプのポップオーバーが表示されます。

ここに質問を投稿する前に、Apple のドキュメントを参照してください。

于 2012-12-27T16:20:56.210 に答える
2

Apple docで説明されているように、distanceFromLocation 関数はメートル単位で値を返します。したがって、あなたがしなければならないことは、メートルをkmに変換することです;)

CLLocation *locA = [[CLLocation alloc] initWithLatitude:latNum longitude:lngNum];
CLLocation *locB = [[CLLocation alloc] initWithLatitude:currentLatitude longitude:currentLongitude];

//Compute distance in meters
CLLocationDistance distanceToDeal = [locA distanceFromLocation:locB];

//Convert meters to km
double km = distanceToDeal/1000;
于 2012-12-27T16:06:06.853 に答える
2

メートル単位で、Apple のドキュメントから:

CLLocationDistance

既存の場所からの距離測定値 (メートル単位)。

typedef double CLLocationDistance

提供状況 iOS 2.0 以降で利用可能です。CLLocation.h で宣言

于 2012-12-27T16:02:31.163 に答える