Математически указать в круге уравнение статистики
(c.X-p.X)^2 + (c.Y-p.Y)^2 <= R^2
Где c - центр круга, p - точка, R - радиус
Для квадрата
max(abs(c.X-p.X),abs(c.Y-p.Y)) <= A/2
Где c - угол квадрата, p - точка, A - сторона квадрата
Вы можете просто написать эти уравнения на любом языке.
Левая часть уравнений называется расстояние для различных мер . Для нахождения ближайшей точки вы должны упорядочить набор результатов на расстояние по возрастанию и взять первый результат.
Примерно так:
select top 1 p.X, p.X from Points p
otrder by ((@x - p.X)*(@x - p.X)+(@y - p.Y)*(@y - p.Y))