lets try this logic
$topRightLongitude = $centerLongitude + $spanLongitude/2; if($topRightLongitude > 180 and ($pointLongitude < 0)) $topRightLongitude = $topRightLongitude - 360; // (180*2) - positive becomes negative $bottomLeftLongitude = $centerLongitude - $spanLongitude/2; if($bottomLeftLongitude< -180 and ($pointLongitude > 0)) $bottomLeftLongitude= 360 + $bottomLeftLongitude; // now is negative and will become positive $topRightLatitude = $centerLatitude + $spanLatitude/2; if($topRightLatitude > 90 and ($pointLatitude < 0)) $topRightLatitude = $topRightLatitude - 180; // (90*2) - positive becomes negative $bottomLeftLatitude = $centerLatitude - $spanLatitude/2; if($bottomLeftLatitude< -90 and ($pointLatitude > 0)) $bottomLeftLatitude= 180 + $bottomLeftLongitude; // now is negative and will become positive
if you have
$centerLongitude = 179; $spanLongitude = 20; $pointLongitude = -179;
results
$topRightLongitude = -171; $bottomLeftLongitude = 169;
so your point is if you test as follows:
if($pointLongitude < $topRightLongitude && $pointLongitude > $bottomLeftLongitude && $pointLatitude < $topRightLatitude && $pointLatitude > $bottomLeftLatitude){ echo 'in'; }else{ echo 'out'; }
Macerier
source share