georuby 1.9.8 → 1.9.9
Sign up to get free protection for your applications and to get access to all the features.
- 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
|