gb_mapfish_appserver 0.9.7 → 1.0.0

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.
@@ -38,31 +38,17 @@ class AppsController < ApplicationController
38
38
  if rule.nil?
39
39
  logger.info "Locate rule not found: {params['locate']}"
40
40
  else
41
- model = rule.model.constantize
42
- features = if rule.layer.nil?
43
- #User defined model
44
- @seltopic = model.selection_topic
45
- @sellayer = model.selection_layer
46
- @selproperty = model.primary_key
47
- @selscalerange = model.selection_scalerange
48
- search_locs = model.search_locations(params['locations'])
49
- model.locate(search_locs)
50
- else
51
- #Generic SearchModel
52
- layer = Layer.find_by_name(rule.layer)
53
- @seltopic = @topic_name
54
- @sellayer = layer.name
55
- @selproperty = layer.feature_class.primary_key
56
- @selscalerange = model.selection_scalerange
57
- search_locs = params['locations'].split(',')
58
- model.layer_locate(layer, rule.search_field, search_locs)
59
- end
60
- if features.present?
61
- @x, @y, scale = model.map_center(features)
62
- @scale = params['scale'].nil? ? scale : params['scale'].to_i
63
- #Selection
64
- @selbbox = model.bbox(features)
65
- @selvalues = features.collect {|f| f.send(model.primary_key) }
41
+ location = rule.locate(params['locations'])
42
+ unless location.nil?
43
+ @seltopic = location[:selection][:topic] || @topic_name
44
+ @sellayer = location[:selection][:layer]
45
+ @selproperty = location[:selection][:property]
46
+ @selvalues = location[:selection][:values]
47
+ @selscalerange = location[:selection][:scalerange]
48
+ @x = location[:x]
49
+ @y = location[:y]
50
+ @scale = params['scale'].nil? ? location[:scale] : params['scale'].to_i
51
+ @selbbox = location[:bbox]
66
52
  else
67
53
  logger.info "no features found."
68
54
  end
@@ -25,6 +25,21 @@ class SearchController < ApplicationController
25
25
  end
26
26
  end
27
27
 
28
+ def locate
29
+ rule = LOCATERULES[params[:rule]]
30
+ if rule.nil?
31
+ render :json => {:success => false, :msg => "ERROR: #{params[:rule]} model missing"}
32
+ else
33
+ location = rule.locate(params['locations'])
34
+ unless location.nil?
35
+ location[:success] = true
36
+ render :json => location
37
+ else
38
+ render :json => {:success => false, :msg => "No features found"}
39
+ end
40
+ end
41
+ end
42
+
28
43
  def soap_wsdl
29
44
  render "#{params[:rule]}_wsdl.xml"
30
45
  end
@@ -0,0 +1,50 @@
1
+ class LocateRule
2
+ attr_accessor :model, :layer, :search_field
3
+
4
+ def initialize(model, layer=nil, search_field=nil)
5
+ @model = model.constantize
6
+ @layer = layer
7
+ @search_field = search_field
8
+ end
9
+
10
+ # get selection and extent for located features
11
+ def locate(locations)
12
+ features = if layer.nil?
13
+ # user defined model
14
+ seltopic = model.selection_topic
15
+ sellayer = model.selection_layer
16
+ selproperty = model.primary_key
17
+ selscalerange = model.selection_scalerange
18
+ search_locs = model.search_locations(locations)
19
+ model.locate(search_locs)
20
+ else
21
+ # generic SearchModel
22
+ layer_obj = Layer.find_by_name(layer)
23
+ seltopic = nil
24
+ sellayer = layer_obj.name
25
+ selproperty = layer_obj.feature_class.primary_key
26
+ selscalerange = model.selection_scalerange
27
+ search_locs = locations.split(',')
28
+ model.layer_locate(layer_obj, search_field, search_locs)
29
+ end
30
+ if features.present?
31
+ x, y, scale = model.map_center(features)
32
+ {
33
+ :selection => {
34
+ :topic => seltopic,
35
+ :layer => sellayer,
36
+ :property => selproperty,
37
+ :values => features.collect {|f| f.send(model.primary_key) },
38
+ :scalerange => selscalerange,
39
+ },
40
+ :x => x,
41
+ :y => y,
42
+ :scale => scale,
43
+ :bbox => model.bbox(features)
44
+ }
45
+ else
46
+ # no features found
47
+ nil
48
+ end
49
+ end
50
+ end
data/config/routes.rb CHANGED
@@ -35,6 +35,7 @@ Rails.application.routes.draw do
35
35
  resources :maps
36
36
 
37
37
  match 'search/:rule' => 'search#index'
38
+ match 'locate/:rule' => 'search#locate', :as => :locate
38
39
  match 'services/:rule.wsdl' => 'search#soap_wsdl', :as => :services_description
39
40
  match 'services/:rule' => 'search#soap', :as => :services
40
41
 
@@ -11,6 +11,3 @@ module GbMapfishAppserver
11
11
  end
12
12
 
13
13
  SearchRule = Struct.new(:model, :fields, :alias_fields)
