]> git.openstreetmap.org Git - rails.git/blobdiff - lib/map_boundary.rb
Better testing of bbox handling in relations. Maybe fixes #1861, but wasn't able...
[rails.git] / lib / map_boundary.rb
index 9b39c9342353fd28a693d1052a45bce99048fe07..153d65780da8f80025a3e06dee05fa60603b9888 100644 (file)
@@ -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