+ unless min_lat <= max_lat
+ 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 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 > 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