LAT1 = MIN (lat linksboven, linksonder lat)
LAT2 = MAX (lat linksboven, linksonder lat)
LON1 = MIN (hoogste rechts lon, linksonder lon)
LON2 = MAX (rechterboven lon, linksonder lon)
SELECT fields
FROM points
WHERE lat BETWEEN LAT1 AND LAT2
AND lon BETWEEN LON1 AND LON2
Op deze manier zou de query moeten werken als je met je doos de Prime Meridian of de evenaar oversteekt.
Als u de 180ste meridiaan (of antimeridiaan) wilt gebruiken, moet u de rechterrijstrook vergelijken met de linkerarm, controleren of het juiste aantal negatief is en het linkergedeelte positief is. Als dat zo is, dan ben je de 180ste meridiaan overgestoken. Uw zoekopdracht zou er dan ongeveer zo uit moeten zien:
SELECT fields
FROM points
WHERE lat BETWEEN LAT1 AND LAT2
AND (lon BETWEEN LON1 AND -180 OR lon BETWEEN LON2 AND 180)
Ik denk er liever niet aan om een doos die op de boven- of onderkant van de planeet zit over een van de ware polen te houden. =)