georuby 1.9.8 → 1.9.9
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.
- data/README.rdoc +13 -2
- data/lib/geo_ruby.rb +6 -5
- data/lib/geo_ruby/simple_features/circle.rb +57 -0
- data/lib/geo_ruby/simple_features/geometry_collection.rb +1 -1
- data/lib/geo_ruby/simple_features/point.rb +10 -7
- data/lib/geo_ruby/version.rb +1 -1
- data/spec/geo_ruby/simple_features/circle_spec.rb +16 -0
- data/spec/geo_ruby/simple_features/point_spec.rb +58 -55
- metadata +44 -8
- data/lib/geo_ruby/simple_features/curve.rb +0 -10
data/README.rdoc
CHANGED
@@ -30,15 +30,26 @@ They can be in 2D, 3DZ, 3DM, and 4D.
|
|
30
30
|
|
31
31
|
On top of this an Envelope class is available, to contain the bounding box of a geometry.
|
32
32
|
|
33
|
+
|
33
34
|
== Installation
|
34
35
|
|
35
36
|
To install the latest version, just type:
|
36
37
|
|
37
|
-
|
38
|
+
gem install georuby
|
39
|
+
|
38
40
|
|
39
41
|
Or include on your projects`s Gemfile:
|
40
42
|
|
41
|
-
|
43
|
+
gem 'georuby'
|
44
|
+
|
45
|
+
|
46
|
+
Optional, require if you need support to:
|
47
|
+
|
48
|
+
require 'geo_ruby/shp4r/shp'
|
49
|
+
require 'geo_ruby/gpx4r/gpx'
|
50
|
+
require 'geo_ruby/geojson'
|
51
|
+
require 'geo_ruby/georss'
|
52
|
+
require 'geo_ruby/kml'
|
42
53
|
|
43
54
|
|
44
55
|
== Use
|
data/lib/geo_ruby.rb
CHANGED
@@ -8,6 +8,7 @@ require 'geo_ruby/simple_features/geometry'
|
|
8
8
|
require 'geo_ruby/simple_features/point'
|
9
9
|
require 'geo_ruby/simple_features/line_string'
|
10
10
|
require 'geo_ruby/simple_features/linear_ring'
|
11
|
+
require 'geo_ruby/simple_features/circle'
|
11
12
|
require 'geo_ruby/simple_features/polygon'
|
12
13
|
require 'geo_ruby/simple_features/multi_point'
|
13
14
|
require 'geo_ruby/simple_features/multi_line_string'
|
@@ -17,8 +18,8 @@ require 'geo_ruby/simple_features/envelope'
|
|
17
18
|
require 'geo_ruby/simple_features/geometry_factory'
|
18
19
|
|
19
20
|
# Require if you need
|
20
|
-
require 'geo_ruby/shp4r/shp'
|
21
|
-
require 'geo_ruby/gpx4r/gpx'
|
22
|
-
require 'geo_ruby/geojson'
|
23
|
-
require 'geo_ruby/georss'
|
24
|
-
require 'geo_ruby/kml'
|
21
|
+
# require 'geo_ruby/shp4r/shp'
|
22
|
+
# require 'geo_ruby/gpx4r/gpx'
|
23
|
+
# require 'geo_ruby/geojson'
|
24
|
+
# require 'geo_ruby/georss'
|
25
|
+
# require 'geo_ruby/kml'
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module GeoRuby
|
2
|
+
module SimpleFeatures
|
3
|
+
#Represents a point. It is in 3D if the Z coordinate is not +nil+.
|
4
|
+
class Circle < Geometry
|
5
|
+
attr_accessor :radius, :center
|
6
|
+
alias :r :radius
|
7
|
+
|
8
|
+
def initialize(srid = DEFAULT_SRID, with_z = false, with_m = false)
|
9
|
+
super(srid, with_z, with_m)
|
10
|
+
end
|
11
|
+
|
12
|
+
def bounding_box
|
13
|
+
[Point.from_x_y(@center.x - @r, @center.y - @r),
|
14
|
+
Point.from_x_y(@center.x + @r, @center.y + @r)]
|
15
|
+
end
|
16
|
+
|
17
|
+
def m_range
|
18
|
+
raise NotImplementedError
|
19
|
+
end
|
20
|
+
|
21
|
+
def ==(other)
|
22
|
+
return false unless other.is_a?(Circle)
|
23
|
+
@center == other.center and @radius == other.radius
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_json(options = {})
|
27
|
+
{:type => 'Circle',
|
28
|
+
:coordinates => @center.to_coordinates,
|
29
|
+
:radius => @radius}.to_json(options)
|
30
|
+
end
|
31
|
+
alias :as_geojson :to_json
|
32
|
+
|
33
|
+
def contains_point?(point)
|
34
|
+
dist = Mongoid::Spacial.distance(@center.to_coordinates,
|
35
|
+
point.to_coordinates, :spherical => true, :unit => :m)
|
36
|
+
dist <= @radius
|
37
|
+
end
|
38
|
+
|
39
|
+
class << self
|
40
|
+
def from_x_y_r(x, y, r, srid = DEFAULT_SRID)
|
41
|
+
circle = new(srid)
|
42
|
+
circle.center = Point.from_x_y(x, y, srid)
|
43
|
+
circle.radius = r
|
44
|
+
circle
|
45
|
+
end
|
46
|
+
|
47
|
+
def from_coordinates(center, r, srid = DEFAULT_SRID)
|
48
|
+
circle = new(srid)
|
49
|
+
circle.center = Point.from_coordinates(center)
|
50
|
+
circle.radius = r
|
51
|
+
circle
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -18,7 +18,7 @@ module GeoRuby
|
|
18
18
|
|
19
19
|
#Bounding box in 2D/3D. Returns an array of 2 points
|
20
20
|
def bounding_box
|
21
|
-
max_x, min_x, max_y, min_y = -Float::MAX, Float::MAX, -Float::MAX, Float::MAX
|
21
|
+
max_x, min_x, max_y, min_y = -Float::MAX, Float::MAX, -Float::MAX, Float::MAX
|
22
22
|
if with_z
|
23
23
|
max_z, min_z = -Float::MAX, Float::MAX
|
24
24
|
each do |geometry|
|
@@ -117,6 +117,7 @@ module GeoRuby
|
|
117
117
|
|
118
118
|
dot = a * c + b * d
|
119
119
|
len = c * c + d * d
|
120
|
+
return 0.0 if len.zero?
|
120
121
|
res = dot / len
|
121
122
|
|
122
123
|
xx, yy = if res < 0
|
@@ -307,7 +308,7 @@ module GeoRuby
|
|
307
308
|
as_json(options).to_json(options)
|
308
309
|
end
|
309
310
|
alias :as_geojson :to_json
|
310
|
-
|
311
|
+
|
311
312
|
#creates a point from an array of coordinates
|
312
313
|
def self.from_coordinates(coords,srid=DEFAULT_SRID,with_z=false,with_m=false)
|
313
314
|
if ! (with_z or with_m)
|
@@ -322,26 +323,26 @@ module GeoRuby
|
|
322
323
|
end
|
323
324
|
|
324
325
|
#creates a point from the X and Y coordinates
|
325
|
-
def self.from_x_y(x,y,srid=DEFAULT_SRID)
|
326
|
+
def self.from_x_y(x, y, srid=DEFAULT_SRID)
|
326
327
|
point= new(srid)
|
327
328
|
point.set_x_y(x,y)
|
328
329
|
end
|
329
330
|
|
330
331
|
#creates a point from the X, Y and Z coordinates
|
331
|
-
def self.from_x_y_z(x,y,z,srid=DEFAULT_SRID)
|
332
|
+
def self.from_x_y_z(x, y, z, srid=DEFAULT_SRID)
|
332
333
|
point= new(srid,true)
|
333
334
|
point.set_x_y_z(x,y,z)
|
334
335
|
end
|
335
336
|
|
336
337
|
#creates a point from the X, Y and M coordinates
|
337
|
-
def self.from_x_y_m(x,y,m,srid=DEFAULT_SRID)
|
338
|
+
def self.from_x_y_m(x, y, m, srid=DEFAULT_SRID)
|
338
339
|
point= new(srid,false,true)
|
339
340
|
point.m=m
|
340
341
|
point.set_x_y(x,y)
|
341
342
|
end
|
342
343
|
|
343
344
|
#creates a point from the X, Y, Z and M coordinates
|
344
|
-
def self.from_x_y_z_m(x,y,z,m,srid=DEFAULT_SRID)
|
345
|
+
def self.from_x_y_z_m(x, y, z, m, srid=DEFAULT_SRID)
|
345
346
|
point= new(srid,true,true)
|
346
347
|
point.m=m
|
347
348
|
point.set_x_y_z(x,y,z)
|
@@ -349,7 +350,7 @@ module GeoRuby
|
|
349
350
|
|
350
351
|
#creates a point using polar coordinates
|
351
352
|
#r and theta(degrees)
|
352
|
-
def self.from_r_t(r,t,srid=DEFAULT_SRID)
|
353
|
+
def self.from_r_t(r, t, srid=DEFAULT_SRID)
|
353
354
|
t *= DEG2RAD
|
354
355
|
x = r * Math.cos(t)
|
355
356
|
y = r * Math.sin(t)
|
@@ -358,7 +359,7 @@ module GeoRuby
|
|
358
359
|
end
|
359
360
|
|
360
361
|
#creates a point using coordinates like 22`34 23.45N
|
361
|
-
def self.from_latlong(lat,lon,srid=DEFAULT_SRID)
|
362
|
+
def self.from_latlong(lat, lon, srid=DEFAULT_SRID)
|
362
363
|
p = [lat,lon].map do |l|
|
363
364
|
sig, deg, min, sec, cen = l.scan(/(-)?(\d{1,2})\D*(\d{2})\D*(\d{2})(\D*(\d{1,3}))?/).flatten
|
364
365
|
sig = true if l =~ /W|S/
|
@@ -372,7 +373,9 @@ module GeoRuby
|
|
372
373
|
#aliasing the constructors in case you want to use lat/lon instead of y/x
|
373
374
|
class << self
|
374
375
|
alias :xy :from_x_y
|
376
|
+
alias :from_xy :from_x_y
|
375
377
|
alias :xyz :from_x_y_z
|
378
|
+
alias :from_xyz :from_x_y_z
|
376
379
|
alias :from_lon_lat_z :from_x_y_z
|
377
380
|
alias :from_lon_lat :from_x_y
|
378
381
|
alias :from_lon_lat_z :from_x_y_z
|
data/lib/geo_ruby/version.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
3
|
+
|
4
|
+
describe Circle do
|
5
|
+
|
6
|
+
it "should instantiate" do
|
7
|
+
Circle.new.should be_kind_of Geometry
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
describe "Instance" do
|
12
|
+
let(:circle) { Circle.new(4326) }
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
end
|
@@ -2,21 +2,19 @@
|
|
2
2
|
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
3
3
|
|
4
4
|
describe Point do
|
5
|
-
|
6
|
-
@point = Point.new(4326)
|
7
|
-
end
|
5
|
+
let(:point) { Point.new(4326) }
|
8
6
|
|
9
7
|
it "should instantiatember" do
|
10
|
-
violated unless
|
11
|
-
|
8
|
+
violated unless point
|
9
|
+
point.should be_instance_of(Point)
|
12
10
|
end
|
13
11
|
|
14
12
|
it "should have a nice matcher" do
|
15
|
-
|
13
|
+
point.should be_a_point
|
16
14
|
end
|
17
15
|
|
18
16
|
it "should have a very nice matcher" do
|
19
|
-
|
17
|
+
point.should be_a_point(0.0, 0.0)
|
20
18
|
end
|
21
19
|
|
22
20
|
it "should have a very nice matcher" do
|
@@ -34,25 +32,25 @@ describe Point do
|
|
34
32
|
end
|
35
33
|
|
36
34
|
it "should have binary_geometry_type 2" do
|
37
|
-
|
35
|
+
point.binary_geometry_type.should eql(1)
|
38
36
|
end
|
39
37
|
|
40
38
|
it "should have the correct srid" do
|
41
|
-
|
39
|
+
point.srid.should eql(4326)
|
42
40
|
end
|
43
41
|
|
44
42
|
it "should not have z or m" do
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
43
|
+
point.with_z.should be_false
|
44
|
+
point.should_not be_with_z
|
45
|
+
point.with_m.should be_false
|
46
|
+
point.should_not be_with_m
|
49
47
|
end
|
50
48
|
|
51
49
|
it "should set params to 0.0" do
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
50
|
+
point.x.should eql(0.0)
|
51
|
+
point.y.should eql(0.0)
|
52
|
+
point.z.should eql(0.0)
|
53
|
+
point.m.should eql(0.0)
|
56
54
|
end
|
57
55
|
|
58
56
|
it "should compare ok" do
|
@@ -86,6 +84,13 @@ describe Point do
|
|
86
84
|
point.z.should eql(0.0)
|
87
85
|
end
|
88
86
|
|
87
|
+
it "should instantiate a 2d easily" do
|
88
|
+
point = Point.xy(10,20,123)
|
89
|
+
point.x.should eql(10)
|
90
|
+
point.y.should eql(20)
|
91
|
+
point.srid.should eql(123)
|
92
|
+
end
|
93
|
+
|
89
94
|
it "should instantiate a 3d point" do
|
90
95
|
point = Point.from_x_y_z(-10,-20,-30)
|
91
96
|
point.x.should eql(-10)
|
@@ -203,101 +208,99 @@ describe Point do
|
|
203
208
|
|
204
209
|
describe " > Distance & Bearing" do
|
205
210
|
|
206
|
-
|
207
|
-
|
208
|
-
@p2 = Point.from_x_y(2,2)
|
209
|
-
end
|
211
|
+
let(:p1) { Point.from_x_y(1,1) }
|
212
|
+
let(:p2) { Point.from_x_y(2,2) }
|
210
213
|
|
211
214
|
it "and a 3th grade child should calculate euclidian distance" do
|
212
|
-
|
215
|
+
p1.euclidian_distance(p2).
|
213
216
|
should be_within(0.00000001).of(1.4142135623731)
|
214
217
|
end
|
215
218
|
|
216
219
|
it "should calculate spherical distance" do
|
217
|
-
|
220
|
+
p1.spherical_distance(p2).
|
218
221
|
should be_within(0.00000001).of(157225.358003181)
|
219
222
|
end
|
220
223
|
|
221
224
|
it "should calculate ellipsoidal distance" do
|
222
|
-
|
225
|
+
p1.ellipsoidal_distance(p2).
|
223
226
|
should be_within(0.00000001).of(156876.149400742)
|
224
227
|
end
|
225
228
|
|
226
229
|
describe "Orthogonal Distance" do
|
227
|
-
|
228
|
-
|
229
|
-
@line2 = LineString.from_coordinates([[1,1],[1,2]], 4326)
|
230
|
-
end
|
230
|
+
let(:line) { LineString.from_coordinates([[0,0],[1,3]], 4326) }
|
231
|
+
let(:line2) { LineString.from_coordinates([[1,1],[1,2]], 4326) }
|
231
232
|
|
232
233
|
it "should calcula orthogonal distance from a line (90 deg)" do
|
233
|
-
|
234
|
+
p1.orthogonal_distance(line).should be_within(0.001).of(1.414)
|
234
235
|
end
|
235
236
|
|
236
237
|
it "should calcula orthogonal distance very close..." do
|
237
|
-
|
238
|
+
p1.orthogonal_distance(line2).should be_zero
|
238
239
|
end
|
239
240
|
|
240
241
|
it "should calcula orthogonal distance from a line (90 deg)" do
|
241
|
-
|
242
|
+
p2.orthogonal_distance(line).should be_within(0.001).of(2.828)
|
242
243
|
end
|
243
244
|
|
244
245
|
it "should calcula orthogonal distance from a line (0 deg)" do
|
245
|
-
|
246
|
+
p2.orthogonal_distance(line2).should be_within(0.1).of(1.0)
|
246
247
|
end
|
247
248
|
|
248
249
|
it "should calcula orthogonal distance from a line (0 deg)" do
|
249
|
-
|
250
|
+
p2.orthogonal_distance(line2).should be_within(0.1).of(1.0)
|
250
251
|
end
|
251
252
|
|
252
253
|
end
|
253
254
|
|
254
255
|
it "should calculate the bearing from apoint to another in degrees" do
|
255
|
-
|
256
|
+
p1.bearing_to(p2).should be_within(0.01).of(45.0)
|
256
257
|
end
|
257
258
|
|
258
259
|
it "should calculate the bearing from apoint to another in degrees" do
|
259
260
|
p3 = Point.from_x_y(1,-1)
|
260
|
-
|
261
|
+
p1.bearing_to(p3).should be_within(0.01).of(180.0)
|
261
262
|
end
|
262
263
|
|
263
264
|
it "should calculate the bearing from apoint to another in degrees" do
|
264
265
|
p3 = Point.from_x_y(-1,-1)
|
265
|
-
|
266
|
+
p1.bearing_to(p3).should be_within(0.01).of(225.0)
|
266
267
|
end
|
267
268
|
|
268
269
|
it "should calculate the bearing from apoint to another in degrees" do
|
269
270
|
p3 = Point.from_x_y(-1,1)
|
270
|
-
|
271
|
+
p1.bearing_to(p3).should be_within(0.01).of(270.0)
|
271
272
|
end
|
272
273
|
|
273
274
|
it "should calculate the bearing from apoint to another in degrees" do
|
274
275
|
p3 = Point.from_x_y(2,-1)
|
275
|
-
|
276
|
+
p1.bearing_to(p3).should be_within(0.0001).of(153.4349488)
|
276
277
|
end
|
277
278
|
|
278
279
|
it "should calculate a clone point bearing to 0" do
|
279
|
-
|
280
|
+
p1.bearing_to(p1).should eql(0)
|
280
281
|
end
|
281
282
|
|
282
283
|
it "should calculate the bearing from apoint to another in degrees" do
|
283
|
-
|
284
|
+
p1.bearing_text(p2).should eql(:ne)
|
284
285
|
end
|
285
286
|
|
286
287
|
it "should calculate the bearing from apoint to another in degrees" do
|
287
288
|
p3 = Point.from_x_y(-1,1)
|
288
|
-
|
289
|
+
p1.bearing_text(p3).should eql(:w)
|
289
290
|
end
|
290
291
|
|
291
292
|
end
|
292
293
|
|
293
294
|
describe "> Export Formats" do
|
294
295
|
|
295
|
-
|
296
|
-
|
296
|
+
let(:point) { Point.from_x_y( -11.2431, 32.3141 ) }
|
297
|
+
|
298
|
+
it "should print out as array" do
|
299
|
+
|
297
300
|
end
|
298
301
|
|
299
302
|
it "should print nicely" do
|
300
|
-
|
303
|
+
point.text_representation.should eql("-11.2431 32.3141")
|
301
304
|
end
|
302
305
|
|
303
306
|
it "should printoout as binary" do
|
@@ -319,36 +322,36 @@ describe Point do
|
|
319
322
|
end
|
320
323
|
|
321
324
|
it "should have a nice bounding box" do
|
322
|
-
|
323
|
-
|
324
|
-
point.x.should eql(
|
325
|
-
point.y.should eql(
|
325
|
+
point.should have(2).bounding_box
|
326
|
+
point.bounding_box.each do |point|
|
327
|
+
point.x.should eql(point.x)
|
328
|
+
point.y.should eql(point.y)
|
326
329
|
end
|
327
330
|
end
|
328
331
|
|
329
332
|
it "should print as kml too" do
|
330
|
-
|
333
|
+
point.kml_representation.should eql("<Point>\n<coordinates>-11.2431,32.3141</coordinates>\n</Point>\n")
|
331
334
|
end
|
332
335
|
|
333
336
|
it "should print as georss" do
|
334
|
-
|
337
|
+
point.georss_simple_representation(:georss_ns => 'hey').should eql("<hey:point>32.3141 -11.2431</hey:point>\n")
|
335
338
|
end
|
336
339
|
|
337
340
|
it "should print r (polar coords)" do
|
338
|
-
|
341
|
+
point.r.should be_within(0.000001).of(34.214154)
|
339
342
|
end
|
340
343
|
|
341
344
|
it "should print theta as degrees" do
|
342
|
-
|
345
|
+
point.theta_deg.should be_within(0.0001).of(289.184406352127)
|
343
346
|
end
|
344
347
|
|
345
348
|
it "should print theta as radians" do
|
346
|
-
|
349
|
+
point.theta_rad.should be_within(0.0001).of(5.04722003626982)
|
347
350
|
end
|
348
351
|
|
349
352
|
it "should output as polar" do
|
350
|
-
|
351
|
-
|
353
|
+
point.as_polar.should be_instance_of(Array)
|
354
|
+
point.should have(2).as_polar #.length.should eql(2)
|
352
355
|
end
|
353
356
|
|
354
357
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: georuby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,8 +12,24 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2012-
|
15
|
+
date: 2012-10-20 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: nokogiri
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ~>
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 1.5.5
|
25
|
+
type: :development
|
26
|
+
prerelease: false
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.5.5
|
17
33
|
- !ruby/object:Gem::Dependency
|
18
34
|
name: dbf
|
19
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -21,7 +37,23 @@ dependencies:
|
|
21
37
|
requirements:
|
22
38
|
- - ! '>='
|
23
39
|
- !ruby/object:Gem::Version
|
24
|
-
version: 1.
|
40
|
+
version: 1.7.0
|
41
|
+
type: :development
|
42
|
+
prerelease: false
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.7.0
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: json
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.6.5
|
25
57
|
type: :development
|
26
58
|
prerelease: false
|
27
59
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +61,7 @@ dependencies:
|
|
29
61
|
requirements:
|
30
62
|
- - ! '>='
|
31
63
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.
|
64
|
+
version: 1.6.5
|
33
65
|
- !ruby/object:Gem::Dependency
|
34
66
|
name: rspec
|
35
67
|
requirement: !ruby/object:Gem::Requirement
|
@@ -37,7 +69,7 @@ dependencies:
|
|
37
69
|
requirements:
|
38
70
|
- - ! '>='
|
39
71
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
72
|
+
version: 2.3.0
|
41
73
|
type: :development
|
42
74
|
prerelease: false
|
43
75
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -45,7 +77,7 @@ dependencies:
|
|
45
77
|
requirements:
|
46
78
|
- - ! '>='
|
47
79
|
- !ruby/object:Gem::Version
|
48
|
-
version: 2.
|
80
|
+
version: 2.3.0
|
49
81
|
description: GeoRuby provides geometric data types from the OGC 'Simple Features'
|
50
82
|
specification.
|
51
83
|
email: x@nofxx.com
|
@@ -62,6 +94,7 @@ files:
|
|
62
94
|
- lib/geo_ruby/simple_features/point.rb
|
63
95
|
- lib/geo_ruby/simple_features/multi_point.rb
|
64
96
|
- lib/geo_ruby/simple_features/line_string.rb
|
97
|
+
- lib/geo_ruby/simple_features/circle.rb
|
65
98
|
- lib/geo_ruby/simple_features/multi_polygon.rb
|
66
99
|
- lib/geo_ruby/simple_features/ewkt_parser.rb
|
67
100
|
- lib/geo_ruby/simple_features/helper.rb
|
@@ -70,7 +103,6 @@ files:
|
|
70
103
|
- lib/geo_ruby/simple_features/geometry_collection.rb
|
71
104
|
- lib/geo_ruby/simple_features/multi_line_string.rb
|
72
105
|
- lib/geo_ruby/simple_features/linear_ring.rb
|
73
|
-
- lib/geo_ruby/simple_features/curve.rb
|
74
106
|
- lib/geo_ruby/simple_features/polygon.rb
|
75
107
|
- lib/geo_ruby/simple_features/geometry.rb
|
76
108
|
- lib/geo_ruby/simple_features/ewkb_parser.rb
|
@@ -114,6 +146,7 @@ files:
|
|
114
146
|
- spec/geo_ruby/simple_features/geometry_collection_spec.rb
|
115
147
|
- spec/geo_ruby/simple_features/envelope_spec.rb
|
116
148
|
- spec/geo_ruby/simple_features/geometry_factory_spec.rb
|
149
|
+
- spec/geo_ruby/simple_features/circle_spec.rb
|
117
150
|
- spec/geo_ruby/simple_features/multi_polygon_spec.rb
|
118
151
|
- spec/geo_ruby/simple_features/polygon_spec.rb
|
119
152
|
- spec/geo_ruby/simple_features/point_spec.rb
|
@@ -138,13 +171,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
138
171
|
version: '0'
|
139
172
|
segments:
|
140
173
|
- 0
|
141
|
-
hash:
|
174
|
+
hash: 2815257623280011863
|
142
175
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
176
|
none: false
|
144
177
|
requirements:
|
145
178
|
- - ! '>='
|
146
179
|
- !ruby/object:Gem::Version
|
147
180
|
version: '0'
|
181
|
+
segments:
|
182
|
+
- 0
|
183
|
+
hash: 2815257623280011863
|
148
184
|
requirements: []
|
149
185
|
rubyforge_project:
|
150
186
|
rubygems_version: 1.8.23
|