Class: Geos::WkbReader

Inherits:
Object
  • Object
show all
Includes:
Tools
Defined in:
lib/ffi-geos/wkb_reader.rb

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

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Tools

#bool_result, #cast_geometry_ptr, #check_enum_value, #check_geometry, #pick_srid_according_to_policy, #pick_srid_from_geoms, #symbol_for_enum

Constructor Details

#initialize(*args) ⇒ WkbReader

Returns a new instance of WkbReader.



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/ffi-geos/wkb_reader.rb', line 9

def initialize(*args)
  ptr = if args.first.is_a?(FFI::Pointer)
    args.first
  else
    FFIGeos.GEOSWKBReader_create_r(Geos.current_handle, *args)
  end

  @ptr = FFI::AutoPointer.new(
    ptr,
    self.class.method(:release)
  )
end

Instance Attribute Details

#ptrObject (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:



34
35
36
# File 'lib/ffi-geos/wkb_reader.rb', line 34

def self.release(ptr) #:nodoc:
  FFIGeos.GEOSWKBReader_destroy_r(Geos.current_handle, ptr)
end

Instance Method Details

#read(wkb, options = {}) ⇒ Object



22
23
24
25
26
# File 'lib/ffi-geos/wkb_reader.rb', line 22

def read(wkb, options = {})
  cast_geometry_ptr(FFIGeos.GEOSWKBReader_read_r(Geos.current_handle, self.ptr, wkb, wkb.bytesize), {
    :srid => options[:srid]
  })
end

#read_hex(wkb, options = {}) ⇒ Object



28
29
30
31
32
# File 'lib/ffi-geos/wkb_reader.rb', line 28

def read_hex(wkb, options = {})
  cast_geometry_ptr(FFIGeos.GEOSWKBReader_readHEX_r(Geos.current_handle, self.ptr, wkb, wkb.bytesize), {
    :srid => options[:srid]
  })
end