如何在一个点的5公里范围内找到谷歌地图中的所有位置?

时间:2015-03-30 08:05:13

标签: database postgresql google-maps maps

想象一下大量感兴趣的地点。考虑到地图上的任何一点,我们希望在距离它5公里范围内列出所有这些位置。

这似乎是一个相当简单的想法,我希望已经有一个经过深思熟虑的解决方案。但我不知道如何谷歌。

如何将位置数据存储在数据库中以快速进行搜索。我假设一个SQL数据库(基于关系表格数据)不起作用,因为我没有看到一种明显的方法来使用SQL的表格性质过滤掉大多数位置而不是5公里远,以保持每个查询的快速。

也许像Postgres这样的数据库有某种空间扩展,允许我要求快速完成。如果是这样,这样的事情是如何实现的。

如果一个人从头开始实施数据库以获取空间查询,那么他们将如何实施

1 个答案:

答案 0 :(得分:0)

postgres的空间扩展称为PostGIS。它具有表示地图和位置的特殊数据类型。它还有特殊的索引来加速空间数据(GINGiST索引)的查询。

以下是PostGIS常见问题列表。它有你的问题的答案。 http://postgis.net/docs/manual-2.1/PostGIS_FAQ.html