1

好吧,我想听听你对这个案子的看法:

我需要一个最多有两个或三个表的数据库,其中一个将包含点(纬度,经度)和其他一些信息。

我需要的非常简单:获取给定半径内的点。

我不是在问如何去做(但任何建议都非常受欢迎,特别是如果它是关于良好实践的),我想知道使用 MySQL 的空间支持是否会有所帮助。由于只需一个查询就可以很容易地获得我需要的东西,因此我期望通过使用空间支持来提高性能

那么,空间索引是否会有显着的帮助?我认为该表不会存储那么多点。我说不超过200。

4

1 回答 1

1

如果它真的只有 200 分,我建议你不要这样做:这使得编写可移植 SQL 变得更加容易(我认为这是一件重要的事情)。

编写你的SQL,首先检查经度和纬度与预先计算的最小值和最大值(给你一个矩形),然后检查半径。这样,您只需要计算半径,而无需最终选择结果集的 1/pi 的点。

我个人认为这是对编写 SQL 的可接受折衷,如果必须针对 SQlite 或其他任何东西执行的话。

于 2012-09-11T03:07:33.070 回答