选择POINT()半径100米范围内的所有点

时间:2014-01-16 08:49:34

标签: mysql sql geospatial

我在数据库中有一个表,其中包含超过一百万个地理空间点,我们称之为'flags'。我还有一个实时'车辆'的供稿,用于报告其纬度和经度位置。

每当车辆的位置出现时,我需要运行执行此操作的代码:

选择距离此车辆位置100米范围内的所有标志

这可能与SQL有关吗?如果是这样我怎么能去做呢?

2 个答案:

答案 0 :(得分:1)

应该可以使用公式

(x-center_x)^2 + (y - center_y)^2 < radius^2

您要完成所有组件

SELECT foo
  FROM point p
 WHERE (((p.x - vehicle.x) * (p.x - vehicle.x)) + ((p.y - vehicle.y) * (p.y - vehicle.y))) < 1000

或者像这样的某些东西,我采取了一些语法平底船

答案 1 :(得分:0)

检查这些资源:

  1. Selecting points within a bounding circle - 提供有关最佳解决方案的详细信息:选择矩形区域,然后过滤掉不属于该方格内圆圈的点;
  2. Select coordinates which fall within a radius of a central point? - 关于stackoverflow的类似问题。