GeoFire - 将项目保存到具有半径的特定位置
GeoFire - Save item to specific location with radius
目前我没有任何代码可以分享,但我正在尝试找出解决问题的方法。我希望你们中的一些人可以提供一些建议。
我正在构建一个应用程序,我从 geolocation
获取用户的 lat/long,如果他们在预定的半径范围内,他们可以 post 将数据发送到服务器,但如果它们不在我指定的区域中则不行。例如,这是一张图片:
所以在这个例子中,如果用户在其中一个圆的半径内,则用户可以 post,但如果不在,则不能。
我还必须根据他们所在的圈子获取数据..
我想知道的是,我将如何指定这些半径存在的位置以及这种缩放是否容易?如果我需要添加 10-30 个新位置,这会很容易吗?
你有来自设备的用户位置,因为你有圈子;你有圆心和半径。在 posting 时,您检查从用户位置到圆心的距离并枚举圆圈位置。如果距离在半径内,他们可以 post 如果不是,则不会。
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()
}
目前我没有任何代码可以分享,但我正在尝试找出解决问题的方法。我希望你们中的一些人可以提供一些建议。
我正在构建一个应用程序,我从 geolocation
获取用户的 lat/long,如果他们在预定的半径范围内,他们可以 post 将数据发送到服务器,但如果它们不在我指定的区域中则不行。例如,这是一张图片:
所以在这个例子中,如果用户在其中一个圆的半径内,则用户可以 post,但如果不在,则不能。
我还必须根据他们所在的圈子获取数据..
我想知道的是,我将如何指定这些半径存在的位置以及这种缩放是否容易?如果我需要添加 10-30 个新位置,这会很容易吗?
你有来自设备的用户位置,因为你有圈子;你有圆心和半径。在 posting 时,您检查从用户位置到圆心的距离并枚举圆圈位置。如果距离在半径内,他们可以 post 如果不是,则不会。
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()
}