]> git.openstreetmap.org Git - rails.git/blobdiff - lib/map_boundary.rb
Merge branch 'master' into openstreetbugs
[rails.git] / lib / map_boundary.rb
index 153d65780da8f80025a3e06dee05fa60603b9888..7d20d2920ba06f25fe317bec859d02a8553fc6a0 100644 (file)
@@ -9,23 +9,25 @@ module MapBoundary
     return min_lon, min_lat, max_lon, max_lat
   end
 
-  def check_boundaries(min_lon, min_lat, max_lon, max_lat)
+  def check_boundaries(min_lon, min_lat, max_lon, max_lat, limit_small_area = :true)
     # check the bbox is sane
     unless min_lon <= max_lon
-      raise("The minimum longitude must be less than the maximum longitude, but it wasn't")
+      raise OSM::APIBadBoundingBox.new("The minimum longitude must be less than the maximum longitude, but it wasn't")
     end
     unless min_lat <= max_lat
-      raise("The minimum latitude must be less than the maximum latitude, but it wasn't")
+      raise OSM::APIBadBoundingBox.new("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")
+      raise OSM::APIBadBoundingBox.new("The latitudes must be between -90 and 90, and longitudes between -180 and 180")
     end
 
+       return unless limit_small_area == :true
+
     # check the bbox isn't too large
     requested_area = (max_lat-min_lat)*(max_lon-min_lon)
-    if requested_area > APP_CONFIG['max_request_area']
-      raise("The maximum bbox size is " + APP_CONFIG['max_request_area'].to_s + 
+    if requested_area > MAX_REQUEST_AREA
+      raise OSM::APIBadBoundingBox.new("The maximum bbox size is " + MAX_REQUEST_AREA.to_s + 
         ", and your request was too large. Either request a smaller area, or use planet.osm")
     end
   end