当给定两个XY坐标对时,是否有人有关于如何计算曼哈顿距离的简单函数/存储过程?
答案 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