atlas_middleware 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +3 -0
- data/README +3 -0
- data/lib/arc_server_soap.rb +47 -0
- data/lib/atlas_middleware.rb +5 -0
- data/lib/cgns_search.rb +30 -0
- data/lib/esri/soap/map_server/classes.rb +4328 -0
- data/lib/esri/soap/map_server/client.rb +326 -0
- data/lib/esri/soap/map_server/map_server.rb +39 -0
- data/lib/esri/soap/map_server/mapping_registry.rb +4300 -0
- data/lib/map_server_legend_info.rb +17 -0
- data/lib/pdf_template.rb +206 -0
- data/lib/postal_code_lookup.rb +54 -0
- data/lib/print_map/job.rb +49 -0
- data/lib/print_map/legend_images_collector.rb +34 -0
- data/lib/print_map/map_exporter.rb +20 -0
- data/lib/print_map/pdf_generator.rb +146 -0
- data/lib/print_map/worker.rb +71 -0
- data/lib/print_map_service.rb +48 -0
- data/lib/rest_proxy.rb +15 -0
- metadata +113 -0
data/LICENSE
ADDED
data/README
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
gem 'soap4r'
|
2
|
+
require File.dirname(__FILE__) + '/esri/soap/map_server/client.rb'
|
3
|
+
|
4
|
+
class ArcServerSoap
|
5
|
+
def call(env)
|
6
|
+
request = Rack::Request.new(env)
|
7
|
+
|
8
|
+
headers = { "Content-Type" => "application/json" }
|
9
|
+
r = Rack::Response # shorthand
|
10
|
+
response = r.new(call_soap_service(request), 200, headers) # rescue r.new(500, headers, '')
|
11
|
+
#response.max_age = 1.month
|
12
|
+
|
13
|
+
response.to_a
|
14
|
+
end
|
15
|
+
|
16
|
+
def call_soap_service(request)
|
17
|
+
endpoint = rest_url_to_soap_service(request.params['rest_url'])
|
18
|
+
soap_client = ESRI::Soap::MapServer::Client.new(endpoint)
|
19
|
+
#soap_client.wiredump_dev = STDOUT
|
20
|
+
#soap_client.options['protocol.http.receive_timeout'] = 360
|
21
|
+
|
22
|
+
map_name = soap_client.getDefaultMapName({}).result
|
23
|
+
|
24
|
+
img_type = ESRI::Soap::MapServer::ImageType.new
|
25
|
+
img_type.imageFormat = ESRI::Soap::MapServer::EsriImageFormat::EsriImagePNG;
|
26
|
+
img_type.imageReturnType = ESRI::Soap::MapServer::EsriImageReturnType::EsriImageReturnURL;
|
27
|
+
|
28
|
+
legend_patch = ESRI::Soap::MapServer::MapServerLegendPatch.new
|
29
|
+
legend_patch.imageDPI = 96
|
30
|
+
legend_patch.height = 24
|
31
|
+
legend_patch.width = 24
|
32
|
+
|
33
|
+
legends = soap_client.getLegendInfo(
|
34
|
+
:mapName => map_name,
|
35
|
+
:layerIDs => [],
|
36
|
+
:legendPatch => legend_patch,
|
37
|
+
:imageType => img_type
|
38
|
+
).result
|
39
|
+
|
40
|
+
legends.to_json
|
41
|
+
end
|
42
|
+
|
43
|
+
def rest_url_to_soap_service(rest_url)
|
44
|
+
rest_url.sub('ArcGIS/rest', 'ArcGIS')
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
data/lib/cgns_search.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'rack'
|
2
|
+
#require 'rack/cache'
|
3
|
+
require 'activesupport'
|
4
|
+
require 'httparty'
|
5
|
+
|
6
|
+
class CgnsSearch
|
7
|
+
include HTTParty
|
8
|
+
base_uri "gnss.nrcan.gc.ca"
|
9
|
+
default_params :output => 'xml', :regionCode => 13
|
10
|
+
format :xml
|
11
|
+
|
12
|
+
def call(env)
|
13
|
+
request = Rack::Request.new(env)
|
14
|
+
|
15
|
+
headers = { "Content-Type" => "application/json" }
|
16
|
+
r = Rack::Response
|
17
|
+
begin
|
18
|
+
response = r.new(find(request.params), 200, headers)
|
19
|
+
rescue Exception => e
|
20
|
+
response = r.new(e.message, 500, headers)
|
21
|
+
end
|
22
|
+
#response.max_age = 1.month
|
23
|
+
|
24
|
+
response.to_a
|
25
|
+
end
|
26
|
+
|
27
|
+
def find(query = {})
|
28
|
+
CgnsSearch.get('/gnss-srt/api', { :query => query }).to_json
|
29
|
+
end
|
30
|
+
end
|