geo/geo.inc, line 168
- Versions
- 6
geo_make_bbox($target, $limit)
Code
<?php
function geo_make_bbox($target, $limit) {
$x = $target['lon'];
$y = $target['lat'];
$offset_x = $limit / (GEO_DEGREE_M * cos($y));
$offset_y = $limit / GEO_DEGREE_M;
$offset_x = $limit / GEO_DEGREE_M; // TODO Miles
$offset_y = $limit / round(GEO_DEGREE_M * cos($x / 92215));
$bbox = array(
'points' => array(
array('lon' => $x - $offset_x, 'lat' => $y + $offset_y),
array('lon' => $x + $offset_x, 'lat' => $y + $offset_y),
array('lon' => $x + $offset_x, 'lat' => $y - $offset_y),
array('lon' => $x - $offset_x, 'lat' => $y - $offset_y),
array('lon' => $x - $offset_x, 'lat' => $y + $offset_y),
),
);
// TODO call a function?
$wkt = '';
foreach ($bbox['points'] as $p) $wkt .= $p['lon'] .' '. $p['lat'] .', ';
$bbox['wkt'] = 'POLYGON(('. substr($wkt, 0, -2) .'))';
return $bbox;
}
?> 