spatial_features 1.4.0 → 1.4.2
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: 99790dcf4cfb676fe6c09d44c7e244485a2043bc
|
4
|
+
data.tar.gz: a566293dbcd0bf269819193e83793f7f409805e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d76515d5e9ae92f24658aa1cb40f1db5b2e99160d0da699a42257587bf5df096fed536c6797387cd4ee293a8a4c489787226c53af2dd91fe3ee7608ffa279ec9
|
7
|
+
data.tar.gz: 653517f9b24614809b50e19f6d9d2c7c8f0e192f13ece4109db321c5ff6dbb47f77b41a7ebb82c4949c517c6dd0d356ff381ebe68ca397e3d912931020a3db03
|
@@ -28,13 +28,10 @@ module SpatialFeatures
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def within_buffer(other, buffer_in_meters = 0, options = {})
|
31
|
-
if options[:cache] != false # CACHED
|
31
|
+
if options[:cache] != false && other.is_a?(ActiveRecord::Base) # CACHED
|
32
32
|
return all.extending(UncachedRelation) unless class_for(other).spatial_cache_for?(self, buffer_in_meters) # Don't use the cache if it doesn't exist
|
33
33
|
|
34
|
-
scope = cached_spatial_join(other)
|
35
|
-
.select("#{table_name}.*, spatial_proximities.distance_in_meters, spatial_proximities.intersection_area_in_square_meters")
|
36
|
-
.group("#{table_name}.#{primary_key}")
|
37
|
-
|
34
|
+
scope = cached_spatial_join(other).select("#{table_name}.*, spatial_proximities.distance_in_meters, spatial_proximities.intersection_area_in_square_meters")
|
38
35
|
scope = scope.where("spatial_proximities.distance_in_meters <= ?", buffer_in_meters) if buffer_in_meters
|
39
36
|
else # NON-CACHED
|
40
37
|
scope = joins_features_for(other)
|
@@ -80,6 +77,9 @@ module SpatialFeatures
|
|
80
77
|
end
|
81
78
|
end
|
82
79
|
|
80
|
+
def intersection_area_in_square_meters(other)
|
81
|
+
features.intersection_area_in_square_meters(other.features)
|
82
|
+
end
|
83
83
|
|
84
84
|
def features
|
85
85
|
Feature.where(:spatial_model_type => self, :spatial_model_id => all)
|
@@ -35,6 +35,13 @@ class Feature < ActiveRecord::Base
|
|
35
35
|
where('ST_IsValid(geog::geometry)')
|
36
36
|
end
|
37
37
|
|
38
|
+
def self.intersection_area_in_square_meters(other_features)
|
39
|
+
self_geom = all.select('ST_Union(geog_lowres::geometry)').to_sql
|
40
|
+
other_geom = Feature.unscoped.where(:id => other_features).select('ST_Union(geog_lowres::geometry)').to_sql
|
41
|
+
|
42
|
+
connection.select_value "SELECT ST_Area(ST_Intersection((#{self_geom}), (#{other_geom})))"
|
43
|
+
end
|
44
|
+
|
38
45
|
def envelope(buffer_in_meters = 0)
|
39
46
|
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)
|
40
47
|
envelope_json = envelope_json["coordinates"].first
|
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.4.
|
4
|
+
version: 1.4.2
|
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-12-
|
12
|
+
date: 2015-12-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -59,6 +59,34 @@ dependencies:
|
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rspec
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
type: :development
|
70
|
+
prerelease: false
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: rspec-nc
|
78
|
+
requirement: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
type: :development
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
62
90
|
description: Adds spatial methods to a model.
|
63
91
|
email:
|
64
92
|
- contact@culturecode.ca
|