Module: RGeo::Feature::MultiCurve

Extended by:
Type
Includes:
GeometryCollection
Included in:
MultiLineString
Defined in:
lib/rgeo/feature/multi_curve.rb

Overview

SFS 1.1 Description

A MultiCurve is a 1-dimensional GeometryCollection whose elements are Curves.

MultiCurve is a non-instantiable class in this specification; it defines a set of methods for its subclasses and is included for reasons of extensibility.

A MultiCurve is simple if and only if all of its elements are simple and the only intersections between any two elements occur at Points that are on the boundaries of both elements.

The boundary of a MultiCurve is obtained by applying the "mod 2" union rule: A Point is in the boundary of a MultiCurve if it is in the boundaries of an odd number of elements of the MultiCurve.

A MultiCurve is closed if all of its elements are closed. The boundary of a closed MultiCurve is always empty.

A MultiCurve is defined as topologically closed.

Notes

MultiCurve is defined as a module and is provided primarily for the sake of documentation. Implementations need not necessarily include this module itself. Therefore, you should not depend on the kind_of? method to check type. Instead, use the provided check_type class method (or === operator) defined in the Type module.

Constant Summary

Constants included from Type

Type::Instance

Instance Method Summary (collapse)

Methods included from Type

_add_subtype, check_type, each_immediate_subtype, extended, subtype_of?, supertype, type_name

Methods included from GeometryCollection

#[], #each, #geometry_n, #num_geometries, #size

Methods included from Geometry

#*, #+, #-, #==, #as_binary, #as_text, #boundary, #buffer, #contains?, #convex_hull, #crosses?, #difference, #dimension, #disjoint?, #distance, #envelope, #eql?, #equals?, #factory, #geometry_type, #intersection, #intersects?, #is_empty?, #is_simple?, #overlaps?, #relate, #srid, #sym_difference, #touches?, #union, #within?

Instance Method Details

- (Boolean) is_closed?

SFS 1.1 Description

Returns true if this MultiCurve is closed [StartPoint() = EndPoint() for each Curve in this MultiCurve].

Notes

Returns a boolean value. Note that this is different from the SFS specification, which stipulates an integer return value.

Returns:

  • (Boolean)

Raises:



102
103
104
# File 'lib/rgeo/feature/multi_curve.rb', line 102

def is_closed?
  raise Error::UnsupportedOperation, "Method MultiCurve#is_closed? not defined."
end

- (Object) length

SFS 1.1 Description

The Length of this MultiCurve which is equal to the sum of the lengths of the element Curves.

Notes

Returns a floating-point scalar value.



87
88
89
# File 'lib/rgeo/feature/multi_curve.rb', line 87

def length
  raise Error::UnsupportedOperation, "Method MultiCurve#length not defined."
end