Ios 查找用户位置周围具有不同半径的点
我正在为我的一个项目使用Firebase,我想知道使用Geofire是否可以实现以下目标 我有一个半径可用的点列表(纬度、液化天然气、半径)。在所附图像中,蓝色圆由点及其半径创建 我想找到所有到达用户位置的圆圈(红色圆圈-只是一个点)。我想要达到的最终效果类似于看到你周围的所有wifi网络——其中一些可能有更强的信号 可以使用Geofire完成吗?如果是,我应该如何处理查询Ios 查找用户位置周围具有不同半径的点,ios,firebase,firebase-realtime-database,gis,geofire,Ios,Firebase,Firebase Realtime Database,Gis,Geofire,我正在为我的一个项目使用Firebase,我想知道使用Geofire是否可以实现以下目标 我有一个半径可用的点列表(纬度、液化天然气、半径)。在所附图像中,蓝色圆由点及其半径创建 我想找到所有到达用户位置的圆圈(红色圆圈-只是一个点)。我想要达到的最终效果类似于看到你周围的所有wifi网络——其中一些可能有更强的信号 可以使用Geofire完成吗?如果是,我应该如何处理查询 Firebase无法处理这样的查询,因为orderBy中没有逻辑。我不确定geofire能否绕过这个限制(从我浏览过的文档
Firebase无法处理这样的查询,因为orderBy中没有逻辑。我不确定geofire能否绕过这个限制(从我浏览过的文档来看,它无法做到),因此我们必须想出另一种方法。如果你知道其中一个圆的最大尺寸,我们也许可以大致计算出要选择的圆 (旁注,我假设你只想要上半球的东西,如果你想同时处理这两个问题,会有更多的数学知识,但我不会在这里详述) 我将大致描述如何做到这一点,当你靠近两极时,纬度/经度是很棘手的,半径并不总是在赤道附近用一个圆平移1-1,因为它在更远的北方。在大多数情况下,这个想法是可行的,但确定最小/最大值的数学以及循环的最后一步都会发生变化
- 最小纬度:(红色圆圈纬度)-(最大圆圈半径)
- 最大纬度:(红色圆圈纬度)+(最大圆圈半径)
- 最小经度:(红色圆圈经度)-(最大圆圈半径)
- 最大经度:(红色圆圈经度)+(最大圆圈半径)
- 有点像经纬度
orderByChild(“\u latitude\u latitude”).startAt(minLatitude+'\u'+minLatitude).endAt(maxLatitude+'\u'+MaxLongitude)
(别忘了确保这些都具有相同的精度)这是我能想到的唯一没有服务器端处理的方法。谢谢您的回答!随着额外需求的增加,问题越来越严重,我最终采用了Firebase+PostGIS的混合方法。