如何使用 MySQL 空间查询查找 X 半径内的所有记录?

Pre*_*ord 5 mysql geospatial spatial-query

我在 MySQL 数据库中有一个表,其中有一个 POINT 类型的空间几何列。我希望能够在地图中心取一个点并找到它 X 英里(或任何距离)内的所有记录。我似乎找不到一个很好的例子或解释如何做到这一点,而不是几何数学。我很高兴走这条路,但首先想尝试使用真正的空间数据库来解决它。

The*_*ve0 4

它不会工作,因为 MySQL 还没有真正实现代码来使其工作。他们只使用边界框查询。

请注意,此处没有列出任何函数: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations- Between-geometric-objects.html

我建议使用 PostGIS 或 Spatialite。

  • 从 MySQL 5.6.1 开始,情况不再如此:http://dev.mysql.com/doc/refman/5.6/en/functions-for-testing-spatial-relations- Between-geometric-objects.html#function_st-包含 . 但我(还)无法证明这些功能的性能。 (3认同)