georuby 2.2.1 → 2.3.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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -8
  3. data/lib/geo_ruby/geojson.rb +8 -6
  4. data/lib/geo_ruby/simple_features/geometry.rb +11 -0
  5. data/lib/geo_ruby/simple_features/geometry_collection.rb +1 -9
  6. data/lib/geo_ruby/simple_features/line_string.rb +8 -13
  7. data/lib/geo_ruby/simple_features/multi_line_string.rb +2 -10
  8. data/lib/geo_ruby/simple_features/multi_point.rb +1 -9
  9. data/lib/geo_ruby/simple_features/multi_polygon.rb +0 -7
  10. data/lib/geo_ruby/simple_features/point.rb +11 -14
  11. data/lib/geo_ruby/simple_features/polygon.rb +1 -9
  12. data/lib/geo_ruby/version.rb +1 -1
  13. data/spec/geo_ruby/geojson_spec.rb +25 -25
  14. data/spec/geo_ruby/georss_spec.rb +63 -63
  15. data/spec/geo_ruby/gpx4r/gpx_spec.rb +34 -34
  16. data/spec/geo_ruby/kml_spec.rb +27 -27
  17. data/spec/geo_ruby/shp4r/shp_spec.rb +46 -46
  18. data/spec/geo_ruby/simple_features/circle_spec.rb +1 -1
  19. data/spec/geo_ruby/simple_features/envelope_spec.rb +15 -15
  20. data/spec/geo_ruby/simple_features/ewkb_parser_spec.rb +56 -56
  21. data/spec/geo_ruby/simple_features/ewkt_parser_spec.rb +68 -68
  22. data/spec/geo_ruby/simple_features/geometry_collection_spec.rb +18 -18
  23. data/spec/geo_ruby/simple_features/geometry_spec.rb +10 -10
  24. data/spec/geo_ruby/simple_features/line_string_spec.rb +80 -71
  25. data/spec/geo_ruby/simple_features/linear_ring_spec.rb +3 -3
  26. data/spec/geo_ruby/simple_features/multi_line_string_spec.rb +15 -15
  27. data/spec/geo_ruby/simple_features/multi_point_spec.rb +10 -10
  28. data/spec/geo_ruby/simple_features/multi_polygon_spec.rb +13 -13
  29. data/spec/geo_ruby/simple_features/point_spec.rb +139 -131
  30. data/spec/geo_ruby/simple_features/polygon_spec.rb +36 -36
  31. data/spec/geo_ruby_spec.rb +3 -3
  32. data/spec/spec_helper.rb +4 -4
  33. metadata +52 -52
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1df3941993b62765a00e7f70707184ef283c189a
4
- data.tar.gz: 14626bcff00c29e6ac59747d54501e2d0e5b4be7
3
+ metadata.gz: 1f642a6426275ec6a200705f9314ac60b783ec66
4
+ data.tar.gz: ce8ae36da2895144752587caa3c0ddc9ad190a9b
5
5
  SHA512:
