Class: GeoRuby::SimpleFeatures::GeometryFactory
- Inherits:
-
Object
- Object
- GeoRuby::SimpleFeatures::GeometryFactory
- Defined in:
- lib/geo_ruby/simple_features/geometry_factory.rb
Overview
Creates a new geometry according to constructions received from a parser, for example EWKBParser.
Instance Attribute Summary collapse
-
#geometry ⇒ Object
readonly
the built geometry.
Instance Method Summary collapse
-
#abort_geometry ⇒ Object
abort a geometry.
-
#add_point_x_y(x, y) ⇒ Object
add a 2D point to the current geometry.
-
#add_point_x_y_m(x, y, m) ⇒ Object
add a 2D point with M to the current geometry.
-
#add_point_x_y_z(x, y, z) ⇒ Object
add a 3D point to the current geometry.
-
#add_point_x_y_z_m(x, y, z, m) ⇒ Object
add a 3D point with M to the current geometry.
-
#add_points_x_y(xy) ⇒ Object
add 2D points to the current geometry.
-
#add_points_x_y_m(xym) ⇒ Object
add 2D points with M to the current geometry.
-
#add_points_x_y_z(xyz) ⇒ Object
add 3D points to the current geometry.
-
#add_points_x_y_z_m(xyzm) ⇒ Object
add 3D points with M to the current geometry.
-
#begin_geometry(geometry_type, srid = DEFAULT_SRID) ⇒ Object
begin a geometry of type
geometry_type
. -
#end_geometry(with_z = false, with_m = false) ⇒ Object
terminates the current geometry.
-
#initialize ⇒ GeometryFactory
constructor
A new instance of GeometryFactory.
-
#reset ⇒ Object
resets the factory.
Constructor Details
#initialize ⇒ GeometryFactory
Returns a new instance of GeometryFactory.
18 19 20 21 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 18 def initialize @geometry = nil @geometry_stack = [] end |
Instance Attribute Details
#geometry ⇒ Object (readonly)
the built geometry
16 17 18 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 16 def geometry @geometry end |
Instance Method Details
#abort_geometry ⇒ Object
abort a geometry
76 77 78 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 76 def abort_geometry reset end |
#add_point_x_y(x, y) ⇒ Object
add a 2D point to the current geometry
28 29 30 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 28 def add_point_x_y(x,y) @geometry_stack.last.set_x_y(x,y) end |
#add_point_x_y_m(x, y, m) ⇒ Object
add a 2D point with M to the current geometry
44 45 46 47 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 44 def add_point_x_y_m(x,y,m) @geometry_stack.last.set_x_y(x,y) @geometry_stack.last.m=m end |
#add_point_x_y_z(x, y, z) ⇒ Object
add a 3D point to the current geometry
36 37 38 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 36 def add_point_x_y_z(x,y,z) @geometry_stack.last.set_x_y_z(x,y,z) end |
#add_point_x_y_z_m(x, y, z, m) ⇒ Object
add a 3D point with M to the current geometry
53 54 55 56 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 53 def add_point_x_y_z_m(x,y,z,m) @geometry_stack.last.set_x_y_z(x,y,z) @geometry_stack.last.m=m end |
#add_points_x_y(xy) ⇒ Object
add 2D points to the current geometry
32 33 34 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 32 def add_points_x_y(xy) xy.each_slice(2) {|slice| add_point_x_y(*slice)} end |
#add_points_x_y_m(xym) ⇒ Object
add 2D points with M to the current geometry
49 50 51 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 49 def add_points_x_y_m(xym) xym.each_slice(3) {|slice| add_point_x_y_m(*slice)} end |
#add_points_x_y_z(xyz) ⇒ Object
add 3D points to the current geometry
40 41 42 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 40 def add_points_x_y_z(xyz) xyz.each_slice(3) {|slice| add_point_x_y_z(*slice)} end |
#add_points_x_y_z_m(xyzm) ⇒ Object
add 3D points with M to the current geometry
58 59 60 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 58 def add_points_x_y_z_m(xyzm) xyzm.each_slice(4) {|slice| add_point_x_y_z_m(*slice)} end |
#begin_geometry(geometry_type, srid = DEFAULT_SRID) ⇒ Object
begin a geometry of type geometry_type
62 63 64 65 66 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 62 def begin_geometry(geometry_type,srid=DEFAULT_SRID) geometry= geometry_type::new(srid) @geometry= geometry if @geometry.nil? @geometry_stack << geometry end |
#end_geometry(with_z = false, with_m = false) ⇒ Object
terminates the current geometry
68 69 70 71 72 73 74 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 68 def end_geometry(with_z=false,with_m=false) @geometry=@geometry_stack.pop @geometry.with_z=with_z @geometry.with_m=with_m #add the newly defined geometry to its parent if there is one @geometry_stack.last << geometry if !@geometry_stack.empty? end |
#reset ⇒ Object
resets the factory
23 24 25 26 |
# File 'lib/geo_ruby/simple_features/geometry_factory.rb', line 23 def reset @geometry = nil @geometry_stack = [] end |