1

さて、Claus Brochのおかげで、2つのGPS位置の比較である程度の進歩がありました。「現在の位置が(リストからの任意のGPS位置)と等しい場合は、何かを実行する必要があります。

現時点での私のコードは次のとおりです。

CLLocationCoordinate2D bonusOne; bonusOne.latitude = 37.331689; bonusOne.longitude = -122.030731;

これは、無限ループでのシミュレータのGPS位置です

CLLocation *loc1 = [[CLLocation alloc] initWithLatitude:bonusOne.latitude longitude:bonusOne.longitude];
double distance = [loc1 getDistanceFrom:newLocation];
if(distance <= 10000000) {

次に、何かをします}

10000000未満の任意の数値であり、一致するものがないと想定されます。

4

1 に答える 1

2

はい、getDistanceFrom2点間の距離を取得するために使用できます。距離はメートル単位です。その比較を使用して、ロケーションマネージャからの現在の水平精度と比較して、おおよそ「ボーナス1」の位置にいるかどうかを判断できます。

CLLocation *bonusLocation = [[CLLocation alloc] initWithLatitude:bonusOne.latitude longitude:bonusOne.longitude];
float distance = [bonusLocation getDistanceFrom:newLocation];
float threshold = 2 * [newLocation horizontalAccuracy]; // Or whatever you like
if(distance <= threshold) {
  // You are at the bonus location.
}
于 2010-03-21T12:03:35.927 に答える