6
- metadata.gz: 98448b91aa33033dc06db092a68e72d1e04a0dcad9c895cd34953c78acc9da96c28adbb74d3c951c835a98c2f01cfaa658d1f9028f127e282f05bc89c7dc7ff5
7
- data.tar.gz: 2bba7b1eed46c75f3871508f82b4015803eef2617d1d474fcfe4dd3c7830c054d9a88c9f6e5b5e5121cb43da9129d376366a0d94c1ae0dc542d72cad404c8c78
6
+ metadata.gz: eaa948c90a6d82850fd9aa0f571ea947b1cbc77d049faf6db86b855c93eea37e5e8dc3a5730ebcc8d8ee399ed73f81fc92dc20615e5e42e93ca392065969a688
7
+ data.tar.gz: 013276cf42be227087ae1ef62b54b8d25bddb1d91da560ac617903176482b62f258fcf853f22657facad18e974ccd6317665b34584f3cb47f02efb541fc43730
data/README.md CHANGED
@@ -132,7 +132,7 @@ GeoRuby does not allow the modification of the schema (it will probably be done
132
132
 
133
133
  Here is an example of how to create a new Shapefile with 2 fields :
134
134
 
135
- shpfile = ShpFile.create('hello.shp',ShpType::POINT,[Dbf::Field.new("Hoyoyo","C",10),Dbf::Field.new("Boyoul","N",10,0)])
135
+ shpfile = ShpFile.create('hello.shp',ShpType::POINT,[DBF::Field.new("Hoyoyo","C",10), DBF::Field.new("Boyoul","N",10,0)])
136
136
 
137
137
  The file is then open for reading and writing.
138
138
 
@@ -171,10 +171,11 @@ Basic GeoJSON support has been implemented per v1.0 of the {spec}[http://geojson
171
171
 
172
172
  USAGE:
173
173
 
174
- input - GeoRuby::SimpleFeatures::Geometry.from_geojson(geojson_string)
175
- output - call #as_geojson or #to_json on any SimpleFeature Geometry instance
174
+ input - `GeoRuby::SimpleFeatures::Geometry.from_geojson(geojson_string)`
175
+ output - call `#as_geojson` or `#to_json` on any SimpleFeature Geometry instance
176
176
 
177
177
  TODO:
178
+
178
179
  * Refactor to support extremely large GeoJSON input streams / files. Currently
179
180
  the entire GeoJSON representation must be loaded into memory as a String
180
181
  * Improve srid/crs support on input and add support on output
@@ -184,29 +185,33 @@ TODO:
184
185
  GeoJSON support implemented by {Marcus Mateus}[http://github.com/marcusmateus] and released courtesy {SimpliTex}[http://simplitex.com].
185
186
 
186
187
 
187
- === Extra Features
188
+ ### Extra Features
188
189
 
189
190
  - Writing of ESRI shapefiles
190
191
  - Reading of ESRI shapefiles
191
192
  - Tool to import spatial features in MySQL and PostGIS from a SHP file
192
193
 
193
194
 
194
- === Acknowledgement
195
+ ### Acknowledgement
195
196
 
196
197
  The SHP reading part uses the DBF library (http://rubyforge.org/projects/dbf/) by Keith Morrison (http://infused.org).
197
198
  Thanks also to Pramukta Kumar and Pete Schwamb for their contributions.
198
199
 
199
200
 
200
- == Support (Original GeoRuby gem)
201
+ ## Support (Original GeoRuby gem)
201
202
 
202
203
  Any questions, enhancement proposals, bug notifications or corrections
203
- can be sent to mailto:guilhem.vellut@gmail.com.
204
+ can be sent to guilhem.vellut@gmail.com.
204
205
 
205
206
 
206
- === Coming in the next versions
207
+ ### Coming in the next versions
207
208
 
208
209
  - Schema modification of existing shapefiles
209
210
  - More error reporting when writing shapefiles
210
211
  - More tests on writing shapefiles ; tests on real-world shapefiles
211
212
  - Better shp2sql import tool
212
213
  - Documentation
214
+
215
+
216
+ [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/nofxx/georuby/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
217
+
@@ -8,7 +8,7 @@ rescue LoadError
8
8
  end
9
9
 
10
10
  module GeoRuby
11
-
11
+
12
12
  #Raised when an error in the GeoJSON string is detected
13
13
  class GeojsonFormatError < StandardError
14
14
  end
@@ -37,7 +37,7 @@ module GeoRuby
37
37
  output[:geometry] = geometry
38
38
  output[:properties] = properties
39
39
  output[:id] = id unless id.nil?
40
- output.as_json(options)
40
+ output.to_json(options)
41
41
  end
42
42
 
43
43
  def to_json(options = {})
@@ -65,11 +65,11 @@ module GeoRuby
65
65
  true
66
66
  end
67
67
 
68
- def to_json(options = {})
68
+ def as_json(options = {})
69
69
  {:type => 'FeatureCollection',
70
70
  :features => features}.to_json(options)
71
71
  end
72
- alias :as_geojson :to_json
72
+ alias :as_geojson :as_json
73
73
  end
74
74
 
75
75
 
@@ -138,5 +138,7 @@ module GeoRuby
138
138
  end
139
139
  return nil
140
140
  end
141
- end
142
- end
141
+
142
+ end #GeojsonParser
143
+
144
+ end #GeoRuby
@@ -155,6 +155,17 @@ module GeoRuby#:nodoc:
155
155
  kml_representation(options.merge(:id_attr => id_attr, :geom_data => geom_data, :allow_z => allow_z, :fixed_z => fixed_z))
156
156
  end
157
157
 
158
+ # simple geojson representation
159
+ # TODO add CRS / SRID support?
160
+ def to_json(options = {})
161
+ as_json(options).to_json(options)
162
+ end
163
+
164
+ def as_json(options = {})
165
+ # Implemented by each class
166
+ end
167
+ alias :as_geojson :as_json
168
+
158
169
  # Creates a geometry based on a EWKB string. The actual class returned depends of the content of the string passed as argument. Since WKB strings are a subset of EWKB, they are also valid.
159
170
  def self.from_ewkb(ewkb)
160
171
  factory = GeometryFactory::new
@@ -103,17 +103,9 @@ module GeoRuby
103
103
  end
104
104
 
105
105
  def as_json(options = {})
106
- {:type => 'GeometryCollection',
107
- :geometries => self.geometries}
106
+ {:type => 'GeometryCollection', :geometries => self.geometries}
108
107
  end
109
108
 
110
- # simple geojson representation
111
- # TODO add CRS / SRID support?
112
- def to_json(options = {})
113
- as_json(options).to_json(options)
114
- end
115
- alias :as_geojson :to_json
116
-
117
109
  #georss simple representation : outputs only the first geometry of the collection
118
110
  def georss_simple_representation(options)#:nodoc:
119
111
  self[0].georss_simple_representation(options)
@@ -199,21 +199,13 @@ module GeoRuby
199
199
  end
200
200
 
201
201
  def to_coordinates
202
- points.map{|p| p.to_coordinates }
202
+ points.map { |p| p.to_coordinates }
203
203
  end
204
204
 
205
205
  def as_json(options = {})
206
- {:type => 'LineString',
207
- :coordinates => self.to_coordinates}
206
+ {:type => 'LineString', :coordinates => self.to_coordinates}
208
207
  end
209
208
 
210
- # simple geojson representation
211
- # TODO add CRS / SRID support?
212
- def to_json(options = {})
213
- as_json(options).to_json(options)
214
- end
215
- alias :as_geojson :to_json
216
-
217
209
  #Creates a new line string. Accept an array of points as argument
218
210
  def self.from_points(points,srid=DEFAULT_SRID,with_z=false,with_m=false)
219
211
  line_string = new(srid,with_z,with_m)
@@ -227,6 +219,9 @@ module GeoRuby
227
219
  line_string.concat( points.map {|p| Point.from_coordinates(p,srid,with_z,with_m) } )
228
220
  line_string
229
221
  end
230
- end
231
- end
232
- end
222
+
223
+ end #LineString
224
+
225
+ end #SimpleFeatures
226
+
227
+ end #GeoRuby
@@ -32,23 +32,15 @@ module GeoRuby
32
32
  def to_line_string(join = true)
33
33
  LineString.from_points(points)
34
34
  end
35
-
35
+
36
36
  def to_coordinates
37
37
  geometries.map{|ls| ls.to_coordinates}
38
38
  end
39
39
 
40
40
  def as_json(options = {})
41
- {:type => 'MultiLineString',
42
- :coordinates => self.to_coordinates}
41
+ {:type => 'MultiLineString', :coordinates => self.to_coordinates}
43
42
  end
44
43
 
45
- # simple geojson representation
46
- # TODO add CRS / SRID support?
47
- def to_json(options = {})
48
- as_json(options).to_json(options)
49
- end
50
- alias :as_geojson :to_json
51
-
52
44
  #Creates a new multi line string from an array of line strings
53
45
  def self.from_line_strings(line_strings,srid=DEFAULT_SRID,with_z=false,with_m=false)
54
46
  multi_line_string = new(srid,with_z,with_m)
@@ -32,17 +32,9 @@ module GeoRuby
32
32
  end
33
33
 
34
34
  def as_json(options = {})
35
- {:type => 'MultiPoint',
36
- :coordinates => self.to_coordinates}
35
+ {:type => 'MultiPoint', :coordinates => self.to_coordinates}
37
36
  end
38
37
 
39
- # simple geojson representation
40
- # TODO add CRS / SRID support?
41
- def to_json(options = {})
42
- as_json(options).to_json(options)
43
- end
44
- alias :as_geojson :to_json
45
-
46
38
  #Creates a new multi point from an array of points
47
39
  def self.from_points(points,srid= DEFAULT_SRID,with_z=false,with_m=false)
48
40
  multi_point= new(srid,with_z,with_m)
@@ -40,13 +40,6 @@ module GeoRuby
40
40
  :coordinates => self.to_coordinates}
41
41
  end
42
42
 
43
- # simple geojson representation
44
- # TODO add CRS / SRID support?
45
- def to_json(options = {})
46
- as_json(options).to_json(options)
47
- end
48
- alias :as_geojson :to_json
49
-
50
43
  #Creates a multi polygon from an array of polygons
51
44
  def self.from_polygons(polygons,srid=DEFAULT_SRID,with_z=false,with_m=false)
52
45
  multi_polygon = new(srid,with_z,with_m)
@@ -332,6 +332,11 @@ module GeoRuby
332
332
  [r, t]
333
333
  end
334
334
 
335
+ # Outputs the point in json format
336
+ def as_json(options = {})
337
+ {:type => 'Point', :coordinates => self.to_coordinates }
338
+ end
339
+
335
340
  # Invert signal of all coordinates
336
341
  def -@
337
342
  set_x_y_z(-@x, -@y, -@z)
@@ -356,17 +361,6 @@ module GeoRuby
356
361
  [x, y, z]
357
362
  end
358
363
 
359
- def as_json(options = {})
360
- { :type => 'Point', :coordinates => self.to_coordinates }
361
- end
362
-
363
- # Simple geojson representation
364
- # TODO add CRS / SRID support?
365
- def to_json(options = {})
366
- as_json(options).to_json(options)
367
- end
368
- alias :as_geojson :to_json
369
-
370
364
  # Creates a point from an array of coordinates
371
365
  def self.from_coordinates(coords, srid = DEFAULT_SRID, with_z = false, with_m = false)
372
366
  if ! (with_z || with_m)
@@ -441,6 +435,9 @@ module GeoRuby
441
435
  alias :from_lon_lat_z_m :from_x_y_z_m
442
436
  alias :from_rad_tet :from_r_t
443
437
  end
444
- end
445
- end
446
- end
438
+
439
+ end #Point
440
+
441
+ end #SimpleFeatures
442
+
443
+ end #GeoRuby
@@ -140,17 +140,9 @@ module GeoRuby
140
140
  end
141
141
 
142
142
  def as_json(options = {})
143
- {:type => 'Polygon',
144
- :coordinates => self.to_coordinates}
143
+ {:type => 'Polygon', :coordinates => self.to_coordinates }
145
144
  end
146
145
 
147
- # simple geojson representation
148
- # TODO add CRS / SRID support?
149
- def to_json(options = {})
150
- as_json(options).to_json(options)
151
- end
152
- alias :as_geojson :to_json
153
-
154
146
  #creates a new polygon. Accepts an array of linear strings as argument
155
147
  def self.from_linear_rings(linear_rings,srid = DEFAULT_SRID,with_z=false,with_m=false)
156
148
  polygon = new(srid,with_z,with_m)
@@ -1,3 +1,3 @@
1
1
  module GeoRuby
2
- VERSION = '2.2.1'
2
+ VERSION = '2.3.0'
3
3
  end
@@ -12,17 +12,17 @@ describe GeoRuby::GeojsonParser do
12
12
  it "should create a specified GeoRuby::SimpleFeatures::Point" do
13
13
  point_json = %{ { "type": "Point", "coordinates": [100.0, 0.0] } }
14
14
  point = GeoRuby::SimpleFeatures::Geometry.from_geojson(point_json)
15
- point.class.should eql(GeoRuby::SimpleFeatures::Point)
15
+ expect(point.class).to eql(GeoRuby::SimpleFeatures::Point)
16
16
  point_hash = JSON.parse(point_json)
17
- point.to_coordinates.should eql(point_hash['coordinates'])
17
+ expect(point.to_coordinates).to eql(point_hash['coordinates'])
18
18
  end
19
19
 
20
20
  it "should create a specified GeoRuby::SimpleFeatures::LineString" do
21
21
  ls_json = %{ { "type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ]} }
22
22
  line_string = GeoRuby::SimpleFeatures::Geometry.from_geojson(ls_json)
23
- line_string.class.should eql(GeoRuby::SimpleFeatures::LineString)
23
+ expect(line_string.class).to eql(GeoRuby::SimpleFeatures::LineString)
24
24
  ls_hash = JSON.parse(ls_json)
25
- line_string.to_coordinates.should eql(ls_hash['coordinates'])
25
+ expect(line_string.to_coordinates).to eql(ls_hash['coordinates'])
26
26
  end
27
27
 
28
28
  it "should create a specified GeoRuby::SimpleFeatures::Polygon" do
@@ -35,10 +35,10 @@ describe GeoRuby::GeojsonParser do
35
35
  }
36
36
  EOJ
37
37
  polygon = GeoRuby::SimpleFeatures::Geometry.from_geojson(poly_json)
38
- polygon.class.should eql(GeoRuby::SimpleFeatures::Polygon)
39
- polygon.rings.size.should eql(2)
38
+ expect(polygon.class).to eql(GeoRuby::SimpleFeatures::Polygon)
39
+ expect(polygon.rings.size).to eql(2)
40
40
  poly_hash = JSON.parse(poly_json)
41
- polygon.to_coordinates.should eql(poly_hash['coordinates'])
41
+ expect(polygon.to_coordinates).to eql(poly_hash['coordinates'])
42
42
  end
43
43
 
44
44
  it "should create a specified GeoRuby::SimpleFeatures::MultiPoint" do
@@ -48,9 +48,9 @@ describe GeoRuby::GeojsonParser do
48
48
  }
49
49
  EOJ
50
50
  multi_point = GeoRuby::SimpleFeatures::Geometry.from_geojson(mp_json)
51
- multi_point.class.should eql(GeoRuby::SimpleFeatures::MultiPoint)
51
+ expect(multi_point.class).to eql(GeoRuby::SimpleFeatures::MultiPoint)
52
52
  mp_hash = JSON.parse(mp_json)
53
- multi_point.to_coordinates.should eql(mp_hash['coordinates'])
53
+ expect(multi_point.to_coordinates).to eql(mp_hash['coordinates'])
54
54
  end
55
55
 
56
56
  it "should create a specified GeoRuby::SimpleFeatures::MultiLineString" do
@@ -63,9 +63,9 @@ describe GeoRuby::GeojsonParser do
63
63
  }
64
64
  EOJ
65
65
  multi_ls = GeoRuby::SimpleFeatures::Geometry.from_geojson(mls_json)
66
- multi_ls.class.should eql(GeoRuby::SimpleFeatures::MultiLineString)
66
+ expect(multi_ls.class).to eql(GeoRuby::SimpleFeatures::MultiLineString)
67
67
  mls_hash = JSON.parse(mls_json)
68
- multi_ls.to_coordinates.should eql(mls_hash['coordinates'])
68
+ expect(multi_ls.to_coordinates).to eql(mls_hash['coordinates'])
69
69
  end
70
70
 
71
71
  it "should create a specifiead GeoRuby::SimpleFeatures::MultiPolygon" do
@@ -79,9 +79,9 @@ describe GeoRuby::GeojsonParser do
79
79
  }
80
80
  EOJ
81
81
  mpoly = GeoRuby::SimpleFeatures::Geometry.from_geojson(mpoly_json)
82
- mpoly.class.should eql(GeoRuby::SimpleFeatures::MultiPolygon)
82
+ expect(mpoly.class).to eql(GeoRuby::SimpleFeatures::MultiPolygon)
83
83
  mpoly_hash = JSON.parse(mpoly_json)
84
- mpoly.to_coordinates.should eql(mpoly_hash['coordinates'])
84
+ expect(mpoly.to_coordinates).to eql(mpoly_hash['coordinates'])
85
85
  end
86
86
 
87
87
  it "should create a specified GeoRuby::SimpleFeatures::GeometryCollection" do
@@ -98,12 +98,12 @@ describe GeoRuby::GeojsonParser do
98
98
  }
99
99
  EOJ
100
100
  gcol = GeoRuby::SimpleFeatures::Geometry.from_geojson(gcol_json)
101
- gcol.class.should eql(GeoRuby::SimpleFeatures::GeometryCollection)
101
+ expect(gcol.class).to eql(GeoRuby::SimpleFeatures::GeometryCollection)
102
102
  gcol_hash = JSON.parse(gcol_json)
103
103
  gcol.geometries.each_with_index do |g,i|
104
104
  gh = gcol_hash['geometries'][i]
105
- g.class.should eql(GeoRuby::SimpleFeatures.const_get(gh['type']))
106
- g.to_coordinates.should eql(gh['coordinates'])
105
+ expect(g.class).to eql(GeoRuby::SimpleFeatures.const_get(gh['type']))
106
+ expect(g.to_coordinates).to eql(gh['coordinates'])
107
107
  end
108
108
  end
109
109
 
@@ -121,25 +121,25 @@ describe GeoRuby::GeojsonParser do
121
121
  }
