2016-06-20 82 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

我會將這一個標記爲最正確的,因爲它是最好的描述,它會處理如果您沒有將半徑設置爲Double的錯誤。 –

+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

釘住它。但是,一個小的改變,確保將minDistance設置爲100.0,因爲CLLocation是一個Double而不是Int。所以你的例子中的if語句會給你一個錯誤。 –

+0

謝謝@ErickMaynard! – Macondo2Seattle

相關問題