Module: OGR::Geometry::RttopoExtensions
- Included in:
- OGR::GeometryCollection25D, LineString, LineString25D, LinearRing, MultiLineString, MultiLineString25D, MultiPoint, MultiPoint25D, MultiPolygon, MultiPolygon25D, Point, Point25D, Polygon, Polygon25D
- Defined in:
- lib/ogr/extensions/geometry/rttopo_extensions.rb
Overview
Methods for {OGR{OGR::Geometry}s that use rttopo to operate on themselves.
Instance Method Summary collapse
-
#make_valid ⇒ OGR::Geometry
Uses rttopo’s make_valid to make the current geometry valid.
Instance Method Details
#make_valid ⇒ OGR::Geometry
Uses rttopo’s make_valid to make the current geometry valid.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# 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 |