Module: RGeo::Feature::Curve

Extended by:
Type
Includes:
Geometry
Included in:
LineString
Defined in:
lib/rgeo/feature/curve.rb

Overview

SFS 1.1 Description

A Curve is a 1-dimensional geometric object usually stored as a sequence of Points, with the subtype of Curve specifying the form of the interpolation between Points. This part of ISO 19125 defines only one subclass of Curve, LineString, which uses linear interpolation between Points.

A Curve is a 1-dimensional geometric object that is the homeomorphic image of a real, closed interval D= under a mapping f:->R2.

A Curve is simple if it does not pass through the same Point twice.

A Curve is closed if its start Point is equal to its end Point.

The boundary of a closed Curve is empty.

A Curve that is simple and closed is a Ring.

The boundary of a non-closed Curve consists of its two end Points.

A Curve is defined as topologically closed.

Notes

Curve 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.

Some implementations may support higher dimensional points.

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 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

#end_pointObject

SFS 1.1 Description

The end Point of this Curve.

Notes

Returns an object that supports the Point interface.



115
116
117
# File 'lib/rgeo/feature/curve.rb', line 115

def end_point
  raise Error::UnsupportedOperation, "Method Curve#end_point not defined."
end

#is_closed?Boolean

SFS 1.1 Description

Returns true if this Curve is closed [StartPoint() = EndPoint()].

Notes

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

Returns:

  • (Boolean)

Raises:



129
130
131
# File 'lib/rgeo/feature/curve.rb', line 129

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

#is_ring?Boolean

SFS 1.1 Description

Returns true if this Curve is closed [StartPoint() = EndPoint()] and this Curve is simple (does not pass through the same Point more than once).

Notes

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

Returns:

  • (Boolean)

Raises:



145
146
147
# File 'lib/rgeo/feature/curve.rb', line 145

def is_ring?
  raise Error::UnsupportedOperation, "Method Curve#is_ring? not defined."
end

#lengthObject

SFS 1.1 Description

The length of this Curve in its associated spatial reference.

Notes

Returns a floating-point scalar value.



89
90
91
# File 'lib/rgeo/feature/curve.rb', line 89

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

#start_pointObject

SFS 1.1 Description

The start Point of this Curve.

Notes

Returns an object that supports the Point interface.



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

def start_point
  raise Error::UnsupportedOperation, "Method Curve#start_point not defined."
end