Class: Geos::WkbReader
- Inherits:
-
Object
- Object
- Geos::WkbReader
- Includes:
- Tools
- Defined in:
- lib/ffi-geos/wkb_reader.rb
Defined Under Namespace
Classes: ParseError
Constant Summary
Constants included from GeomTypes
GeomTypes::GEOS_GEOMETRYCOLLECTION, GeomTypes::GEOS_LINEARRING, GeomTypes::GEOS_LINESTRING, GeomTypes::GEOS_MULTILINESTRING, GeomTypes::GEOS_MULTIPOINT, GeomTypes::GEOS_MULTIPOLYGON, GeomTypes::GEOS_POINT, GeomTypes::GEOS_POLYGON
Instance Attribute Summary collapse
-
#ptr ⇒ Object
readonly
Returns the value of attribute ptr.
Class Method Summary collapse
-
.release(ptr) ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#initialize(*args) ⇒ WkbReader
constructor
A new instance of WkbReader.
- #read(wkb, options = {}) ⇒ Object
- #read_hex(wkb, options = {}) ⇒ Object
Methods included from Tools
#bool_result, #bool_to_int, #cast_geometry_ptr, #check_enum_value, #check_geometry, #extract_options!, #pick_srid_according_to_policy, #pick_srid_from_geoms, #symbol_for_enum
Constructor Details
#initialize(*args) ⇒ WkbReader
Returns a new instance of WkbReader.
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/ffi-geos/wkb_reader.rb', line 12 def initialize(*args) ptr = if args.first.is_a?(FFI::Pointer) args.first else FFIGeos.GEOSWKBReader_create_r(Geos.current_handle_pointer, *args) end @ptr = FFI::AutoPointer.new( ptr, self.class.method(:release) ) end |
Instance Attribute Details
#ptr ⇒ Object (readonly)
Returns the value of attribute ptr.
7 8 9 |
# File 'lib/ffi-geos/wkb_reader.rb', line 7 def ptr @ptr end |
Class Method Details
.release(ptr) ⇒ Object
:nodoc:
37 38 39 |
# File 'lib/ffi-geos/wkb_reader.rb', line 37 def self.release(ptr) # :nodoc: FFIGeos.GEOSWKBReader_destroy_r(Geos.current_handle_pointer, ptr) end |
Instance Method Details
#read(wkb, options = {}) ⇒ Object
25 26 27 28 29 |
# File 'lib/ffi-geos/wkb_reader.rb', line 25 def read(wkb, = {}) cast_geometry_ptr(FFIGeos.GEOSWKBReader_read_r(Geos.current_handle_pointer, ptr, wkb, wkb.bytesize), srid: [:srid]) rescue Geos::GEOSException => e raise ParseError, e end |
#read_hex(wkb, options = {}) ⇒ Object
31 32 33 34 35 |
# File 'lib/ffi-geos/wkb_reader.rb', line 31 def read_hex(wkb, = {}) cast_geometry_ptr(FFIGeos.GEOSWKBReader_readHEX_r(Geos.current_handle_pointer, ptr, wkb, wkb.bytesize), srid: [:srid]) rescue Geos::GEOSException => e raise ParseError, e end |