charta 0.1.15 → 0.1.16

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
  SHA256:
3
- metadata.gz: 69e1f8271f68097487faff44d6fa58e839d48bf5454b3b3954602eb0b0c68757
4
- data.tar.gz: e5d6daa2bfac67254c34f48034cbebf88da5c57a7bab29d054bb2e0e3f3fa485
3
+ metadata.gz: 27a2e5f7689bcfa650af268dd6a6f0d8a62bdea6cc20fdc3b7e4b372d62205c8
4
+ data.tar.gz: 39cb1fb8023d04d19e211323987dd2a80231e616e34c81134729e7b7a231fbf0
5
5
  SHA512:
6
- metadata.gz: 51fc00d1c39034ccc8beb499b80394422167f5ffa388d760d3f035a3e82f64e69261b485dd6e69e8b0e1e55c3729739fece0064984adafa71697ffd62303b9bb
7
- data.tar.gz: 131d8f79f50a29887849d33a9ff81268ad4d7ad81d3e6fdbac92b3efdf6bda4232dab34ed2bca2995663e7f57a2912942787e251e71404d8ac97647ddac9b7b9
6
+ metadata.gz: ff3edbf296fe4736cd84da7a689ce5e2df6605aa1a181827b80bebc1e9d2131744b25bd491ebc180f946af615de60acba5f2463d2e97f1ab409f3d8fdb0c35fb
7
+ data.tar.gz: 1c418aba1d2113235ad8886a425a1a8ab49120d1bea3bdfb4dd7d2476b45f4022da4ac7503e67f8a2dd1272182e9d11174f5119b94f02d3eedbc708f92896824
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
  /spec/reports/
10
10
  /tmp/
11
11
  .byebug_history
12
+ .ruby-version
@@ -2,7 +2,7 @@ stages:
2
2
  - test
3
3
 
4
4
  test:
5
- image: registry.gitlab.com/ekylibre/docker-base-images/ruby2.3:master
5
+ image: registry.gitlab.com/ekylibre/docker-base-images/ruby2.3:1
6
6
  before_script:
7
7
  - bundle install --path vendor/bundle
8
8
  cache:
@@ -10,4 +10,4 @@ test:
10
10
  paths:
11
11
  - vendor/bundle
12
12
  script:
13
- - bundle exec rake test
13
+ - bundle exec rake test
@@ -43,6 +43,7 @@ module Charta
43
43
  def to_text
44
44
  feature.as_text.match(/\ASRID=.*;(.*)/)[1]
45
45
  end
46
+
46
47
  alias as_text to_text
47
48
  alias to_wkt to_text
48
49
 
@@ -50,6 +51,7 @@ module Charta
50
51
  def to_ewkt
51
52
  Charta.generate_ewkt(feature).to_s
52
53
  end
54
+
53
55
  alias to_s to_ewkt
54
56
 
55
57
  def ewkt
@@ -62,6 +64,7 @@ module Charta
62
64
  generator = RGeo::WKRep::WKBGenerator.new(tag_format: :ewkbt, emit_ewkbt_srid: true)
63
65
  generator.generate(feature)
64
66
  end
67
+
65
68
  alias to_ewkb to_binary
66
69
 
67
70
  # Pas bien compris le fonctionnement
@@ -85,6 +88,7 @@ module Charta
85
88
  def to_geojson
86
89
  to_json_object.to_json
87
90
  end
91
+
88
92
  alias to_json to_geojson
89
93
 
90
94
  # Returns object in JSON (Hash)
@@ -110,12 +114,24 @@ module Charta
110
114
 
111
115
  # Returns true if Geometry is a Surface
112
116
  def surface?
113
- [RGeo::Feature::Polygon, RGeo::Feature::MultiPolygon].include? feature.geometry_type
117
+ if collection?
118
+ feature.any? { |geometry| Charta.new_geometry(geometry).surface? }
119
+ else
120
+ [RGeo::Feature::Polygon, RGeo::Feature::MultiPolygon].include? feature.geometry_type
121
+ end
114
122
  end
115
123
 
116
124
  # Returns area in unit corresponding to the SRS
117
125
  def area
118
- surface? ? feature.area : 0
126
+ if surface?
127
+ if collection?
128
+ feature.sum { |geometry| Charta.new_geometry(geometry).area }
129
+ else
130
+ feature.area
131
+ end
132
+ else
133
+ 0
134
+ end
119
135
  end
120
136
 
121
137
  # Returns true if this Geometry is an empty geometrycollection, polygon,
@@ -123,6 +139,7 @@ module Charta
123
139
  def empty?
124
140
  feature.is_empty?
125
141
  end
142
+
126
143
  alias blank? empty?
127
144
 
128
145
  # Computes the geometric center of a geometry, or equivalently, the center
@@ -142,10 +159,16 @@ module Charta
142
159
 
143
160
  def convert_to(new_type)
144
161
  case new_type
