class Geos::WktWriter
Attributes
old_3d[R]
ptr[R]
rounding_precision[R]
trim[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/ffi-geos/wkt_writer.rb, line 7 def initialize(options = {}) options = { trim: false, old_3d: false, rounding_precision: -1, output_dimensions: 2 }.merge(options) ptr = FFIGeos.GEOSWKTWriter_create_r(Geos.current_handle_pointer) @ptr = FFI::AutoPointer.new( ptr, self.class.method(:release) ) set_options(options) end
Public Instance Methods
old_3d=(val)
click to toggle source
Available in GEOS 3.3+.
# File lib/ffi-geos/wkt_writer.rb, line 76 def old_3d=(val) @old_3d = !!val FFIGeos.GEOSWKTWriter_setOld3D_r(Geos.current_handle_pointer, ptr, Geos::Tools.bool_to_int(@old_3d)) end
output_dimensions()
click to toggle source
Available in GEOS 3.3+.
# File lib/ffi-geos/wkt_writer.rb, line 94 def output_dimensions FFIGeos.GEOSWKTWriter_getOutputDimension_r(Geos.current_handle_pointer, ptr) end
output_dimensions=(dim)
click to toggle source
Available in GEOS 3.3+.
# File lib/ffi-geos/wkt_writer.rb, line 84 def output_dimensions=(dim) dim = dim.to_i raise ArgumentError, 'Output dimensions must be either 2 or 3' if dim < 2 || dim > 3 FFIGeos.GEOSWKTWriter_setOutputDimension_r(Geos.current_handle_pointer, ptr, dim) end
rounding_precision=(r)
click to toggle source
Available in GEOS 3.3+.
# File lib/ffi-geos/wkt_writer.rb, line 65 def rounding_precision=(r) r = r.to_i raise ArgumentError, 'Rounding precision cannot be greater than 255' if r > 255 @rounding_precision = r FFIGeos.GEOSWKTWriter_setRoundingPrecision_r(Geos.current_handle_pointer, ptr, @rounding_precision) end
trim=(val)
click to toggle source
Available in GEOS 3.3+.
# File lib/ffi-geos/wkt_writer.rb, line 57 def trim=(val) @trim = !!val FFIGeos.GEOSWKTWriter_setTrim_r(Geos.current_handle_pointer, ptr, Geos::Tools.bool_to_int(@trim)) end
write(geom, options = nil)
click to toggle source
Options can be set temporarily for individual writes using an options Hash. Options include :trim, :old_3d, :rounding_precision and :output_dimensions
# File lib/ffi-geos/wkt_writer.rb, line 38 def write(geom, options = nil) unless options.nil? old_options = { trim: trim, old_3d: old_3d, rounding_precision: rounding_precision, output_dimensions: output_dimensions } set_options(options) end FFIGeos.GEOSWKTWriter_write_r(Geos.current_handle_pointer, ptr, geom.ptr) ensure set_options(old_options) unless options.nil? end