122
122
  EOJ
123
123
  f = GeoRuby::SimpleFeatures::Geometry.from_geojson(feature_json)
124
- f.class.should eql(GeoRuby::GeojsonFeature)
124
+ expect(f.class).to eql(GeoRuby::GeojsonFeature)
125
125
  feature_hash = JSON.parse(feature_json)
126
- f.id.should eql(feature_hash['id'])
127
- f.properties.should eql(feature_hash['properties'])
128
- f.geometry.class.should eql(GeoRuby::SimpleFeatures.const_get(feature_hash['geometry']['type']))
129
- f.geometry.to_coordinates.should eql(feature_hash['geometry']['coordinates'])
126
+ expect(f.id).to eql(feature_hash['id'])
127
+ expect(f.properties).to eql(feature_hash['properties'])
128
+ expect(f.geometry.class).to eql(GeoRuby::SimpleFeatures.const_get(feature_hash['geometry']['type']))
129
+ expect(f.geometry.to_coordinates).to eql(feature_hash['geometry']['coordinates'])
130
130
  end
131
131
 
132
132
  it "should create a specified FeatureCollection" do
133
133
  fcol_json = File.read(DATA_DIR + 'feature_collection.json')
134
134
  fcol = GeoRuby::SimpleFeatures::Geometry.from_geojson(fcol_json)
