X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/8516ad87b36b23ec49c99654a0281f7c9d0673d0..04dbf32b73f38adec4d1209bbde87510f279fbe7:/lib/map_boundary.rb diff --git a/lib/map_boundary.rb b/lib/map_boundary.rb index 9b39c9342..153d65780 100644 --- a/lib/map_boundary.rb +++ b/lib/map_boundary.rb @@ -1,10 +1,11 @@ module MapBoundary + # Take an array of length 4, and return the min_lon, min_lat, max_lon and + # max_lat within their respective boundaries. def sanitise_boundaries(bbox) - min_lon = [bbox[0].to_f,-180].max - min_lat = [bbox[1].to_f,-90].max - max_lon = [bbox[2].to_f,+180].min - max_lat = [bbox[3].to_f,+90].min - + min_lon = [[bbox[0].to_f,-180].max,180].min + min_lat = [[bbox[1].to_f,-90].max,90].min + max_lon = [[bbox[2].to_f,+180].min,-180].max + max_lat = [[bbox[3].to_f,+90].min,-90].max return min_lon, min_lat, max_lon, max_lat end @@ -17,6 +18,7 @@ module MapBoundary raise("The minimum latitude must be less than the maximum latitude, but it wasn't") end unless min_lon >= -180 && min_lat >= -90 && max_lon <= 180 && max_lat <= 90 + # Due to sanitize_boundaries, it is highly unlikely we'll actually get here raise("The latitudes must be between -90 and 90, and longitudes between -180 and 180") end