spatial_features 2.4.3 → 2.5.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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f9a2d017923b7bb6f058501fa83c871a9d215f3
|
4
|
+
data.tar.gz: 9e54295de270f2aaa04404bd2aec8ce71dc9b1dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61d4a13e97fa049f174e06d8fae41b5620db491c00e6a7e45eb5ae41cc0916771163e4e29d1732cb78a100ecdb3734ff392d214297b73aea0388b06d5ee25958
|
7
|
+
data.tar.gz: dc79046fb16d330cc7025cbfa30e12234cccff8f1f94293924064e1b7985a5df915f3b05ed0c9397f78bd2dd08e2d89f4e52d2a127bbd3f530fa24a79c6077f2
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Chroma
|
2
|
+
class Color
|
3
|
+
module Serializers
|
4
|
+
# Google's Fusion Table colouring expects the alpha value in the last position, not the first
|
5
|
+
def to_ft_hex
|
6
|
+
[
|
7
|
+
to_2char_hex(@rgb.r),
|
8
|
+
to_2char_hex(@rgb.g),
|
9
|
+
to_2char_hex(@rgb.b),
|
10
|
+
to_2char_hex(alpha * 255)
|
11
|
+
].join('')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -12,8 +12,10 @@ module SpatialFeatures
|
|
12
12
|
:metadata => 'STRING'
|
13
13
|
}
|
14
14
|
TABLE_STYLE = {
|
15
|
-
:polygon_options => { :fill_color_styler => { :kind => 'fusiontables#fromColumn', :column_name => 'colour' },
|
16
|
-
|
15
|
+
:polygon_options => { :fill_color_styler => { :kind => 'fusiontables#fromColumn', :column_name => 'colour' },
|
16
|
+
:stroke_color => { :kind => 'fusiontables#fromColumn', :column_name => 'colour' },
|
17
|
+
:stroke_opacity => 0.5 },
|
18
|
+
:polyline_options => { :stroke_color_styler => { :kind => 'fusiontables#fromColumn', :column_name => 'stroke_colour'} }
|
17
19
|
}
|
18
20
|
|
19
21
|
TABLE_TEMPLATE = {
|
@@ -45,8 +47,7 @@ module SpatialFeatures
|
|
45
47
|
end
|
46
48
|
|
47
49
|
def set_features(table_id, features, colour: nil)
|
48
|
-
|
49
|
-
service.replace_rows(table_id, features_to_csv(features))
|
50
|
+
service.replace_rows(table_id, features_to_csv(features, colour))
|
50
51
|
end
|
51
52
|
|
52
53
|
def service
|
@@ -55,11 +56,20 @@ module SpatialFeatures
|
|
55
56
|
|
56
57
|
private
|
57
58
|
|
58
|
-
def features_to_csv(features)
|
59
|
+
def features_to_csv(features, colour)
|
60
|
+
ActiveRecord::Associations::Preloader.new.preload(features, :spatial_model) if colour.is_a?(Symbol)
|
61
|
+
|
59
62
|
csv = CSV.generate do |csv|
|
60
63
|
features.each do |feature|
|
61
64
|
csv << FEATURE_COLUMNS.keys.collect do |attribute|
|
62
|
-
|
65
|
+
case attribute
|
66
|
+
when :colour
|
67
|
+
render_feature_colour(feature, colour)
|
68
|
+
when :metadata
|
69
|
+
render_feature_metadata(feature)
|
70
|
+
else
|
71
|
+
feature.send(attribute)
|
72
|
+
end
|
63
73
|
end
|
64
74
|
end
|
65
75
|
end
|
@@ -69,39 +79,24 @@ module SpatialFeatures
|
|
69
79
|
return file
|
70
80
|
end
|
71
81
|
|
72
|
-
def
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
"<b>#{name}:</b> #{val}"
|
77
|
-
end.join('<br/>')
|
78
|
-
else
|
79
|
-
value
|
80
|
-
end
|
82
|
+
def render_feature_metadata(feature)
|
83
|
+
feature.metadata.collect do |name, val|
|
84
|
+
"<b>#{name}:</b> #{val}"
|
85
|
+
end.join('<br/>')
|
81
86
|
end
|
82
87
|
|
83
|
-
def
|
88
|
+
def render_feature_colour(feature, colour)
|
84
89
|
case colour
|
85
90
|
when Symbol
|
86
|
-
|
87
|
-
features.each do |feature|
|
88
|
-
feature.define_singleton_method(:colour) do
|
89
|
-
spatial_model.send(colour)
|
90
|
-
end
|
91
|
-
end
|
91
|
+
feature.spatial_model.send(colour)
|
92
92
|
when Proc
|
93
|
-
|
94
|
-
feature.define_singleton_method(:colour) do
|
95
|
-
colour.call(feature)
|
96
|
-
end
|
97
|
-
end
|
93
|
+
colour.call(feature)
|
98
94
|
else
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
end
|
95
|
+
colour
|
96
|
+
end.paint.to_ft_hex
|
97
|
+
|
98
|
+
rescue Chroma::Errors::UnrecognizedColor
|
99
|
+
nil
|
105
100
|
end
|
106
101
|
end
|
107
102
|
end
|
@@ -5,6 +5,8 @@ module SpatialFeatures
|
|
5
5
|
class_attribute :fusion_table_features_options
|
6
6
|
self.fusion_table_features_options = options
|
7
7
|
|
8
|
+
after_update_features :expire_fusion_table
|
9
|
+
|
8
10
|
include InstanceMethods
|
9
11
|
extend ClassMethods
|
10
12
|
end
|
@@ -54,6 +56,14 @@ module SpatialFeatures
|
|
54
56
|
true
|
55
57
|
end
|
56
58
|
|
59
|
+
def stale_fusion_table?
|
60
|
+
@stale_fusion_table
|
61
|
+
end
|
62
|
+
|
63
|
+
def expire_fusion_table
|
64
|
+
@stale_fusion_table = true
|
65
|
+
end
|
66
|
+
|
57
67
|
def update_fusion_table
|
58
68
|
self.class.update_fusion_tables(only: fusion_table_id)
|
59
69
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spatial_features
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Wallace
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-10-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -109,6 +109,20 @@ dependencies:
|
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0.9'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: chroma
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: 0.1.0
|
119
|
+
type: :runtime
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 0.1.0
|
112
126
|
- !ruby/object:Gem::Dependency
|
113
127
|
name: pg
|
114
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,6 +164,7 @@ files:
|
|
150
164
|
- app/models/feature.rb
|
151
165
|
- app/models/spatial_cache.rb
|
152
166
|
- app/models/spatial_proximity.rb
|
167
|
+
- config/initializers/chroma_serializers.rb
|
153
168
|
- config/initializers/register_oids.rb
|
154
169
|
- lib/spatial_features.rb
|
155
170
|
- lib/spatial_features/caching.rb
|