编辑:我已经检查了其他问题但没有使用此公式
我有2个值(x,y)的行。我还有一点是具有一定半径的圆周的中心。我想检查这个点和我的行的点坐标之间的距离是否小于半径。我试图应用两点公式之间的距离来计算中心点和行点之间的距离,并确定行位置在圆的半径内(< radius):
var query = "SELECT * FROM table WHERE SQRT((POWER("+x+",2)-POWER(location_x,2))+(POWER("+y+",2)-POWER(location_y,2))) < " + radius;
由于某种原因,这不起作用,尽管改变了行的点坐标,但没有返回任何行。有什么想法吗?
公式中的坐标可能具有负值。在他们的测试样本中他们这样做。
答案 0 :(得分:3)
我很确定您的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