135
- fcol.class.should eql(GeoRuby::GeojsonFeatureCollection)
135
+ expect(fcol.class).to eql(GeoRuby::GeojsonFeatureCollection)
136
136
  fcol_hash = JSON.parse(fcol_json)
137
137
  fcol.features.each_with_index do |f,i|
138
138
  fgh = fcol_hash['features'][i]['geometry']
139
139
  fg = f.geometry
140
- f.properties.should eql(fcol_hash['features'][i]['properties'])
141
- fg.class.should eql(GeoRuby::SimpleFeatures.const_get(fgh['type']))
142
- fg.to_coordinates.should eql(fgh['coordinates'])
140
+ expect(f.properties).to eql(fcol_hash['features'][i]['properties'])
141
+ expect(fg.class).to eql(GeoRuby::SimpleFeatures.const_get(fgh['type']))
142
+ expect(fg.to_coordinates).to eql(fgh['coordinates'])
143
143
  end
144
144
  end
145
145
 
@@ -6,27 +6,27 @@ describe GeoRuby::GeorssParser do
6
6
 
7
7
  it "should parse an rss file" do
8
8
  geo = subject.parse(File.read(RSS_DATA_DIR + "/w3c.xml"))
9
- geo.should be_a GeoRuby::SimpleFeatures::Point
9
+ expect(geo).to be_a GeoRuby::SimpleFeatures::Point
10
10
  end
