此时我还没有任何代码可以分享,但我想弄清楚如何解决我的问题。我希望你们中的一些人可能会有一些建议。
我构建了一个应用程序,我从geolocation
获取用户的lat / long,如果他们在半径的预定区域,他们可以将数据发布到服务器,但不是如果它们不在我指定的区域中,则允许使用。例如:这是一个图像:
因此,在此示例中,如果用户位于其中一个圆圈的半径内,则可以发布,但如果他们不是。
我还必须根据它们所在的圈子来获取数据。
我想知道的是,我如何指定这些半径的位置'存在,这容易扩大吗?如果我需要添加10-30个新位置,那么这很容易吗?
答案 0 :(得分:1)
您拥有设备中的用户位置,并且您拥有圈子;你有半径的圆心。在发布时,您检查从用户位置到圆心的距离,并枚举圆圈位置。如果距离在半径范围内,他们可以发布,如果没有,不是。
var radius = 100 //example
let canPostLocations = [
CLLocation1,
CLLocation2
]
func isInRange() -> Bool {
for canPost in canPostLocations {
let locationDistance = location.distance(from: canPost)
if (locationDistance < radius) {
return true
}
}
return false
}
用作:
var mayPost = false
var userLocation: CLLocation! = nil
if userLocation != nil {
mayPost = InRange(location: userLocation).isInRange()
}