Module: RGeo::Cartesian
- Defined in:
- lib/rgeo/cartesian.rb,
lib/rgeo/cartesian/factory.rb,
lib/rgeo/cartesian/analysis.rb,
lib/rgeo/cartesian/interface.rb,
lib/rgeo/cartesian/bounding_box.rb,
lib/rgeo/cartesian/calculations.rb,
lib/rgeo/cartesian/feature_classes.rb,
lib/rgeo/cartesian/feature_methods.rb
Overview
The Cartesian module is a gateway to implementations that use the Cartesian (i.e. flat) coordinate system. It provides convenient access to Cartesian factories such as the Geos implementation and the simple Cartesian implementation. It also provides a namespace for Cartesian-specific analysis tools.
Defined Under Namespace
Modules: Analysis, GeometryMethods, LineStringMethods, MultiLineStringMethods, PointMethods Classes: BoundingBox, Factory, GeometryCollectionImpl, LineImpl, LineStringImpl, LinearRingImpl, MultiLineStringImpl, MultiPointImpl, MultiPolygonImpl, PointImpl, PolygonImpl, Segment
Class Method Summary collapse
-
.preferred_factory(opts_ = {}) ⇒ Object
(also: factory)
Creates and returns a cartesian factory of the preferred Cartesian implementation.
-
.preferred_factory_generator(defaults_ = {}) ⇒ Object
(also: factory_generator)
Returns a Feature::FactoryGenerator that creates preferred factories.
-
.simple_factory(opts_ = {}) ⇒ Object
Returns a factory for the simple Cartesian implementation.
-
.simple_factory_generator(defaults_ = {}) ⇒ Object
Returns a Feature::FactoryGenerator that creates simple factories.
Class Method Details
.preferred_factory(opts_ = {}) ⇒ Object Also known as: factory
Creates and returns a cartesian factory of the preferred Cartesian implementation.
The actual implementation returned depends on which ruby interpreter is running and what libraries are available. RGeo will try to provide a fully-functional and performant implementation if possible. If not, the simple Cartesian implementation will be returned. In practice, this means it returns a Geos implementation if available; otherwise it falls back to the simple implementation.
The given options are passed to the factory’s constructor. What options are available depends on the particular implementation. See RGeo::Geos.factory and RGeo::Cartesian.simple_factory for details. Unsupported options are ignored.
27 28 29 30 31 32 33 |
# File 'lib/rgeo/cartesian/interface.rb', line 27 def preferred_factory(opts_ = {}) if ::RGeo::Geos.supported? ::RGeo::Geos.factory(opts_) else simple_factory(opts_) end end |
.preferred_factory_generator(defaults_ = {}) ⇒ Object Also known as: factory_generator
Returns a Feature::FactoryGenerator that creates preferred factories. The given options are used as the default options.
A common case for this is to provide the :srs_database
as a default. Then, the factory generator need only be passed an SRID and it will automatically fetch the appropriate Proj4 and CoordSys objects.
117 118 119 |
# File 'lib/rgeo/cartesian/interface.rb', line 117 def preferred_factory_generator(defaults_ = {}) ::Proc.new { |c_| preferred_factory(defaults_.merge(c_)) } end |
.simple_factory(opts_ = {}) ⇒ Object
Returns a factory for the simple Cartesian implementation. This implementation provides all SFS 1.1 types, and also allows Z and M coordinates. It does not depend on external libraries, and is thus always available, but it does not implement many of the more advanced geometric operations. These limitations are:
-
Relational operators such as Feature::Geometry#intersects? are not implemented for most types.
-
Relational constructors such as Feature::Geometry#union are not implemented for most types.
-
Buffer and convex hull calculations are not implemented for most types. Boundaries are available except for GeometryCollection.
-
Length calculations are available, but areas are not. Distances are available only between points.
-
Equality and simplicity evaluation are implemented for some but not all types.
-
Assertions for polygons and multipolygons are not implemented.
Unimplemented operations may raise Error::UnsupportedOperation if invoked.
Options include:
:srid
-
Set the SRID returned by geometries created by this factory. Default is 0.
:proj4
-
The coordinate system in Proj4 format, either as a CoordSys::Proj4 object or as a string or hash representing the proj4 format. Optional.
:coord_sys
-
The coordinate system in OGC form, either as a subclass of CoordSys::CS::CoordinateSystem, or as a string in WKT format. Optional.
:srs_database
-
Optional. If provided, the value should be an implementation of CoordSys::SRSDatabase::Interface. If both this and an SRID are provided, they are used to look up the proj4 and coord_sys objects from a spatial reference system database.
:has_z_coordinate
-
Support a Z coordinate. Default is false.
:has_m_coordinate
-
Support an M coordinate. Default is false.
:uses_lenient_assertions
-
If set to true, assertion checking is disabled. This includes simplicity checking on LinearRing, and validity checks on Polygon and MultiPolygon. This may speed up creation of certain objects, at the expense of not doing the proper checking for OGC compliance. Default is false.
:wkt_parser
-
Configure the parser for WKT. The value is a hash of configuration parameters for WKRep::WKTParser.new. Default is the empty hash, indicating the default configuration for WKRep::WKTParser.
:wkb_parser
-
Configure the parser for WKB. The value is a hash of configuration parameters for WKRep::WKBParser.new. Default is the empty hash, indicating the default configuration for WKRep::WKBParser.
:wkt_generator
-
Configure the generator for WKT. The value is a hash of configuration parameters for WKRep::WKTGenerator.new. Default is
{:convert_case => :upper}
. :wkb_generator
-
Configure the generator for WKT. The value is a hash of configuration parameters for WKRep::WKTGenerator.new. Default is the empty hash, indicating the default configuration for WKRep::WKBGenerator.
105 106 107 |
# File 'lib/rgeo/cartesian/interface.rb', line 105 def simple_factory(opts_ = {}) Cartesian::Factory.new(opts_) end |
.simple_factory_generator(defaults_ = {}) ⇒ Object
Returns a Feature::FactoryGenerator that creates simple factories. The given options are used as the default options.
A common case for this is to provide the :srs_database
as a default. Then, the factory generator need only be passed an SRID and it will automatically fetch the appropriate Proj4 and CoordSys objects.
130 131 132 |
# File 'lib/rgeo/cartesian/interface.rb', line 130 def simple_factory_generator(defaults_ = {}) ::Proc.new { |c_| simple_factory(defaults_.merge(c_)) } end |