14
-
15
- LocateRule = Struct.new(:model, :layer, :search_field)
16
-
@@ -1,3 +1,3 @@
1
1
  module GbMapfishAppserver
2
- VERSION = "0.9.7"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,211 +1,170 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gb_mapfish_appserver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.7
4
+ version: 1.0.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Pirmin Kalberer
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-09-17 00:00:00.000000000 Z
12
+ date: 2014-09-24 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rails
15
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &19441660 !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
19
21
  version: 3.2.13
20
22
  type: :runtime
21
23
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: 3.2.13
24
+ version_requirements: *19441660
27
25
  - !ruby/object:Gem::Dependency
28
26
  name: json
29
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &19441160 !ruby/object:Gem::Requirement
28
+ none: false
30
29
  requirements:
31
30
  - - ! '>='
32
31
  - !ruby/object:Gem::Version
33
32
  version: '0'
34
33
  type: :runtime
35
34
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ! '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
35
+ version_requirements: *19441160
41
36
  - !ruby/object:Gem::Dependency
42
37
  name: acts_as_tree
43
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &19440540 !ruby/object:Gem::Requirement
39
+ none: false
44
40
  requirements:
45
- - - '='
41
+ - - =
46
42
  - !ruby/object:Gem::Version
47
43
  version: 0.2.0
48
44
  type: :runtime
49
45
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '='
53
- - !ruby/object:Gem::Version
54
- version: 0.2.0
46
+ version_requirements: *19440540
55
47
  - !ruby/object:Gem::Dependency
56
48
  name: devise
57
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &19440020 !ruby/object:Gem::Requirement
50
+ none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
61
54
  version: 2.2.0
62
55
  type: :runtime
63
56
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- version: 2.2.0
57
+ version_requirements: *19440020
69
58
  - !ruby/object:Gem::Dependency
70
59
  name: cancan
71
- requirement: !ruby/object:Gem::Requirement
60
+ requirement: &19439500 !ruby/object:Gem::Requirement
61
+ none: false
72
62
  requirements:
73
- - - '='
63
+ - - =
74
64
  - !ruby/object:Gem::Version
75
65
  version: 1.6.8
76
66
  type: :runtime
77
67
  prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '='
81
- - !ruby/object:Gem::Version
82
- version: 1.6.8
68
+ version_requirements: *19439500
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rails_admin
85
- requirement: !ruby/object:Gem::Requirement
71
+ requirement: &19438840 !ruby/object:Gem::Requirement
72
+ none: false
86
73
  requirements:
87
74
  - - ~>
88
75
  - !ruby/object:Gem::Version
89
76
  version: 0.4.9
90
77
  type: :runtime
91
78
  prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ~>
95
- - !ruby/object:Gem::Version
96
- version: 0.4.9
79
+ version_requirements: *19438840
97
80
  - !ruby/object:Gem::Dependency
98
81
  name: fastercsv
99
- requirement: !ruby/object:Gem::Requirement
82
+ requirement: &19438360 !ruby/object:Gem::Requirement
83
+ none: false
100
84
  requirements:
101
85
  - - ! '>='
102
86
  - !ruby/object:Gem::Version
103
87
  version: '0'
104
88
  type: :runtime
105
89
  prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
90
+ version_requirements: *19438360
111
91
  - !ruby/object:Gem::Dependency
112
92
  name: sass
113
- requirement: !ruby/object:Gem::Requirement
93
+ requirement: &19437700 !ruby/object:Gem::Requirement
94
+ none: false
114
95
  requirements:
115
96
  - - ~>
116
97
  - !ruby/object:Gem::Version
117
98
  version: 3.2.12
118
99
  type: :runtime
119
100
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ~>
123
- - !ruby/object:Gem::Version
124
- version: 3.2.12
101
+ version_requirements: *19437700
125
102
  - !ruby/object:Gem::Dependency
126
103
  name: GeoRuby
127
- requirement: !ruby/object:Gem::Requirement
104
+ requirement: &19437100 !ruby/object:Gem::Requirement
105
+ none: false
128
106
  requirements:
129
107
  - - ! '>='
130
108
  - !ruby/object:Gem::Version
131
109
  version: 0.1.4
132
110
  type: :runtime
133
111
  prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ! '>='
137
- - !ruby/object:Gem::Version
138
- version: 0.1.4
112
+ version_requirements: *19437100
139
113
  - !ruby/object:Gem::Dependency
140
114
  name: rgeo
141
- requirement: !ruby/object:Gem::Requirement
115
+ requirement: &19452980 !ruby/object:Gem::Requirement
116
+ none: false
142
117
  requirements:
143
118
  - - ~>
144
119
  - !ruby/object:Gem::Version
145
120
  version: 0.3.20
146
121
  type: :runtime
147
122
  prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ~>
151
- - !ruby/object:Gem::Version
152
- version: 0.3.20
123
+ version_requirements: *19452980
153
124
  - !ruby/object:Gem::Dependency
154
125
  name: rgeo-geojson
