使用地理位置确定哪些用户靠近一个用户

我想知道什么是最好的方式来确定和计算,哪些用户接近一个用户,使用地理定位和他们的GPS坐标。

给定主要用户的GPS坐标,我知道如何计算他的位置周围的“边界框”。 我可以在数据库中为每个用户configuration文件存储边界框坐标。 但是,那么如何确定哪些用户接近发送请求的用户呢?

是否有任何公式可以让我计算一个GPS位置周围的“盒子”,给定距离,所以位于该盒子内的每个GPS位置和应用这个公式都会呈现相同的盒子?

这样做可以让我简单地问我的数据库哪个用户假装在这个盒子里。

您可以在地理空间索引和查询的帮助下处理您的地理空间信息。 如果我正确地理解了你, $geoWithin可以帮助你。 此操作符select具有完全在指定形状内的地理空间数据的文档,在您的情况下,它将是用户位置周围的边界框。

我终于决定使用MongoDB提供的$geoNear aggragation。 这可以完美地工作,因为我可以设置最小和最大距离。

请注意,在Node.js中使用Mongoose ,这个function可以通过Schema.geoNear(...)