class GeoMonitor::Requests::WMS
Crafts a WMS
request
Attributes
bbox[R]
layers[R]
url[R]
Public Class Methods
new(bbox:, url:, layers:)
click to toggle source
# File lib/geo_monitor/requests/wms.rb, line 8 def initialize(bbox:, url:, layers:) @bbox = bbox @url = url @layers = layers end
Public Instance Methods
request_params()
click to toggle source
Parameters used for the WMS
request.
# File lib/geo_monitor/requests/wms.rb, line 16 def request_params { 'SERVICE' => 'WMS', 'VERSION' => '1.1.1', 'REQUEST' => 'GetMap', 'LAYERS' => layers, 'STYLES' => '', 'CRS' => 'EPSG:900913', 'SRS' => 'EPSG:3857', 'BBOX' => bbox.tile_bounds.to_s, 'WIDTH' => '256', 'HEIGHT' => '256', 'FORMAT' => 'image/png', 'TILED' => true } end
tile()
click to toggle source
Request the tile.
# File lib/geo_monitor/requests/wms.rb, line 35 def tile unless url.present? return ::GeoMonitor::FailedResponse.new( { url: url }, 'No URL provided', {} ) end conn = Faraday.new(url: url) begin conn.get do |request| request.params = request_params request.options.timeout = 10 request.options.open_timeout = 10 end rescue Faraday::ConnectionFailed, Faraday::TimeoutError, Faraday::SSLError => e ::GeoMonitor::FailedResponse.new( { url: conn.url_prefix.to_s }, e.class, nil ) end end