module OGR::Geometry::RttopoExtensions
Methods for {{OGR::Geometry}}s that use rttopo to operate on themselves.
Public Instance Methods
make_valid()
click to toggle source
Uses rttopo’s make_valid
to make the current geometry valid.
@return [OGR::Geometry] Returns a new geometry, based on the
rttopo_make_valid call.
# File lib/ogr/extensions/geometry/rttopo_extensions.rb, line 17 def make_valid ctx = FFI::Rttopo.rtgeom_init FFI::MemoryPointer::NULL, FFI::MemoryPointer::NULL, FFI::MemoryPointer::NULL geom = FFI::Rttopo.rtgeom_from_wkb(ctx, to_wkb, wkb_size, false) valid_geom = FFI::Rttopo.rtgeom_make_valid(ctx, geom) valid_wkb_size = FFI::MemoryPointer.new(:size_t) valid_wkb_ptr = FFI::Rttopo.rtgeom_to_wkb(ctx, valid_geom, FFI::Rttopo::RTWKB_EXTENDED, valid_wkb_size) valid_wkb = valid_wkb_ptr.read_bytes(valid_wkb_size.read_int) FFI::Rttopo.rtfree ctx, geom FFI::Rttopo.rtfree ctx, valid_geom FFI::Rttopo.rtfree ctx, valid_wkb_ptr FFI::Rttopo.rtgeom_finish ctx OGR::Geometry.create_from_wkb(valid_wkb) end