spatial_features 1.4.0 → 1.4.2
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:
|
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
|