11
11
 
12
12
  it "test_point_creation" do
13
13
  point = GeoRuby::SimpleFeatures::Point.from_x_y(3,4)
14
14
 
15
- point.as_georss(:dialect => :simple, :elev => 45.7, :featuretypetag => "hoyoyo").gsub("\n","").should eql("<georss:point featuretypetag=\"hoyoyo\" elev=\"45.7\">4 3</georss:point>")
16
- point.as_georss(:dialect => :w3cgeo).gsub("\n","").should eql("<geo:lat>4</geo:lat><geo:long>3</geo:long>")
17
- point.as_georss(:dialect => :gml).gsub("\n","").should eql("<georss:where><gml:Point><gml:pos>4 3</gml:pos></gml:Point></georss:where>")
15
+ expect(point.as_georss(:dialect => :simple, :elev => 45.7, :featuretypetag => "hoyoyo").gsub("\n","")).to eql("<georss:point featuretypetag=\"hoyoyo\" elev=\"45.7\">4 3</georss:point>")
16
+ expect(point.as_georss(:dialect => :w3cgeo).gsub("\n","")).to eql("<geo:lat>4</geo:lat><geo:long>3</geo:long>")
17
+ expect(point.as_georss(:dialect => :gml).gsub("\n","")).to eql("<georss:where><gml:Point><gml:pos>4 3</gml:pos></gml:Point></georss:where>")
18
18
 
19
- point.as_kml(:id => "HOYOYO-42").gsub("\n","").should eql("<Point id=\"HOYOYO-42\"><coordinates>3,4</coordinates></Point>")
19
+ expect(point.as_kml(:id => "HOYOYO-42").gsub("\n","")).to eql("<Point id=\"HOYOYO-42\"><coordinates>3,4</coordinates></Point>")
20
20
  end
21
21
 
22
22
  it "test_line_string" do
23
23
  ls = GeoRuby::SimpleFeatures::LineString.from_points([GeoRuby::SimpleFeatures::Point.from_lon_lat_z(12.4,-45.3,56),GeoRuby::SimpleFeatures::Point.from_lon_lat_z(45.4,41.6,45)],123,true)
24
24
 
25
- ls.as_georss.gsub("\n","").should eql("<georss:line>-45.3 12.4 41.6 45.4</georss:line>")
26
- ls.as_georss(:dialect => :w3cgeo).gsub("\n","").should eql("<geo:lat>-45.3</geo:lat><geo:long>12.4</geo:long>")
27
- ls.as_georss(:dialect => :gml).gsub("\n","").should eql("<georss:where><gml:LineString><gml:posList>-45.3 12.4 41.6 45.4</gml:posList></gml:LineString></georss:where>")
25
+ expect(ls.as_georss.gsub("\n","")).to eql("<georss:line>-45.3 12.4 41.6 45.4</georss:line>")
26
+ expect(ls.as_georss(:dialect => :w3cgeo).gsub("\n","")).to eql("<geo:lat>-45.3</geo:lat><geo:long>12.4</geo:long>")
27
+ expect(ls.as_georss(:dialect => :gml).gsub("\n","")).to eql("<georss:where><gml:LineString><gml:posList>-45.3 12.4 41.6 45.4</gml:posList></gml:LineString></georss:where>")
28
28
 
29
- ls.as_kml(:extrude => 1, :altitude_mode => "absolute").gsub("\n","").should eql("<LineString><extrude>1</extrude><altitudeMode>absolute</altitudeMode><coordinates>12.4,-45.3,56 45.4,41.6,45</coordinates></LineString>")
29
+ expect(ls.as_kml(:extrude => 1, :altitude_mode => "absolute").gsub("\n","")).to eql("<LineString><extrude>1</extrude><altitudeMode>absolute</altitudeMode><coordinates>12.4,-45.3,56 45.4,41.6,45</coordinates></LineString>")
30
30
  end
31
31
 
32
32
  it "test_polygon" do
@@ -34,22 +34,22 @@ describe GeoRuby::GeorssParser do
34
34
  linear_ring2 = GeoRuby::SimpleFeatures::LinearRing.from_coordinates([[2.4,5.3],[5.4,1.4263],[14.46,1.06],[2.4,5.3]],256)
35
35
  polygon = GeoRuby::SimpleFeatures::Polygon.from_linear_rings([linear_ring1,linear_ring2],256)
36
36
 
