spatial_features 1.3.6 → 1.3.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 69d8ba9f76d0b6597c4719211a776191af5a6051
4
- data.tar.gz: 048baef877073d0068e9a1b06c1e4b5fbf438c9d
3
+ metadata.gz: 436fef303733276633ff5c6055541d20d1139d0e
4
+ data.tar.gz: cfddf894cb3a79e5beb9662069e7210a6c43035d
5
5
  SHA512:
6
- metadata.gz: 5b9dd28da45913bc3637d4c3df5ea6e5e9ebc5eec1e1f4e353c2f8334cddc495912c369d09ab1a60cfb585c3c389505e50ff180cecabc1eb3643dcc716705680
7
- data.tar.gz: f029dd9bb557d9237e19376dbe40db379b31d967cd2520714f4d5ce998e5afdf76678d5912a257511700fed8bfc75ca9cb44fc64efdc702956bef9a57e302f28
6
+ metadata.gz: a36136f66dc0c2a7c9c419ed3d7cab05f21c8abeacb6e58995e3bef4410ca6664b2886a7ab1849ec308a1b2d4b69740d143ad360bf0905a3b5e78620bb1c114f
7
+ data.tar.gz: 0fe23f41fb24a53e30859653c807fca288173d8172245d0cd58c1be493a9999b4adc1fee79a6d595dc5a7ca3f47c914f4d78a3a2b16b69dacf501edde0b7f162
data/README.md CHANGED
@@ -12,11 +12,32 @@ execute("
12
12
  name character varying(255),
13
13
  feature_type character varying(255),
14
14
  geog geography,
15
+ kml text,
15
16
  geog_lowres geography(Geometry,4326),
16
17
  geom geometry(Geometry,26910),
17
- kml text,
18
+ metadata hstore,
18
19
  kml_lowres text,
19
- metadata hstore
20
+ area double precision
20
21
  );
22
+
23
+ CREATE TABLE spatial_caches (
24
+ id integer NOT NULL,
25
+ intersection_model_type character varying(255),
26
+ spatial_model_type character varying(255),
27
+ spatial_model_id integer,
28
+ created_at timestamp without time zone,
29
+ updated_at timestamp without time zone,
30
+ intersection_cache_distance double precision
31
+ );
32
+
33
+ CREATE TABLE spatial_proximities (
34
+ id integer NOT NULL,
35
+ model_a_type character varying(255),
36
+ model_a_id integer,
37
+ model_b_type character varying(255),
38
+ model_b_id integer,
39
+ distance_in_meters double precision,
40
+ intersection_area_in_square_meters double precision
41
+ );
21
42
  ")
22
43
  ```
@@ -61,6 +61,6 @@ module SpatialFeatures
61
61
  SpatialCache.create!(
62
62
  :spatial_model => model,
63
63
  :intersection_model_type => klass.name,
64
- :cache_distance => default_cache_buffer_in_meters)
64
+ :intersection_cache_distance => default_cache_buffer_in_meters)
65
65
  end
66
- end
66
+ end
@@ -139,7 +139,7 @@ module SpatialFeatures
139
139
  end
140
140
 
141
141
  def features_area_in_square_meters
142
- @features_area_in_square_meters ||= features.sum('ST_Area(features.geog_lowres)')
142
+ @features_area_in_square_meters ||= features.sum('features.area')
143
143
  end
144
144
 
145
145
  def features_area_in_hectares
@@ -152,10 +152,10 @@ module SpatialFeatures
152
152
 
153
153
  def spatial_cache_for?(klass, buffer_in_meters)
154
154
  if cache = spatial_cache_for(klass)
155
- return cache.cache_distance.nil? if buffer_in_meters.nil? # cache must be total if no buffer_in_meters
156
- return true if cache.cache_distance.nil? # always good if cache is total
155
+ return cache.intersection_cache_distance.nil? if buffer_in_meters.nil? # cache must be total if no buffer_in_meters
156
+ return true if cache.intersection_cache_distance.nil? # always good if cache is total
157
157
 
158
- return buffer_in_meters <= cache.cache_distance
158
+ return buffer_in_meters <= cache.intersection_cache_distance
159
159
  else
160
160
  return false
161
161
  end
@@ -31,6 +31,10 @@ class Feature < ActiveRecord::Base
31
31
  select('features.*, ST_IsValidReason(geog::geometry) AS invalid_geometry_message').where.not('ST_IsValid(geog::geometry)')
32
32
  end
33
33
 
34
+ def self.valid
35
+ where('ST_IsValid(geog::geometry)')
36
+ end
37
+
34
38
  def envelope(buffer_in_meters = 0)
35
39
  envelope_json = JSON.parse(self.class.select("ST_AsGeoJSON(ST_Envelope(ST_Buffer(features.geog, #{buffer_in_meters})::geometry)) AS result").where(:id => id).first.result)
36
40
  envelope_json = envelope_json["coordinates"].first
@@ -43,7 +47,8 @@ class Feature < ActiveRecord::Base
43
47
  def self.cache_derivatives(options = {})
44
48
  options.reverse_merge! :lowres_simplification => 0.0001, :lowres_precision => 5
45
49
 
46
- update_all("geom = ST_Transform(geog::geometry, 26910),
50
+ update_all("area = ST_Area(geog),
51
+ geom = ST_Transform(geog::geometry, 26910),
47
52
  geog_lowres = ST_SimplifyPreserveTopology(geog::geometry, #{options[:lowres_simplification]})"
48
53
  .squish)
49
54
  update_all("kml = ST_AsKML(features.geog, 6),
@@ -1,3 +1,3 @@
1
1
  module SpatialFeatures
2
- VERSION = "1.3.6"
2
+ VERSION = "1.3.7"
3
3
  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: 1.3.6
4
+ version: 1.3.7
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: 2015-07-08 00:00:00.000000000 Z
12
+ date: 2015-07-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails