spatial_features 3.0.2 → 3.1.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 +4 -4
- data/README.md +15 -0
- data/config/initializers/register_oids.rb +6 -2
- data/lib/spatial_features/has_spatial_features.rb +1 -1
- data/lib/spatial_features/importers/kml.rb +9 -1
- data/lib/spatial_features/version.rb +1 -1
- metadata +24 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9578faf8d4205e8b25b7039b99df9ead3f03f13d82568277930c8824adb48980
|
4
|
+
data.tar.gz: 16a5be2783383686f570f598edd8ecf3da6350fb92d5b393618f8be919ab8c79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 772ab77070751ca764ab8a06cf5260038be3cae8461c6e9c7fa894e644d2164cd8905281c43d0eab48b7ab2f06227b01da809687ec4ffb7bc1ade359c7097eea
|
7
|
+
data.tar.gz: da9f6d66e79f85362f4c6af9e3dc8400b4f6fb51bf0cb5ba84114ccb47b4541e59614d162271877c6d20d9d342fbc9a86b48de7e8a5a1de15b27c7136c09f3b3
|
data/README.md
CHANGED
@@ -181,3 +181,18 @@ add_column :features, :tilegeom, :geometry
|
|
181
181
|
add_index :features, :tilegeom, :using => :gist
|
182
182
|
Feature.update_all('tilegeom = ST_Transform(geom, 3857)')
|
183
183
|
```
|
184
|
+
|
185
|
+
## Testing
|
186
|
+
|
187
|
+
Create a postgres database:
|
188
|
+
```bash
|
189
|
+
createdb spatial_features_test
|
190
|
+
```
|
191
|
+
|
192
|
+
There are multiple gemfiles available for testing against different Rails versions. Set `BUNDLE_GEMFILE` to target them, e.g.
|
193
|
+
|
194
|
+
```bash
|
195
|
+
bundle install
|
196
|
+
BUNDLE_GEMFILE=gemfiles/rails_7_0.gemfile bundle install
|
197
|
+
BUNDLE_GEMFILE=gemfiles/rails_7_0.gemfile bundle exec rspec
|
198
|
+
```
|
@@ -1,8 +1,12 @@
|
|
1
1
|
module PostGISTypes
|
2
2
|
def initialize_type_map(m = type_map)
|
3
3
|
super
|
4
|
-
|
5
|
-
|
4
|
+
%w[
|
5
|
+
geography
|
6
|
+
geometry
|
7
|
+
].each do |geo_type|
|
8
|
+
m.register_type geo_type, ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::OID::SpecializedString.new(geo_type.to_sym)
|
9
|
+
end
|
6
10
|
end
|
7
11
|
end
|
8
12
|
|
@@ -56,7 +56,7 @@ module SpatialFeatures
|
|
56
56
|
within_buffer(other, 0, options)
|
57
57
|
end
|
58
58
|
|
59
|
-
def within_buffer(other, buffer_in_meters = 0,
|
59
|
+
def within_buffer(other, buffer_in_meters = 0, options = {})
|
60
60
|
return none if other.is_a?(ActiveRecord::Base) && other.new_record?
|
61
61
|
|
62
62
|
# Cache only works on single records, not scopes.
|
@@ -15,7 +15,7 @@ module SpatialFeatures
|
|
15
15
|
|
16
16
|
def each_record(&block)
|
17
17
|
{'Polygon' => 'POLYGON', 'LineString' => 'LINE', 'Point' => 'POINT'}.each do |kml_type, sql_type|
|
18
|
-
|
18
|
+
kml_document.css(kml_type).each do |feature|
|
19
19
|
if placemark = feature.ancestors('Placemark').first
|
20
20
|
name = placemark.css('name').text
|
21
21
|
metadata = extract_metadata(placemark)
|
@@ -35,6 +35,14 @@ module SpatialFeatures
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
def kml_document
|
39
|
+
@kml_document ||= begin
|
40
|
+
doc = Nokogiri::XML(@data)
|
41
|
+
raise ImportError, "Invalid KML document (root node was '#{doc.root&.name}')" unless doc.root&.name.to_s.casecmp?('kml')
|
42
|
+
doc
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
38
46
|
def blank_feature?(feature)
|
39
47
|
feature.css('coordinates').text.blank?
|
40
48
|
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: 3.0
|
4
|
+
version: 3.1.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: 2022-
|
12
|
+
date: 2022-05-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -17,20 +17,20 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '6'
|
21
21
|
- - "<"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: '
|
23
|
+
version: '8'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - ">="
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: '
|
30
|
+
version: '6'
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '8'
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: delayed_job_active_record
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -91,16 +91,16 @@ dependencies:
|
|
91
91
|
name: nokogiri
|
92
92
|
requirement: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '0'
|
97
97
|
type: :runtime
|
98
98
|
prerelease: false
|
99
99
|
version_requirements: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
103
|
+
version: '0'
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
105
|
name: pg
|
106
106
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,6 +129,20 @@ dependencies:
|
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '3.5'
|
132
|
+
- !ruby/object:Gem::Dependency
|
133
|
+
name: pry-byebug
|
134
|
+
requirement: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
type: :development
|
140
|
+
prerelease: false
|
141
|
+
version_requirements: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
132
146
|
description: Adds spatial methods to a model.
|
133
147
|
email:
|
134
148
|
- contact@culturecode.ca
|