37
- polygon.as_georss(:georss_ns => "hoyoyo").gsub("\n","").should eql("<hoyoyo:polygon>-45.3 12.4 41.6 45.4 1.0698 4.456 -45.3 12.4</hoyoyo:polygon>")
38
- polygon.as_georss(:dialect => :w3cgeo, :w3cgeo_ns => "bouyoul").gsub("\n","").should eql("<bouyoul:lat>-45.3</bouyoul:lat><bouyoul:long>12.4</bouyoul:long>")
39
- polygon.as_georss(:dialect => :gml).gsub("\n","").should eql("<georss:where><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList>-45.3 12.4 41.6 45.4 1.0698 4.456 -45.3 12.4</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></georss:where>")
37
+ expect(polygon.as_georss(:georss_ns => "hoyoyo").gsub("\n","")).to eql("<hoyoyo:polygon>-45.3 12.4 41.6 45.4 1.0698 4.456 -45.3 12.4</hoyoyo:polygon>")
38
+ expect(polygon.as_georss(:dialect => :w3cgeo, :w3cgeo_ns => "bouyoul").gsub("\n","")).to eql("<bouyoul:lat>-45.3</bouyoul:lat><bouyoul:long>12.4</bouyoul:long>")
39
+ expect(polygon.as_georss(:dialect => :gml).gsub("\n","")).to eql("<georss:where><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList>-45.3 12.4 41.6 45.4 1.0698 4.456 -45.3 12.4</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></georss:where>")
40
40
 
41
- polygon.as_kml.gsub("\n","").should eql("<Polygon><outerBoundaryIs><LinearRing><coordinates>12.4,-45.3 45.4,41.6 4.456,1.0698 12.4,-45.3</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>2.4,5.3 5.4,1.4263 14.46,1.06 2.4,5.3</coordinates></LinearRing></innerBoundaryIs></Polygon>")
41
+ expect(polygon.as_kml.gsub("\n","")).to eql("<Polygon><outerBoundaryIs><LinearRing><coordinates>12.4,-45.3 45.4,41.6 4.456,1.0698 12.4,-45.3</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>2.4,5.3 5.4,1.4263 14.46,1.06 2.4,5.3</coordinates></LinearRing></innerBoundaryIs></Polygon>")
42
42
  end
43
43
 
44
44
  it "test_geometry_collection" do
45
45
  gc = GeoRuby::SimpleFeatures::GeometryCollection.from_geometries([GeoRuby::SimpleFeatures::Point.from_x_y(4.67,45.4,256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)],256)
46
46
 
47
47
  #only the first geometry is output
48
- gc.as_georss(:dialect => :simple,:floor => 4).gsub("\n","").should eql("<georss:point floor=\"4\">45.4 4.67</georss:point>")
49
- gc.as_georss(:dialect => :w3cgeo).gsub("\n","").should eql("<geo:lat>45.4</geo:lat><geo:long>4.67</geo:long>")
50
- gc.as_georss(:dialect => :gml).gsub("\n","").should eql("<georss:where><gml:Point><gml:pos>45.4 4.67</gml:pos></gml:Point></georss:where>")
48
+ expect(gc.as_georss(:dialect => :simple,:floor => 4).gsub("\n","")).to eql("<georss:point floor=\"4\">45.4 4.67</georss:point>")
49
+ expect(gc.as_georss(:dialect => :w3cgeo).gsub("\n","")).to eql("<geo:lat>45.4</geo:lat><geo:long>4.67</geo:long>")
50
+ expect(gc.as_georss(:dialect => :gml).gsub("\n","")).to eql("<georss:where><gml:Point><gml:pos>45.4 4.67</gml:pos></gml:Point></georss:where>")
51
51
 
52
- gc.as_kml(:id => "HOYOYO-42").gsub("\n","").should eql("<MultiGeometry id=\"HOYOYO-42\"><Point><coordinates>4.67,45.4</coordinates></Point><LineString><coordinates>5.7,12.45 67.55,54</coordinates></LineString></MultiGeometry>")
52
+ expect(gc.as_kml(:id => "HOYOYO-42").gsub("\n","")).to eql("<MultiGeometry id=\"HOYOYO-42\"><Point><coordinates>4.67,45.4</coordinates></Point><LineString><coordinates>5.7,12.45 67.55,54</coordinates></LineString></MultiGeometry>")
53
53
  end
54
54
 
55
55
  it "test_envelope" do
@@ -59,53 +59,53 @@ describe GeoRuby::GeorssParser do
59
59
 
60
60
  e = polygon.envelope
61
61
 
62
- e.as_georss(:dialect => :simple).gsub("\n","").should eql("<georss:box>-45 4 41 45</georss:box>")
62
+ expect(e.as_georss(:dialect => :simple).gsub("\n","")).to eql("<georss:box>-45 4 41 45</georss:box>")
63
63
  #center
64
- e.as_georss(:dialect => :w3cgeo).gsub("\n","").should eql("<geo:lat>-2</geo:lat><geo:long>24</geo:long>")
65
- e.as_georss(:dialect => :gml).gsub("\n","").should eql("<georss:where><gml:Envelope><gml:LowerCorner>-45 4</gml:LowerCorner><gml:UpperCorner>41 45</gml:UpperCorner></gml:Envelope></georss:where>")
64
+ expect(e.as_georss(:dialect => :w3cgeo).gsub("\n","")).to eql("<geo:lat>-2</geo:lat><geo:long>24</geo:long>")
65
+ expect(e.as_georss(:dialect => :gml).gsub("\n","")).to eql("<georss:where><gml:Envelope><gml:LowerCorner>-45 4</gml:LowerCorner><gml:UpperCorner>41 45</gml:UpperCorner></gml:Envelope></georss:where>")
66
66
 
