spatial_features 3.8.0 → 3.8.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
  SHA256:
3
- metadata.gz: 54f447bf36298072b9480e0f33faa93145d8f4dbdecd5d1422001f0202a25354
4
- data.tar.gz: 2546213005b5fde86ed5732c9d408a9b1ee7f30d9c53afeaa75a19a4b0f299f7
3
+ metadata.gz: 8c39f4ddf1a0278a2113553044083debb8bc94812d212d154df63f3081495b9e
4
+ data.tar.gz: 48dce14cba519956da13f24735f37e16c2e9fbb0e8f4db2ddaeadb9b039e2681
5
5
  SHA512:
6
- metadata.gz: f9295415b8375b8d5c9741b15371b2aebf0eb02dc75220a6d0f3ac16259d26f1dd60aefdc0f3bf96f8e5c959a4b34d81717efaa87309555f1bbfe28261797aa6
7
- data.tar.gz: 26fedef5b3779e49f656410a5fbfc7cbf8997d2a7ac627015681372a5e61dc1392116ed95a46662143f1fdd1ea628a8b5aaaf6b0e7f45b08a42189f27a5e7cca
6
+ metadata.gz: c9e30da36775a4e1c9cfd4b4acf9606f2302fc66e5cbda64f32d89e2733f3b30f3387879b138e0f9dd098e0a7a1841157bb4f03f99494568fad39e43093921b0
7
+ data.tar.gz: f0f01bc1c5d021e99d40ce372053dc25a872b0c6e1d2128b01ec75a2cc969b7543eb2bedd27c1980d75aca36ca74ee491d02d14789ad1ebb6f9122982ac52b6d
data/README.md CHANGED
@@ -24,22 +24,33 @@ Adds spatial methods to a model.
24
24
 
25
25
  CREATE TABLE features (
26
26
  id integer NOT NULL,
27
- type character varying(255),
28
27
  spatial_model_type character varying(255),
29
28
  spatial_model_id integer,
30
29
  name character varying(255),
31
- feature_type character varying(255),
32
- geog geography,
33
- geom geometry(Geometry,4326),
34
- geom_lowres geometry(Geometry,4326),
35
- tilegeom geometry(Geometry,3857),
36
- metadata hstore,
37
- area double precision,
38
- north numeric(9,6),
39
- east numeric(9,6),
40
- south numeric(9,6),
41
- west numeric(9,6),
42
- centroid geography,
30
+ geog public.geography,
31
+ metadata public.hstore DEFAULT ''::public.hstore NOT NULL,
32
+ geom public.geometry(Geometry,3005),
33
+ geom_lowres public.geometry(Geometry,3005),
34
+ type character varying,
35
+ source_identifier character varying,
36
+ tilegeom public.geometry(Geometry,3857) GENERATED ALWAYS AS (public.st_transform(geom, 3857)) STORED,
37
+ feature_type character varying GENERATED ALWAYS AS (
38
+ CASE public.geometrytype(geog)
39
+ WHEN 'POLYGON'::text THEN 'polygon'::text
40
+ WHEN 'MULTIPOLYGON'::text THEN 'polygon'::text
41
+ WHEN 'GEOMETRYCOLLECTION'::text THEN 'polygon'::text
42
+ WHEN 'LINESTRING'::text THEN 'line'::text
43
+ WHEN 'MULTILINESTRING'::text THEN 'line'::text
44
+ WHEN 'POINT'::text THEN 'point'::text
45
+ WHEN 'MULTIPOINT'::text THEN 'point'::text
46
+ ELSE NULL::text
47
+ END) STORED,
48
+ centroid public.geography GENERATED ALWAYS AS (public.st_pointonsurface((geog)::public.geometry)) STORED,
49
+ area numeric GENERATED ALWAYS AS (public.st_area(geog)) STORED,
50
+ north numeric GENERATED ALWAYS AS (public.st_ymax(((geog)::public.geometry)::public.box3d)) STORED,
51
+ east numeric GENERATED ALWAYS AS (public.st_xmax(((geog)::public.geometry)::public.box3d)) STORED,
52
+ south numeric GENERATED ALWAYS AS (public.st_ymin(((geog)::public.geometry)::public.box3d)) STORED,
53
+ west numeric GENERATED ALWAYS AS (public.st_xmin(((geog)::public.geometry)::public.box3d)) STORED
43
54
  );
44
55
 
45
56
  CREATE SEQUENCE features_id_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
@@ -12,6 +12,8 @@ module SpatialFeatures
12
12
 
13
13
  def each_record(&block)
14
14
  parsed_geojson.fetch('features', []).each do |record|
15
+ next if record['geometry'].nil? # Skip features without geometry
16
+
15
17
  metadata = record['properties'] || {}
16
18
  name = metadata.delete('name')
17
19
  yield OpenStruct.new(
@@ -44,6 +44,7 @@ module SpatialFeatures
44
44
  def kml_document
45
45
  @kml_document ||= begin
46
46
  doc = Nokogiri::XML(@data)
47
+ doc.remove_namespaces! # We don't care about namespaces since the document is going to be filled with placemark geometry and we want it all without needing to deal with namespaces
47
48
  raise ImportError, "Invalid KML document (root node was '#{doc.root&.name}')" unless doc.root&.name.to_s.casecmp?('kml')
48
49
  raise ImportError, "NetworkLink elements are not supported" unless doc.search('NetworkLink').empty?
49
50
  doc
@@ -1,3 +1,3 @@
1
1
  module SpatialFeatures
2
- VERSION = "3.8.0"
2
+ VERSION = "3.8.2"
3
3
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spatial_features
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.0
4
+ version: 3.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Wallace
8
8
  - Nicholas Jakobsen
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2024-09-28 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rails
@@ -208,7 +207,6 @@ homepage: https://github.com/culturecode/spatial_features
208
207
  licenses:
209
208
  - MIT
210
209
  metadata: {}
211
- post_install_message:
212
210
  rdoc_options: []
213
211
  require_paths:
214
212
  - lib
@@ -223,8 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
221
  - !ruby/object:Gem::Version
224
222
  version: '0'
225
223
  requirements: []
226
- rubygems_version: 3.5.1
227
- signing_key:
224
+ rubygems_version: 3.7.2
228
225
  specification_version: 4
229
226
  summary: Adds spatial methods to a model.
230
227
  test_files: []