155
- requirement: !ruby/object:Gem::Requirement
126
+ requirement: &19452460 !ruby/object:Gem::Requirement
127
+ none: false
156
128
  requirements:
157
129
  - - ~>
158
130
  - !ruby/object:Gem::Version
159
131
  version: 0.2.3
160
132
  type: :runtime
161
133
  prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ~>
165
- - !ruby/object:Gem::Version
166
- version: 0.2.3
134
+ version_requirements: *19452460
167
135
  - !ruby/object:Gem::Dependency
168
136
  name: hpricot
169
- requirement: !ruby/object:Gem::Requirement
137
+ requirement: &19451900 !ruby/object:Gem::Requirement
138
+ none: false
170
139
  requirements:
171
140
  - - ! '>='
172
141
  - !ruby/object:Gem::Version
173
142
  version: '0'
174
143
  type: :runtime
175
144
  prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ! '>='
179
- - !ruby/object:Gem::Version
180
- version: '0'
145
+ version_requirements: *19451900
181
146
  - !ruby/object:Gem::Dependency
182
147
  name: pg
183
- requirement: !ruby/object:Gem::Requirement
148
+ requirement: &19451320 !ruby/object:Gem::Requirement
149
+ none: false
184
150
  requirements:
185
151
  - - ~>
186
152
  - !ruby/object:Gem::Version
187
153
  version: 0.14.0
188
154
  type: :runtime
189
155
  prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ~>
193
- - !ruby/object:Gem::Version
194
- version: 0.14.0
156
+ version_requirements: *19451320
195
157
  - !ruby/object:Gem::Dependency
196
158
  name: activerecord-postgis-adapter
197
- requirement: !ruby/object:Gem::Requirement
159
+ requirement: &19450720 !ruby/object:Gem::Requirement
160
+ none: false
198
161
  requirements:
199
- - - '='
162
+ - - =
200
163
  - !ruby/object:Gem::Version
201
164
  version: 0.4.1
202
165
  type: :runtime
203
166
  prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - '='
207
- - !ruby/object:Gem::Version
208
- version: 0.4.1
167
+ version_requirements: *19450720
209
168
  description: Mapfish Appserver is a framework for web mapping applications using OGC
210
169
  standards and the Mapfish protocol.
211
170
  email:
@@ -262,6 +221,7 @@ files:
262
221
  - app/models/group.rb
263
222
  - app/models/groups_user.rb
264
223
  - app/models/layer.rb
224
+ - app/models/locate_rule.rb
265
225
  - app/models/organisation.rb
266
226
  - app/models/permission.rb
267
227
  - app/models/role.rb
@@ -462,26 +422,27 @@ files:
462
422
  - test/test_helper.rb
463
423
  homepage: http://mapfish-appserver.github.io/
464
424
  licenses: []
465
- metadata: {}
466
425
  post_install_message:
467
426
  rdoc_options: []
468
427
  require_paths:
469
428
  - lib
470
429
  required_ruby_version: !ruby/object:Gem::Requirement
430
+ none: false
471
431
  requirements:
472
432
  - - ! '>='
473
433
  - !ruby/object:Gem::Version
474
434
  version: '0'
475
435
  required_rubygems_version: !ruby/object:Gem::Requirement
436
+ none: false
476
437
  requirements:
477
438
  - - ! '>='
478
439
  - !ruby/object:Gem::Version
479
440
  version: '0'
480
441
  requirements: []
481
442
  rubyforge_project:
482
- rubygems_version: 2.2.2
443
+ rubygems_version: 1.8.11
483
444
  signing_key:
484
- specification_version: 4
445
+ specification_version: 3
485
446
  summary: Mapfish application server.
486
447
  test_files:
487
448
  - test/dummy/README.rdoc
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MWY1NjE4Y2QyN2E4NzFmNDA0MzMzZDNkMTVmOWI3MjllMWY5OTQxNQ==
5
- data.tar.gz: !binary |-
6
- MmFmNDQ4ZGJjMjIxOTllOTEzZjk3NjY4ODE5NTY5OGEwMDZmYWU5NA==
7
- SHA512:
8
- metadata.gz: !binary |-
9
- OTM2NzRlNjE2M2UyMmIzMjBkMTJkMTRjZGUyYmExOGY2MmE1YTg2ZTM4NzY3
10
- OTM3YTk2YTY3YjhmYWFmMjg4MWVjNTJhYTg3YzFjNTFhMGM1YTA2NGUyNjEx
11
- MjFlNzIwNDljOGUxYzQwNDA1NjFlMmUzMmRlYWI0MDIzMmM0YWU=
12
- data.tar.gz: !binary |-
13
- ZjMxNWE3MjZkY2FiYTQ5NjFmMDExMmQ2NzMyNTVkNGQwNTRjYmYyNTg5YzEy
14
- MjNlY2FkNjI4ZmU0NDdlYmNlYmM5ZTg3YjA0M2ZiYjNiZWQzMTdiNzY1MDc0
15
- Y2JmNzMzNGFjZDE4MDBlYzRkZDc1Y2ZkZTY3MjNmZjY0ZTBlYTQ=