【问题标题】:Distance between two points in mysql not working?mysql中两点之间的距离不起作用?
【发布时间】:2017-03-12 20:27:02
【问题描述】:

编辑:我检查了其他问题,但没有人使用这个公式

我有 2 个值 (x,y) 的行。我还有另一个点是具有一定半径的圆的中心。我想检查这个点和我的行点坐标之间的距离是否小于半径。我正在尝试应用两点之间的距离公式来计算中心点和行点之间的距离,并确定行位置是否在圆的半径内(

var query = "SELECT * FROM table WHERE SQRT((POWER("+x+",2)-POWER(location_x,2))+(POWER("+y+",2)-POWER(location_y,2))) < " + radius;

由于某种原因,这不起作用,尽管更改了行的点坐标,但没有返回任何行。有什么想法吗?

公式中的坐标可能为负值。在我们的测试样本中,它们确实如此。

【问题讨论】:

    标签: mysql math


    【解决方案1】:

    我很确定您的Cartesian distance formula 不正确。

    你需要的公式是:

    sqrt( (x - location_x)^2 + (y - location_y)^2 )
    

    这样翻译成 SQL:

     SELECT * 
       FROM table
      WHERE SQRT(   (POWER("+ x + "-location_x,2))
                   +(POWER("+ y + "-location_y,2))
                ) < " + radius
    

    【讨论】:

      猜你喜欢
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 2012-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多