Firebase GeoFire-使用半径将项目保存到特定位置
目前我没有任何代码可供共享,但我正试图找出如何解决我的问题。。我希望你们中的一些人能提出一些建议 我正在构建一个应用程序,在该应用程序中,我可以从Firebase GeoFire-使用半径将项目保存到特定位置,firebase,firebase-realtime-database,geolocation,geofire,Firebase,Firebase Realtime Database,Geolocation,Geofire,目前我没有任何代码可供共享,但我正试图找出如何解决我的问题。。我希望你们中的一些人能提出一些建议 我正在构建一个应用程序,在该应用程序中,我可以从地理位置获取用户的lat/long,如果他们位于具有半径的预定区域内,他们可以将数据发布到服务器,但如果他们不在我指定的区域内,则不允许。。以下是一幅图像,例如: 因此,在本例中,如果用户在其中一个圆的半径内,则可以发布,但如果用户不在,则不能发布 我还必须根据他们所在的圆圈获取数据 我想知道的是,我该如何指定这些半径的存在位置,以及这种缩放是否容易
地理位置获取用户的lat/long,如果他们位于具有半径的预定区域内,他们可以将数据发布到服务器,但如果他们不在我指定的区域内,则不允许。。以下是一幅图像,例如:
因此,在本例中,如果用户在其中一个圆的半径内,则可以发布,但如果用户不在,则不能发布
我还必须根据他们所在的圆圈获取数据
我想知道的是,我该如何指定这些半径的存在位置,以及这种缩放是否容易?如果我需要添加10-30个新位置,这会很容易吗?您可以从设备和圆圈中获得用户位置;你有圆心和半径。发帖时,检查用户位置到圆圈中心的距离,并列举圆圈位置。如果距离在半径范围内,他们可以发布,如果不在,则不在
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()
}