67
- e.as_kml.gsub("\n","").should eql("<LatLonAltBox><north>41</north><south>-45</south><east>45</east><west>4</west><minAltitude>-5.4</minAltitude><maxAltitude>34</maxAltitude></LatLonAltBox>")
67
+ expect(e.as_kml.gsub("\n","")).to eql("<LatLonAltBox><north>41</north><south>-45</south><east>45</east><west>4</west><minAltitude>-5.4</minAltitude><maxAltitude>34</maxAltitude></LatLonAltBox>")
68
68
  end
69
69
 
70
70
  it "test_point_georss_read" do
71
71
  #W3CGeo
72
72
  str = " <geo:lat >12.3</geo:lat >\n\t <geo:long> 4.56</geo:long> "
73
73
  geom = GeoRuby::SimpleFeatures::Geometry.from_georss(str)
74
- geom.class.should eql(GeoRuby::SimpleFeatures::Point)
75
- geom.lat.should eql(12.3)
76
- geom.lon.should eql(4.56)
74
+ expect(geom.class).to eql(GeoRuby::SimpleFeatures::Point)
75
+ expect(geom.lat).to eql(12.3)
76
+ expect(geom.lon).to eql(4.56)
77
77
 
78
78
  str = " <geo:Point> \n \t <geo:long> 4.56</geo:long> \n\t <geo:lat >12.3</geo:lat > </geo:Point> "
79
79
  geom = GeoRuby::SimpleFeatures::Geometry.from_georss(str)
80
- geom.class.should eql(GeoRuby::SimpleFeatures::Point)
81
- geom.lat.should eql(12.3)
82
- geom.lon.should eql(4.56)
80
+ expect(geom.class).to eql(GeoRuby::SimpleFeatures::Point)
81
+ expect(geom.lat).to eql(12.3)
82
+ expect(geom.lon).to eql(4.56)
83
83
 
84
84
  #gml
85
85
  str = " <georss:where> \t\r <gml:Point > \t <gml:pos> 4 \t 3 </gml:pos> </gml:Point> </georss:where>"
86
86
  geom = GeoRuby::SimpleFeatures::Geometry.from_georss(str)
87
- geom.class.should eql(GeoRuby::SimpleFeatures::Point)
88
- geom.lat.should eql(4.0)
89
- geom.lon.should eql(3.0)
87
+ expect(geom.class).to eql(GeoRuby::SimpleFeatures::Point)
88
+ expect(geom.lat).to eql(4.0)
89
+ expect(geom.lon).to eql(3.0)
90
90
 
91
91
  #simple
92
92
  str = "<georss:point > 4 \r\t 3 \t</georss:point >"
93
93
  geom = GeoRuby::SimpleFeatures::Geometry.from_georss(str)
94
- geom.class.should eql(GeoRuby::SimpleFeatures::Point)
95
- geom.lat.should eql(4.0)
96
- geom.lon.should eql(3.0)
94
+ expect(geom.class).to eql(GeoRuby::SimpleFeatures::Point)
95
+ expect(geom.lat).to eql(4.0)
96
+ expect(geom.lon).to eql(3.0)
97
97
 
98
98
  #simple with tags
99
99
  str = "<georss:point featuretypetag=\"hoyoyo\" elev=\"45.7\" \n floor=\"2\" relationshiptag=\"puyopuyo\" radius=\"42\" > 4 \n 3 \t</georss:point >"
100
100
  geom,tags = GeoRuby::SimpleFeatures::Geometry.from_georss_with_tags(str)
101
- geom.class.should eql(GeoRuby::SimpleFeatures::Point)
102
- geom.lat.should eql(4.0)
103
- geom.lon.should eql(3.0)
104
- tags.featuretypetag.should eql("hoyoyo")
105
- tags.elev.should eql(45.7)
106
- tags.relationshiptag.should eql("puyopuyo")
107
- tags.floor.should eql(2)
108
- tags.radius.should eql(42.0)
101
+ expect(geom.class).to eql(GeoRuby::SimpleFeatures::Point)
102
+ expect(geom.lat).to eql(4.0)
103
+ expect(geom.lon).to eql(3.0)
104
+ expect(tags.featuretypetag).to eql("hoyoyo")
105
+ expect(tags.elev).to eql(45.7)
106
+ expect(tags.relationshiptag).to eql("puyopuyo")
107
+ expect(tags.floor).to eql(2)
108
+ expect(tags.radius).to eql(42.0)
109
109
  end
110
110
 
111
111
  it "test_line_string_georss_read" do
@@ -113,13 +113,13 @@ describe GeoRuby::GeorssParser do
113
113
 
114
114
  str = "<georss:line > -45.3 12.4 \n \r41.6\t 45.4</georss:line>"
115
115
  geom = GeoRuby::SimpleFeatures::Geometry.from_georss(str)
116
- geom.class.should eql(GeoRuby::SimpleFeatures::LineString)
117
- ls.should == geom
116
+ expect(geom.class).to eql(GeoRuby::SimpleFeatures::LineString)
117
+ expect(ls).to eq(geom)
118
118
 
119
119
  str = "<georss:where><gml:LineString><gml:posList>-45.3 12.4 41.6 45.4</gml:posList></gml:LineString></georss:where>"
120
120
  geom = GeoRuby::SimpleFeatures::Geometry.from_georss(str)
121
- geom.class.should eql(GeoRuby::SimpleFeatures::LineString)
122
- ls.should == geom
121
+ expect(geom.class).to eql(GeoRuby::SimpleFeatures::LineString)
122
+ expect(ls).to eq(geom)
123
123
  end
124
124
 
125
125
  it "test_polygon_georss_read" do
@@ -128,13 +128,13 @@ describe GeoRuby::GeorssParser do
128
128
 
129
129
  str = "<hoyoyo:polygon featuretypetag=\"42\" > -45.3 12.4 41.6 \n\r 45.4 1.0698 \r 4.456 -45.3 12.4 </hoyoyo:polygon>"