145
- when type then self
146
- when :multi_point then flatten_multi(:point)
147
- when :multi_line_string then flatten_multi(:line_string)
148
- when :multi_polygon then flatten_multi(:polygon)
162
+ when type then
163
+ self
164
+ when :multi_point then
165
+ flatten_multi(:point)
166
+ when :multi_line_string then
167
+ flatten_multi(:line_string)
168
+ when :multi_polygon then
169
+ flatten_multi(:polygon)
170
+ else
171
+ self
149
172
  end
150
173
  end
151
174
 
@@ -196,6 +219,7 @@ module Charta
196
219
  other_geometry = Charta.new_geometry(other).transform(srid)
197
220
  feature.union(other_geometry.feature)
198
221
  end
222
+
199
223
  alias + merge
200
224
 
201
225
  def intersection(other)
@@ -203,10 +227,16 @@ module Charta
203
227
  feature.intersection(other_geometry.feature)
204
228
  end
205
229
 
230
+ def intersects?(other)
231
+ other_geometry = Charta.new_geometry(other).transform(srid)
232
+ feature.intersects?(other_geometry.feature)
233
+ end
234
+
206
235
  def difference(other)
207
236
  other_geometry = Charta.new_geometry(other).transform(srid)
208
237
  feature.difference(other_geometry.feature)
209
238
  end
239
+
210
240
  alias - difference
211
241
 
212
242
  def bounding_box
@@ -288,52 +318,52 @@ module Charta
288
318
 
289
319
  private
290
320
 
291
- def geos_factory(srid)
292
- RGeo::Geos.factory(
293
- srid: srid,
294
- wkt_generator: {
295
- type_format: :ewkt,
296
- emit_ewkt_srid: true,
297
- convert_case: :upper
298
- },
299
- wkt_parser: {
300
- support_ewkt: true
301
- },
302
- wkb_generator: {
303
- type_format: :ewkb,
304
- emit_ewkb_srid: true,
305
- hex_format: true
306
- },
307
- wkb_parser: {
308
- support_ewkb: true
309
- }
310
- )
311
- end
321
+ def geos_factory(srid)
322
+ RGeo::Geos.factory(
323
+ srid: srid,
324
+ wkt_generator: {
325
+ type_format: :ewkt,
326
+ emit_ewkt_srid: true,
327
+ convert_case: :upper
328
+ },
329
+ wkt_parser: {
330
+ support_ewkt: true
331
+ },
332
+ wkb_generator: {
333
+ type_format: :ewkb,
334
+ emit_ewkb_srid: true,
335
+ hex_format: true
336
+ },
337
+ wkb_parser: {
338
+ support_ewkb: true
339
+ }
340
+ )
341
+ end
312
342
 
313
- def projected_factory(srid)
314
- proj4 = '+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs'
315
- RGeo::Geographic.projected_factory(
316
- srid: srid,
317
- wkt_generator: {
318
- type_format: :ewkt,
319
- emit_ewkt_srid: true,
320
- convert_case: :upper
321
- },
322
- wkt_parser: {
323
- support_ewkt: true
324
- },
325
- wkb_generator: {
326
- type_format: :ewkb,
327
- emit_ewkb_srid: true,
328
- hex_format: true
329
- },
330
- wkb_parser: {
331
- support_ewkb: true
332
- },
333
- projection_srid: 6933,
334
- projection_proj4: proj4
335
- )
336
- end
343
+ def projected_factory(srid)
344
+ proj4 = '+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs'
345
+ RGeo::Geographic.projected_factory(
346
+ srid: srid,
347
+ wkt_generator: {
348
+ type_format: :ewkt,
349
+ emit_ewkt_srid: true,
350
+ convert_case: :upper
351
+ },
352
+ wkt_parser: {
353
+ support_ewkt: true
354
+ },
355
+ wkb_generator: {
356
+ type_format: :ewkb,
357
+ emit_ewkb_srid: true,
358
+ hex_format: true
359
+ },
360
+ wkb_parser: {
361
+ support_ewkb: true
362
+ },
363
+ projection_srid: 6933,
364
+ projection_proj4: proj4
365
+ )
366
+ end
337
367
  end
338
368
  end
339
369
  end
@@ -1,3 +1,3 @@
1
1
  module Charta
2
- VERSION = '0.1.15'.freeze
2
+ VERSION = '0.1.16'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: charta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ version: 0.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brice TEXIER
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-10 00:00:00.000000000 Z
11
+ date: 2020-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -122,7 +122,7 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
- description:
125
+ description:
126
126
  email:
127
127
  - brice@ekylibre.com
128
128
  executables: []
@@ -159,7 +159,7 @@ homepage: https://github.com/ekylibre/charta
159
159
  licenses:
160
160
  - MIT
161
161
  metadata: {}
162
- post_install_message:
162
+ post_install_message:
163
163
  rdoc_options: []
164
164
  require_paths:
165
165
  - lib
@@ -174,8 +174,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
174
  - !ruby/object:Gem::Version
175
175
  version: '0'
176
176
  requirements: []
177
- rubygems_version: 3.0.1
178
- signing_key:
177
+ rubygems_version: 3.0.3
178
+ signing_key:
179
179
  specification_version: 4
180
180
  summary: Simple tool over geos and co
181
181
  test_files: []