LAT1 = MIN (верхний правый лат, нижний левый лат)
LAT2 = MAX (верхний правый лат, нижний левый лат)
LON1 = MIN (верхний правый лон, нижний левый лон)
LON2 = MAX (верхний правый лон, нижний левый лон)
SELECT fields
FROM points
WHERE lat BETWEEN LAT1 AND LAT2
AND lon BETWEEN LON1 AND LON2
Таким образом, запрос должен обрабатываться, если вы пересекаете Главный меридиан или экватор с вашей коробкой.
Чтобы справиться с 180-м меридианом (или антимеридианом), вам нужно сравнить правый-левый-левый, проверяя, является ли правое число отрицательным, а левое - положительным. Если так, то вы пересекли 180-й меридиан. Ваш запрос должен выглядеть примерно так:
SELECT fields
FROM points
WHERE lat BETWEEN LAT1 AND LAT2
AND (lon BETWEEN -180 AND LON1 OR lon BETWEEN LON2 AND 180)
Я бы предпочел не думать о том, как обращаться с коробкой, которая находится на вершине или на дне планеты над одним из истинных полюсов. =)