X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/5449cf4adcc1fad4b9f43426e6d3e4a8f65e6fbb..a1cb0f04d476101116087286ff072d3a137355cb:/lib/map_boundary.rb diff --git a/lib/map_boundary.rb b/lib/map_boundary.rb index 153d65780..7d20d2920 100644 --- a/lib/map_boundary.rb +++ b/lib/map_boundary.rb @@ -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