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

相关问题