Module: OGR::GeometryExtensions::LWGeomWrappers

Included in:
OGR::Geometry
Defined in:
lib/ogr/geometry_extensions/lwgeom_wrappers.rb

Overview

Methods for {OGR{OGR::Geometry}s that use lwgeom to operate on themselves.

Instance Method Summary collapse

Instance Method Details

#make_validOGR::Geometry

Uses lwgeom’s MakeValid to make the current geometry valid.

Returns:

  • (OGR::Geometry)

    Returns a new geometry, based on the lwgeom_make_valid call.



15
16
17
18
19
20
21
22
23
# File 'lib/ogr/geometry_extensions/lwgeom_wrappers.rb', line 15

def make_valid
  geom = FFI::LWGeom.lwgeom_from_wkb(to_wkb, wkb_size, FFI::LWGeom::LW_PARSER_CHECK_NONE)
  valid_geom = FFI::LWGeom.lwgeom_make_valid(geom)
  valid_wkb_size = FFI::MemoryPointer.new(:size_t)
  valid_wkb_ptr = FFI::LWGeom.lwgeom_to_wkb(valid_geom, FFI::LWGeom::VARIANT_WKB_EXTENDED, valid_wkb_size)
  valid_wkb = valid_wkb_ptr.read_bytes(valid_wkb_size.read_int)

  OGR::Geometry.create_from_wkb(valid_wkb)
end