- canvas = Magick::Image.new(width, height) {
- self.background_color = 'white'
- }
- begin
- gc.draw(canvas)
- rescue ArgumentError
- end
- canvas.format = 'GIF'
- return canvas.to_blob
+ def to_s
+ "Only method #{@supported_method} is supported on this URI"
+ end
+ end
+
+ ##
+ # raised when an API call takes too long
+ class APITimeoutError < APIError
+ def status
+ :request_timeout
+ end
+
+ def to_s
+ "Request timed out"
+ end
+ end
+
+ # Helper methods for going to/from mercator and lat/lng.
+ class Mercator
+ include Math
+
+ #init me with your bounding box and the size of your image
+ def initialize(min_lat, min_lon, max_lat, max_lon, width, height)
+ xsize = xsheet(max_lon) - xsheet(min_lon)
+ ysize = ysheet(max_lat) - ysheet(min_lat)
+ xscale = xsize / width
+ yscale = ysize / height
+ scale = [xscale, yscale].max
+
+ xpad = width * scale - xsize
+ ypad = height * scale - ysize
+
+ @width = width
+ @height = height
+
+ @tx = xsheet(min_lon) - xpad / 2
+ @ty = ysheet(min_lat) - ypad / 2
+
+ @bx = xsheet(max_lon) + xpad / 2
+ @by = ysheet(max_lat) + ypad / 2