Есть ли у кого-нибудь простая процедура функция / магазин о том, как рассчитать Манхэттенское расстояние, если даны две пары координат XY?
Как насчет
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;
Делись и наслаждайся.
Это просто сумма разницы между парами координат:
|x2 - x1| + |y2 - y1|
Это вряд ли заслуживает хранимой процедуры.
Это легко. Манхэттенское расстояние - это просто сумма расстояний в каждом измерении, поэтому:
SELECT ABS(x2 - x1) + ABS(y2 - y1) AS manhattan_distance FROM your_table