我想知道使用地理位置及其GPS坐标来确定和计算哪些用户靠近一个用户的最佳方法是什么。
鉴于主要用户GPS坐标,我知道如何计算一个"边界框"围绕他的位置。我可以为每个用户配置文件在数据库中存储该边界框坐标。但是,如何确定哪些用户靠近发送请求的用户?
是否有任何公式可以让我计算一个"框"在GPS位置周围,给定距离,因此位于THAT框内并应用此公式的每个GPS位置都会呈现相同的框?
这样做可以让我简单地向我的数据库询问哪些用户假装在此框中。
答案 0 :(得分:1)
您可以在Geospatial Indexes and Queries的帮助下处理地理空间信息。如果我理解正确,$geoWithin
可以帮助你。此运算符选择具有完全在指定形状内的地理空间数据的文档,在您的情况下,它将是用户位置周围的边界框。
答案 1 :(得分:0)
我最终决定使用MongoDB提供的$geoNear
广告。
这非常有效,因为我可以设置最小和最大距离。
请注意,在Node.js中使用Mongoose
,此功能可通过
Schema.geoNear(...)
。