想象一下大量感兴趣的地点。考虑到地图上的任何一点,我们希望在距离它5公里范围内列出所有这些位置。
这似乎是一个相当简单的想法,我希望已经有一个经过深思熟虑的解决方案。但我不知道如何谷歌。
如何将位置数据存储在数据库中以快速进行搜索。我假设一个SQL数据库(基于关系表格数据)不起作用,因为我没有看到一种明显的方法来使用SQL的表格性质过滤掉大多数位置而不是5公里远,以保持每个查询的快速。
也许像Postgres这样的数据库有某种空间扩展,允许我要求快速完成。如果是这样,这样的事情是如何实现的。
如果一个人从头开始实施数据库以获取空间查询,那么他们将如何实施
答案 0 :(得分:0)
postgres的空间扩展称为PostGIS
。它具有表示地图和位置的特殊数据类型。它还有特殊的索引来加速空间数据(GIN
和GiST
索引)的查询。
以下是PostGIS常见问题列表。它有你的问题的答案。 http://postgis.net/docs/manual-2.1/PostGIS_FAQ.html