2016-06-20 1 views
0

私がする必要があることは、ユーザーが特定の場所(会場のIE)にいるかどうかを調べることです。ユーザーが、特定のViewControllerにアクセスできるようにします。ユーザーが特定の場所にいるかどうかを確認する方法

私はオンラインでこの問題への回答を高く評価していますが、驚くほど何も見つかりませんでした。私はiOS開発にはかなり新しいと言うでしょう。

私はRay Wenderlichチュートリアルのようにジオフェンシングと同じように複雑なものは必要ありません。バックグラウンドで実行する必要はありません。私はまた、彼らが出入りしたかどうかを知る必要はありません。ユーザーがそのボタンをクリックしたときに、そのエリア内にあるかどうかだけです。

私はCoreLocationを使用してユーザーの場所を取得することができましたが、ユーザーが特定の場所にいるかどうかを特定する方法については混乱しています。理想的には、私は約5マイル(それは大きな場所です)の半径が欲しいでしょう。

+0

ので、あなたは、ユーザーの場所や会場の場所がありますか? –

+0

はい、私はそれらの両方を持っています。 –

答えて

0

あなたがユーザーの位置だけでなく、会場の場所を持っている場合は、次の操作を行うことができます。

let radius: Double = 5 // miles 

let userLocation = CLLocation(latitude: 51.499336, longitude: -0.187390) 
let venueLocation = CLLocation(latitude: 51.500909, longitude: -0.177366) 

let distanceInMeters = userLocation.distanceFromLocation(venueLocation) 
let distanceInMiles = distanceInMeters * 0.00062137 

if distanceInMiles < radius { 
    // user is near the venue 
} 
+0

私はそれが最良の記述であることを正しいものとしてマークし、半径をダブルとして設定しなかった場合に得られるエラーを扱います。 –

+0

うれしい私は助けることができる:) –

0

会場の緯度と経度がある場合は、CLLocationオブジェクトを作成し、その場所からのユーザーの距離を確認してください。

// get the current user location, then... 

let MinDistance = 100.0 // meters 
let distance = venueLocation.distanceFromLocation(userLocation) 
if distance < MinDistance { 
    // I'm close enough to the venue! 
} 
+0

Googleマップから場所を取得します。 – gnasher729

+0

それを釘付け。ただし、1つの小さな変更は、CLLocationがIntではないDoubleであるため、minDistanceを100.0に設定してください。あなたの例のif文はエラーを起こすでしょう。 –

+0

ありがとう@ErickMaynard! – Macondo2Seattle

関連する問題