function earth_latitude_range in Location 5
Same name and namespace in other branches
- 5.3 earth.inc \earth_latitude_range()
- 6.3 earth.inc \earth_latitude_range()
- 7.5 earth.inc \earth_latitude_range()
- 7.3 earth.inc \earth_latitude_range()
- 7.4 earth.inc \earth_latitude_range()
3 calls to earth_latitude_range()
- location_search_results in ./location.module
- location_views_filter_handler_proximity in contrib/location_views/location_views.module
- _location_nearby_postalcodes in ./location.inc
- This is the main logic-level function for performing proximity postal-code searches.
It calls a number of helper functions for finding postal_code results in each country,
narrowing down results, formatting the returned array, and sorting the returned…
File
- ./earth.inc, line 129
Code
function earth_latitude_range($longitude, $latitude, $distance) {
$long = deg2rad($longitude);
$lat = deg2rad($latitude);
$radius = earth_radius($latitude);
$angle = $distance / $radius;
$minlat = $lat - $angle;
$maxlat = $lat + $angle;
$rightangle = pi() / 2;
if ($minlat < -$rightangle) {
$overshoot = -$minlat - $rightangle;
$minlat = -$rightangle + $overshoot;
if ($minlat > $maxlat) {
$maxlat = $minlat;
}
$minlat = -$rightangle;
}
if ($maxlat > $rightangle) {
$overshoot = $maxlat - $rightangle;
$maxlat = $rightangle - $overshoot;
if ($maxlat < $minlat) {
$minlat = $maxlat;
}
$maxlat = $rightangle;
}
return array(
rad2deg($minlat),
rad2deg($maxlat),
);
}