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
Instance Method Summary collapse
-
#is_closed? ⇒ Boolean
SFS 1.1 Description.
-
#length ⇒ Object
SFS 1.1 Description.
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, #relate?, #rep_equals?, #srid, #sym_difference, #touches?, #union, #within?
Instance Method Details
#is_closed? ⇒ Boolean
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.
66 67 68 |
# File 'lib/rgeo/feature/multi_curve.rb', line 66 def is_closed? raise Error::UnsupportedOperation, "Method MultiCurve#is_closed? not defined." end |
#length ⇒ Object
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.
52 53 54 |
# File 'lib/rgeo/feature/multi_curve.rb', line 52 def length raise Error::UnsupportedOperation, "Method MultiCurve#length not defined." end |