130
130
  geom = GeoRuby::SimpleFeatures::Geometry.from_georss(str)
131
- geom.class.should eql(GeoRuby::SimpleFeatures::Polygon)
132
- polygon.should == geom
131
+ expect(geom.class).to eql(GeoRuby::SimpleFeatures::Polygon)
132
+ expect(polygon).to eq(geom)
133
133
 
134
134
  str = "<georss:where>\r\t \n <gml:Polygon><gml:exterior> <gml:LinearRing><gml:posList> -45.3 \n\r 12.4 41.6 \n\t 45.4 1.0698 4.456 -45.3 12.4</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></georss:where>"
135
135
  geom = GeoRuby::SimpleFeatures::Geometry.from_georss(str)
136
- geom.class.should eql(GeoRuby::SimpleFeatures::Polygon)
137
- polygon.should == geom
136
+ expect(geom.class).to eql(GeoRuby::SimpleFeatures::Polygon)
137
+ expect(polygon).to eq(geom)
138
138
  end
139
139
 
140
140
  it "test_envelope_georss_read" do
@@ -142,19 +142,19 @@ describe GeoRuby::GeorssParser do
142
142
 
143
143
  str = "<georss:box >-45.3 4.456 \n41.6 45.4</georss:box>"
144
144
  geom = GeoRuby::SimpleFeatures::Geometry.from_georss(str)
145
- geom.class.should eql(GeoRuby::SimpleFeatures::Envelope)
146
- geom.should == e
145
+ expect(geom.class).to eql(GeoRuby::SimpleFeatures::Envelope)
146
+ expect(geom).to eq(e)
147
147
 
148
148
  str = "<georss:where><gml:Envelope><gml:lowerCorner>-45.3 \n 4.456</gml:lowerCorner><gml:upperCorner>41.6 \t\n 45.4</gml:upperCorner></gml:Envelope></georss:where>"
149
149
  geom = GeoRuby::SimpleFeatures::Geometry.from_georss(str)
150
- geom.class.should eql(GeoRuby::SimpleFeatures::Envelope)
151
- geom.should == e
150
+ expect(geom.class).to eql(GeoRuby::SimpleFeatures::Envelope)
151
+ expect(geom).to eq(e)
152
152
  end
153
153
 
154
154
  it "reads KML" do
155
155
  g = GeoRuby::SimpleFeatures::Geometry.from_kml("<Point><coordinates>45,12,25</coordinates></Point>")
156
- g.should be_a GeoRuby::SimpleFeatures::Point
157
- g.should == GeoRuby::SimpleFeatures::Point.from_x_y_z('45','12','25')
156
+ expect(g).to be_a GeoRuby::SimpleFeatures::Point
157
+ expect(g).to eq(GeoRuby::SimpleFeatures::Point.from_x_y_z('45','12','25'))
158
158
 
159
159
  g = GeoRuby::SimpleFeatures::Geometry.from_kml("<LineString>
160
160
  <extrude>1</extrude>
@@ -163,9 +163,9 @@ describe GeoRuby::GeorssParser do
163
163
  -122.364383,37.824664,0 -122.364152,37.824322,0
164
164
  </coordinates>
165
165
  </LineString>")
166
- g.should be_a GeoRuby::SimpleFeatures::LineString
167
- g.length.should eql(2)
168
- g.should == GeoRuby::SimpleFeatures::LineString.from_points([GeoRuby::SimpleFeatures::Point.from_x_y_z('-122.364383','37.824664','0'),GeoRuby::SimpleFeatures::Point.from_x_y_z('-122.364152','37.824322','0')],4326,true)
166
+ expect(g).to be_a GeoRuby::SimpleFeatures::LineString
167
+ expect(g.length).to eql(2)
168
+ expect(g).to eq(GeoRuby::SimpleFeatures::LineString.from_points([GeoRuby::SimpleFeatures::Point.from_x_y_z('-122.364383','37.824664','0'),GeoRuby::SimpleFeatures::Point.from_x_y_z('-122.364152','37.824322','0')],4326,true))
169
169
 
170
170
  g = GeoRuby::SimpleFeatures::Geometry.from_kml("<Polygon>
171
171
  <extrude>1</extrude>
@@ -204,23 +204,23 @@ describe GeoRuby::GeorssParser do
204
204
  </LinearRing>
205
205
  </innerBoundaryIs>
206
206
  </Polygon>")
207
- g.should be_a GeoRuby::SimpleFeatures::Polygon
208
- g.length.should eql(3)
207
+ expect(g).to be_a GeoRuby::SimpleFeatures::Polygon
208
+ expect(g.length).to eql(3)
209
209
  end
210
210
 
211
211
  it "does not raise type error if point geom data not provided" do
212
212
  point = GeoRuby::SimpleFeatures::Point.from_coordinates([1.6,2.8],123)
213
- lambda { point.kml_representation }.should_not raise_error
213
+ expect { point.kml_representation }.not_to raise_error
214
214
  end
215
215
 
216
216
  it "does not raise type error if polygon geom data not provided" do
217
217
  polygon = GeoRuby::SimpleFeatures::Polygon.from_coordinates([[[12.4,-45.3],[45.4,41.6],[4.456,1.0698],[12.4,-45.3]],[[2.4,5.3],[5.4,1.4263],[14.46,1.06],[2.4,5.3]]],256)
218
- lambda { polygon.kml_representation }.should_not raise_error
218
+ expect { polygon.kml_representation }.not_to raise_error
219
219
  end
220
220
 
221
221
  it "does not raise type error if linestring geom data not provided" do
222
222
  ls = GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)
223
- lambda { ls.kml_representation }.should_not raise_error
223
+ expect { ls.kml_representation }.not_to raise_error
224
224
  end
225
225
 
226
226
  end