Как рассчитать Манхэттенское расстояние с помощью функции / процедуры SQL - PullRequest
1 голос
/ 04 ноября 2010

Есть ли у кого-нибудь простая процедура функция / магазин о том, как рассчитать Манхэттенское расстояние, если даны две пары координат XY?

Ответы [ 3 ]

2 голосов
/ 04 ноября 2010

Как насчет

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 голосов
/ 04 ноября 2010

Это просто сумма разницы между парами координат:

|x2 - x1| + |y2 - y1|

Это вряд ли заслуживает хранимой процедуры.

1 голос
/ 04 ноября 2010

Это легко. Манхэттенское расстояние - это просто сумма расстояний в каждом измерении, поэтому:

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