Mongodb地理空间索引与GoogleMaps路线服务

时间:2012-09-05 17:12:42

标签: google-maps mongodb google-maps-api-3 geospatial



我最近参与了一个关于基于位置的服务的小项目,我的意图是在请求乘客(支持GPS的Android手机)的给定半径范围内找到最近的驾驶室(GPS装配) 。我想使用MongoDB的地理空间索引,但事实证明地理空间索引适用于lat-longs,它们计算两点之间的位移,而不是 distance 。在我的情况下,搜索被限制在一个城市内,我不得不去GoogleMaps路线服务,因为它告诉距离在路上,估计花费的时间等。

这是否意味着地理空间索引仅在位移足够大时才有意义,因此距离和位移基本相同?

1 个答案:

答案 0 :(得分:1)

地理空间索引的目标是根据多维空间上的位置进行快速数据检索。如果您在MongoDB数据库中拥有驾驶室位置数据,您可以使用地理空间索引快速选择一组减少的驾驶室,这些驾驶室更可能是最近的驾驶室,但您仍然必须计算道路上的距离(和最终驾驶时间)在道路网络上使用algorythm。

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