Class: GeoMonitor::Requests::WMS
- Inherits:
-
Object
- Object
- GeoMonitor::Requests::WMS
- Defined in:
- lib/geo_monitor/requests/wms.rb
Overview
Crafts a WMS request
Instance Attribute Summary collapse
-
#bbox ⇒ Object
readonly
Returns the value of attribute bbox.
-
#layers ⇒ Object
readonly
Returns the value of attribute layers.
-
#url ⇒ Object
readonly
Returns the value of attribute url.
Instance Method Summary collapse
-
#initialize(bbox:, url:, layers:) ⇒ WMS
constructor
A new instance of WMS.
-
#request_params ⇒ Object
Parameters used for the WMS request.
-
#tile ⇒ Object
Request the tile.
Constructor Details
#initialize(bbox:, url:, layers:) ⇒ WMS
Returns a new instance of WMS.
8 9 10 11 12 |
# File 'lib/geo_monitor/requests/wms.rb', line 8 def initialize(bbox:, url:, layers:) @bbox = bbox @url = url @layers = layers end |
Instance Attribute Details
#bbox ⇒ Object (readonly)
Returns the value of attribute bbox.
6 7 8 |
# File 'lib/geo_monitor/requests/wms.rb', line 6 def bbox @bbox end |
#layers ⇒ Object (readonly)
Returns the value of attribute layers.
6 7 8 |
# File 'lib/geo_monitor/requests/wms.rb', line 6 def layers @layers end |
#url ⇒ Object (readonly)
Returns the value of attribute url.
6 7 8 |
# File 'lib/geo_monitor/requests/wms.rb', line 6 def url @url end |
Instance Method Details
#request_params ⇒ Object
Parameters used for the WMS request.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# 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 ⇒ Object
Request the tile.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# 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..timeout = 10 request..open_timeout = 10 end rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e ::GeoMonitor::FailedResponse.new( { url: conn.url_prefix.to_s }, e.class, nil ) end end |