Module: RGeo::Feature::Polygon
- Extended by:
- Type
- Includes:
- Enumerable, Surface
- Included in:
- Cartesian::PolygonImpl, Geographic::ProjectedPolygonImpl, Geographic::SphericalPolygonImpl
- Defined in:
- lib/rgeo/feature/polygon.rb
Overview
SFS 1.1 Description
A Polygon is a planar Surface defined by 1 exterior boundary and 0 or more interior boundaries. Each interior boundary defines a hole in the Polygon.
The assertions for Polygons (the rules that define valid Polygons) are as follows:
(a) Polygons are topologically closed;
(b) The boundary of a Polygon consists of a set of LinearRings that make up its exterior and interior boundaries;
© No two Rings in the boundary cross and the Rings in the boundary of a Polygon may intersect at a Point but only as a tangent;
(d) A Polygon may not have cut lines, spikes or punctures;
(e) The interior of every Polygon is a connected point set;
(f) The exterior of a Polygon with 1 or more holes is not connected. Each hole defines a connected component of the exterior.
In the above assertions, interior, closure and exterior have the standard topological definitions. The combination of (a) and © make a Polygon a regular closed Point set.
Polygons are simple geometric objects.
Notes
Polygon 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
-
#exterior_ring ⇒ Object
SFS 1.1 Description.
-
#interior_ring_n(n_) ⇒ Object
SFS 1.1 Description.
-
#interior_rings ⇒ Object
Returns the interior rings as a (possibly empty) array of objects that support the LinearRing interface.
-
#num_interior_rings ⇒ Object
SFS 1.1 Description.
Methods included from Type
check_type, subtype_of?, type_name
Methods included from Surface
#area, #centroid, #point_on_surface
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
#exterior_ring ⇒ Object
SFS 1.1 Description
Returns the exterior ring of this Polygon.
Notes
Returns an object that supports the LinearRing interface.
96 97 98 |
# File 'lib/rgeo/feature/polygon.rb', line 96 def exterior_ring raise Error::UnsupportedOperation, "Method Polygon#exterior_ring not defined." end |
#interior_ring_n(n_) ⇒ Object
SFS 1.1 Description
Returns the Nth interiorRing for this Polygon as a LineString.
Notes
Returns an object that supports the LinearRing interface, or nil if the given n is out of range.
123 124 125 |
# File 'lib/rgeo/feature/polygon.rb', line 123 def interior_ring_n(n_) raise Error::UnsupportedOperation, "Method Polygon#interior_ring_n not defined." end |
#interior_rings ⇒ Object
Returns the interior rings as a (possibly empty) array of objects that support the LinearRing interface.
131 132 133 |
# File 'lib/rgeo/feature/polygon.rb', line 131 def interior_rings raise Error::UnsupportedOperation, "Method Polygon#interior_rings not defined." end |
#num_interior_rings ⇒ Object
SFS 1.1 Description
Returns the number of interiorRings in this Polygon.
Notes
Returns an integer.
109 110 111 |
# File 'lib/rgeo/feature/polygon.rb', line 109 def num_interior_rings raise Error::UnsupportedOperation, "Method Polygon#num_interior_rings not defined." end |