Mongodb地理空间索引与谷歌地图方向服务





我最近参与了一个基于位置服务的小项目,我的意图是在请求乘客的给定半径内定位最近的出租车(安装了GPS)(支持GPS的Android手机)。我想使用MongoDB的地理空间索引,但事实证明,地理空间索引适用于纵向,它们计算两点之间的位移,而不是距离。在我的情况下,搜索被限制在一个城市内,我不得不去谷歌地图方向服务,因为它"告诉"道路上的距离,估计所需时间等

这是否意味着只有当位移足够大时,地理空间索引才有意义,从而使距离和位移基本相同?

地理空间索引的目标是根据多维空间上的位置快速检索数据。如果你在MongoDB数据库中有出租车位置数据,你可以使用地理空间索引快速选择一组更可能是最近的出租车,但你仍然必须使用道路网络上的算法计算道路上的距离(最终计算驾驶时间)。

例如,你知道,如果最近的(直线上的)出租车距离你20公里(通过道路测量),你知道半径20公里以外的任何出租车肯定会比你发现的第一辆更远(在道路上),所以你对它们不感兴趣。然后,您可以使用MongoDB空间索引来获取20公里半径内的所有出租车,然后您可以在其中找到距离最小的出租车。

最新更新