gb_mapfish_appserver 0.9.6 → 0.9.7
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.
- checksums.yaml +15 -0
- data/app/controllers/topics_controller.rb +7 -4
- data/app/models/geo_model.rb +14 -4
- data/app/models/layer.rb +2 -2
- data/app/models/topic.rb +2 -2
- data/lib/gb_mapfish_appserver/version.rb +1 -1
- metadata +92 -52
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
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=
|
@@ -31,6 +31,9 @@ class TopicsController < ApplicationController
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def query
|
34
|
+
# optional parameter (default = false) to return only the feature nearest to the center of the search geometry, if no custom layer query is used
|
35
|
+
nearest = params['nearest'] == 'true'
|
36
|
+
|
34
37
|
@query_topics = ActiveSupport::JSON.decode(params[:infoQuery])['queryTopics']
|
35
38
|
#e.g. [{"layers"=>"lk25,grenzen,gemeindegrenzen,seen,wald,haltestellen", "divCls"=>"legmain", "level"=>"main", "topic"=>"BASISKARTEZH"}, {"layers"=>"", "divCls"=>"legover", "level"=>"over", "topic"=>"AVParzOverlayZH"}]
|
36
39
|
@query_topics.each do |query_topic|
|
@@ -38,15 +41,15 @@ class TopicsController < ApplicationController
|
|
38
41
|
authorize! :show, topic
|
39
42
|
query_topic['topicobj'] = topic
|
40
43
|
if params['bbox']
|
41
|
-
query_topic['results'] = topic.query(current_ability, query_topic, params['bbox'])
|
44
|
+
query_topic['results'] = topic.query(current_ability, query_topic, params['bbox'], nearest)
|
42
45
|
elsif params['rect']
|
43
46
|
x1, y1, x2, y2 = params['rect'].split(',').collect(&:to_f)
|
44
47
|
rect = "POLYGON((#{x1} #{y1}, #{x1} #{y2}, #{x2} #{y2}, #{x2} #{y1} ,#{x1} #{y1}))"
|
45
|
-
query_topic['results'] = topic.query(current_ability, query_topic, rect)
|
48
|
+
query_topic['results'] = topic.query(current_ability, query_topic, rect, nearest)
|
46
49
|
elsif params['circle']
|
47
|
-
query_topic['results'] = topic.query(current_ability, query_topic, params['circle'])
|
50
|
+
query_topic['results'] = topic.query(current_ability, query_topic, params['circle'], nearest)
|
48
51
|
elsif params['poly']
|
49
|
-
query_topic['results'] = topic.query(current_ability, query_topic, params['poly'])
|
52
|
+
query_topic['results'] = topic.query(current_ability, query_topic, params['poly'], nearest)
|
50
53
|
else
|
51
54
|
# problem
|
52
55
|
end
|
data/app/models/geo_model.rb
CHANGED
@@ -38,24 +38,34 @@ class GeoModel < ActiveRecord::Base
|
|
38
38
|
"ST_Area(#{table_name}.#{geometry_column.name}) AS area"
|
39
39
|
end
|
40
40
|
|
41
|
-
def self.identify_filter(searchgeo, radius)
|
41
|
+
def self.identify_filter(searchgeo, radius, nearest=false)
|
42
|
+
filter = scoped
|
42
43
|
if searchgeo[0..3] == "POLY"
|
43
44
|
logger.debug "*** POLY-query: #{searchgeo} ***"
|
44
45
|
polygon = "ST_GeomFromText('#{searchgeo}', #{srid})"
|
45
|
-
|
46
|
+
filter = filter.where("ST_DWithin(#{table_name}.#{geometry_column_name}, #{polygon}, #{radius})")
|
47
|
+
center = "ST_Centroid(#{polygon})"
|
46
48
|
else
|
47
49
|
if searchgeo.split(',').length == 3
|
48
50
|
logger.debug "*** CIRCLE-query: #{searchgeo} ***"
|
49
51
|
x1, y1, r = searchgeo.split(',').collect(&:to_f)
|
50
52
|
center = "ST_GeomFromText('POINT(#{x1} #{y1})', #{srid})"
|
51
|
-
|
53
|
+
filter = filter.where("ST_DWithin(#{table_name}.#{geometry_column_name}, #{center}, #{r})")
|
52
54
|
else
|
53
55
|
logger.debug "*** BBOX-query: #{searchgeo} ***"
|
54
56
|
x1, y1, x2, y2 = searchgeo.split(',').collect(&:to_f)
|
55
57
|
center = "ST_GeomFromText('POINT(#{x1+(x2-x1)/2} #{y1+(y2-y1)/2})', #{srid})"
|
56
|
-
|
58
|
+
filter = filter.where("ST_DWithin(#{table_name}.#{geometry_column_name}, #{center}, #{radius})")
|
57
59
|
end
|
58
60
|
end
|
61
|
+
|
62
|
+
if nearest
|
63
|
+
logger.debug "*** query nearest ***"
|
64
|
+
# get the feature nearest to the center of the search geometry
|
65
|
+
filter = filter.order("ST_Distance(#{table_name}.#{geometry_column_name}, #{center})").limit(1)
|
66
|
+
end
|
67
|
+
|
68
|
+
filter
|
59
69
|
end
|
60
70
|
|
61
71
|
#Custom identify query
|
data/app/models/layer.rb
CHANGED
@@ -118,7 +118,7 @@ EOS
|
|
118
118
|
allowed_fields
|
119
119
|
end
|
120
120
|
|
121
|
-
def query(ability, query_topic, searchgeo)
|
121
|
+
def query(ability, query_topic, searchgeo, nearest=false)
|
122
122
|
if table =~ /^https?:/
|
123
123
|
features = get_feature_info(searchgeo)
|
124
124
|
[self, features, searchgeo.split(',')]
|
@@ -141,7 +141,7 @@ EOS
|
|
141
141
|
feature_class.identify_query(searchgeo, searchdistance)
|
142
142
|
else
|
143
143
|
logger.debug "*** Identify on layer #{name} with query fields #{query_fields(ability)} at #{searchgeo.inspect}"
|
144
|
-
feature_class.identify_filter(searchgeo, searchdistance).select(query_fields(ability)).all
|
144
|
+
feature_class.identify_filter(searchgeo, searchdistance, nearest).select(query_fields(ability)).all
|
145
145
|
end
|
146
146
|
logger.debug "Number of features: #{features.size}"
|
147
147
|
# calculate bbox of all features
|
data/app/models/topic.rb
CHANGED
@@ -179,12 +179,12 @@ class Topic < ActiveRecord::Base
|
|
179
179
|
perms.collect(&:role)
|
180
180
|
end
|
181
181
|
|
182
|
-
def query(ability, query_topic, searchbbox)
|
182
|
+
def query(ability, query_topic, searchbbox, nearest=false)
|
183
183
|
active_layers = query_topic['layers'].split(',')
|
184
184
|
qlayers = query_layers(ability, active_layers)
|
185
185
|
results = []
|
186
186
|
qlayers.each do |layer|
|
187
|
-
result = layer.query(ability, query_topic, searchbbox)
|
187
|
+
result = layer.query(ability, query_topic, searchbbox, nearest)
|
188
188
|
results << result unless result.nil?
|
189
189
|
end
|
190
190
|
results
|
metadata
CHANGED
@@ -1,170 +1,211 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gb_mapfish_appserver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
5
|
-
prerelease:
|
4
|
+
version: 0.9.7
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Pirmin Kalberer
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-09-17 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 3.2.13
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.2.13
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: json
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - ! '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: acts_as_tree
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- - =
|
45
|
+
- - '='
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: 0.2.0
|
44
48
|
type: :runtime
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.2.0
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: devise
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
59
|
- - ~>
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: 2.2.0
|
55
62
|
type: :runtime
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.2.0
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: cancan
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
|
-
- - =
|
73
|
+
- - '='
|
64
74
|
- !ruby/object:Gem::Version
|
65
75
|
version: 1.6.8
|
66
76
|
type: :runtime
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.6.8
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rails_admin
|
71
|
-
requirement:
|
72
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
73
86
|
requirements:
|
74
87
|
- - ~>
|
75
88
|
- !ruby/object:Gem::Version
|
76
89
|
version: 0.4.9
|
77
90
|
type: :runtime
|
78
91
|
prerelease: false
|
79
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.4.9
|
80
97
|
- !ruby/object:Gem::Dependency
|
81
98
|
name: fastercsv
|
82
|
-
requirement:
|
83
|
-
none: false
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
84
100
|
requirements:
|
85
101
|
- - ! '>='
|
86
102
|
- !ruby/object:Gem::Version
|
87
103
|
version: '0'
|
88
104
|
type: :runtime
|
89
105
|
prerelease: false
|
90
|
-
version_requirements:
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
91
111
|
- !ruby/object:Gem::Dependency
|
92
112
|
name: sass
|
93
|
-
requirement:
|
94
|
-
none: false
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
95
114
|
requirements:
|
96
115
|
- - ~>
|
97
116
|
- !ruby/object:Gem::Version
|
98
117
|
version: 3.2.12
|
99
118
|
type: :runtime
|
100
119
|
prerelease: false
|
101
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ~>
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 3.2.12
|
102
125
|
- !ruby/object:Gem::Dependency
|
103
126
|
name: GeoRuby
|
104
|
-
requirement:
|
105
|
-
none: false
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
106
128
|
requirements:
|
107
129
|
- - ! '>='
|
108
130
|
- !ruby/object:Gem::Version
|
109
131
|
version: 0.1.4
|
110
132
|
type: :runtime
|
111
133
|
prerelease: false
|
112
|
-
version_requirements:
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ! '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.1.4
|
113
139
|
- !ruby/object:Gem::Dependency
|
114
140
|
name: rgeo
|
115
|
-
requirement:
|
116
|
-
none: false
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
117
142
|
requirements:
|
118
143
|
- - ~>
|
119
144
|
- !ruby/object:Gem::Version
|
120
145
|
version: 0.3.20
|
121
146
|
type: :runtime
|
122
147
|
prerelease: false
|
123
|
-
version_requirements:
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ~>
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 0.3.20
|
124
153
|
- !ruby/object:Gem::Dependency
|
125
154
|
name: rgeo-geojson
|
126
|
-
requirement:
|
127
|
-
none: false
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
128
156
|
requirements:
|
129
157
|
- - ~>
|
130
158
|
- !ruby/object:Gem::Version
|
131
159
|
version: 0.2.3
|
132
160
|
type: :runtime
|
133
161
|
prerelease: false
|
134
|
-
version_requirements:
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ~>
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.2.3
|
135
167
|
- !ruby/object:Gem::Dependency
|
136
168
|
name: hpricot
|
137
|
-
requirement:
|
138
|
-
none: false
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
139
170
|
requirements:
|
140
171
|
- - ! '>='
|
141
172
|
- !ruby/object:Gem::Version
|
142
173
|
version: '0'
|
143
174
|
type: :runtime
|
144
175
|
prerelease: false
|
145
|
-
version_requirements:
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ! '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
146
181
|
- !ruby/object:Gem::Dependency
|
147
182
|
name: pg
|
148
|
-
requirement:
|
149
|
-
none: false
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
150
184
|
requirements:
|
151
185
|
- - ~>
|
152
186
|
- !ruby/object:Gem::Version
|
153
187
|
version: 0.14.0
|
154
188
|
type: :runtime
|
155
189
|
prerelease: false
|
156
|
-
version_requirements:
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ~>
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 0.14.0
|
157
195
|
- !ruby/object:Gem::Dependency
|
158
196
|
name: activerecord-postgis-adapter
|
159
|
-
requirement:
|
160
|
-
none: false
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
161
198
|
requirements:
|
162
|
-
- - =
|
199
|
+
- - '='
|
163
200
|
- !ruby/object:Gem::Version
|
164
201
|
version: 0.4.1
|
165
202
|
type: :runtime
|
166
203
|
prerelease: false
|
167
|
-
version_requirements:
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - '='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 0.4.1
|
168
209
|
description: Mapfish Appserver is a framework for web mapping applications using OGC
|
169
210
|
standards and the Mapfish protocol.
|
170
211
|
email:
|
@@ -421,27 +462,26 @@ files:
|
|
421
462
|
- test/test_helper.rb
|
422
463
|
homepage: http://mapfish-appserver.github.io/
|
423
464
|
licenses: []
|
465
|
+
metadata: {}
|
424
466
|
post_install_message:
|
425
467
|
rdoc_options: []
|
426
468
|
require_paths:
|
427
469
|
- lib
|
428
470
|
required_ruby_version: !ruby/object:Gem::Requirement
|
429
|
-
none: false
|
430
471
|
requirements:
|
431
472
|
- - ! '>='
|
432
473
|
- !ruby/object:Gem::Version
|
433
474
|
version: '0'
|
434
475
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
435
|
-
none: false
|
436
476
|
requirements:
|
437
477
|
- - ! '>='
|
438
478
|
- !ruby/object:Gem::Version
|
439
479
|
version: '0'
|
440
480
|
requirements: []
|
441
481
|
rubyforge_project:
|
442
|
-
rubygems_version:
|
482
|
+
rubygems_version: 2.2.2
|
443
483
|
signing_key:
|
444
|
-
specification_version:
|
484
|
+
specification_version: 4
|
445
485
|
summary: Mapfish application server.
|
446
486
|
test_files:
|
447
487
|
- test/dummy/README.rdoc
|