比较在数据库中获取附近GeoPoints或GeoLocations的有效方法。
假设我有超过100万个用户的Geo点,其各自的纬度和经度存储在一个以十进制形式存储的数据库中。我想知道,考虑到我存储了这么多Geo点,这两种方法对于在给定半径内获取用户附近的位置是否同样有效。
方法1:我读到我可以使用空间数据库,但从未使用过。(我能方便地执行CRUD操作吗?)
方法2:(这是我希望做的,因为我从来没有使用过空间数据库),我希望使用nosql数据库存储100多万不同用户的纬度和经度,以小数表示。
然后在给定位置周围获取边界圆或矩形,然后在边界圆中查询数据库中的GeoPoints。请参考这个。!
然后根据距离中心地理点的距离计算和排序地理点。
另外,我也很高兴知道:我正在开发一个android应用程序,比如uber或其他出租车服务,让用户可以在附近找到出租车的位置。现在,我希望将所有用户位置存储在数据库中,并使用上述任何一种方法获得附近的用户。如果有更好的办法,请告诉我。谢谢。
发布于 2014-06-29 23:29:11
您的标签非常离题,因为数据库很可能位于服务器上,而不是应用程序中。
Postgresql允许您在坐标上构建索引,这些坐标是根据给定点的距离来优化查找的。其他变量可能也允许这样做。其他数据库也可能允许这样做。这很简单也很有效率。
否则,您确实可以将您的空间分割成正方形,并查看正确的正方形(在大多数情况下是相邻的),以避免每次查看整个数据库。工作要多一点,效率不高。整个困难在于为正方形(或矩形)找到合适的大小。
https://stackoverflow.com/questions/24481147
复制相似问题