Use quad tiling to select bugs in an area
Remove the _no_quadtile versiond of the selection routines and switch to using the ordinary ones but with a (large) limit applied on the size of the area to prevent us spending ages working out the list of tiles to be selected.
This commit is contained in:
parent
7bba798990
commit
22bef89d1a
6 changed files with 17 additions and 28 deletions
|
@ -9,7 +9,7 @@ module MapBoundary
|
|||
return min_lon, min_lat, max_lon, max_lat
|
||||
end
|
||||
|
||||
def check_boundaries(min_lon, min_lat, max_lon, max_lat, limit_small_area = :true)
|
||||
def check_boundaries(min_lon, min_lat, max_lon, max_lat, max_area = MAX_REQUEST_AREA)
|
||||
# check the bbox is sane
|
||||
unless min_lon <= max_lon
|
||||
raise OSM::APIBadBoundingBox.new("The minimum longitude must be less than the maximum longitude, but it wasn't")
|
||||
|
@ -22,12 +22,10 @@ module MapBoundary
|
|||
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 +
|
||||
if requested_area > max_area
|
||||
raise OSM::APIBadBoundingBox.new("The maximum bbox size is " + max_area.to_s +
|
||||
", and your request was too large. Either request a smaller area, or use planet.osm")
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue