如何使用SQL函数/过程计算曼哈顿距离

时间:2010-11-04 08:45:34

标签: sql distance

当给定两个XY坐标对时,是否有人有关于如何计算曼哈顿距离的简单函数/存储过程?

3 个答案:

答案 0 :(得分:2)

这只是坐标对之间差异的总和:

|x2 - x1| + |y2 - y1|

这几乎不能保证存储过程。

答案 1 :(得分:2)

怎么样

CREATE OR REPLACE FUNCTION MANHATTAN_DISTANCE(X1 NUMBER,
                                              Y1 NUMBER,
                                              X2 NUMBER,
                                              Y2 NUMBER)
  RETURN NUMBER IS
BEGIN
  RETURN ABS(X1 - X2) + ABS(Y1 - Y2);
END MANHATTAN_DISTANCE;

分享并享受。

答案 2 :(得分:1)

这很容易。曼哈顿距离只是每个维度中距离的总和,因此:

SELECT ABS(x2 - x1) + ABS(y2 - y1) AS manhattan_distance FROM your_table