lib/rgeo/geography/simple_mercator/feature_classes.rb in rgeo-0.1.12 vs lib/rgeo/geography/simple_mercator/feature_classes.rb in rgeo-0.1.13

- old
+ new

@@ -36,45 +36,39 @@ module RGeo module Geography - module SimpleMercator + module SimpleMercator # :nodoc: - class PointImpl + class PointImpl # :nodoc: include Features::Point - include Common::GeometryMethods + include ImplHelpers::BasicGeometryMethods include SimpleMercator::GeometryMethods - include Common::PointMethods + include ImplHelpers::BasicPointMethods - def initialize(factory_, x_, y_) - _set_factory(factory_) - _setup(x_, y_) - end - - def _validate_geometry @y = 85.0511287 if @y > 85.0511287 @y = -85.0511287 if @y < -85.0511287 super end def _make_projection(projection_factory_) # :nodoc: - rpd_ = Common::Helper::RADIANS_PER_DEGREE + rpd_ = Helper::RADIANS_PER_DEGREE mpr_ = EQUATORIAL_RADIUS projection_factory_.point(@x * rpd_ * mpr_, ::Math.log(::Math.tan(::Math::PI / 4.0 + @y * rpd_ / 2.0)) * mpr_) end def scaling_factor - 1.0 / ::Math.cos(Common::Helper::RADIANS_PER_DEGREE * @y) + 1.0 / ::Math.cos(Helper::RADIANS_PER_DEGREE * @y) end def canonical_point if @x >= -180.0 && @x < 180.0 @@ -88,107 +82,83 @@ end - class LineStringImpl + class LineStringImpl # :nodoc: include Features::LineString - include Common::GeometryMethods + include ImplHelpers::BasicGeometryMethods include SimpleMercator::GeometryMethods include SimpleMercator::NCurveMethods include SimpleMercator::CurveMethods - include Common::LineStringMethods + include ImplHelpers::BasicLineStringMethods include SimpleMercator::LineStringMethods - def initialize(factory_, points_) - _set_factory(factory_) - _setup(points_) - end - - def _make_projection(projection_factory_) # :nodoc: projection_factory_.line_string(@points.map{ |p_| p_.projection }) end end - class LinearRingImpl + class LinearRingImpl # :nodoc: include Features::Line - include Common::GeometryMethods + include ImplHelpers::BasicGeometryMethods include SimpleMercator::GeometryMethods include SimpleMercator::NCurveMethods include SimpleMercator::CurveMethods - include Common::LineStringMethods + include ImplHelpers::BasicLineStringMethods include SimpleMercator::LineStringMethods - include Common::LinearRingMethods + include ImplHelpers::BasicLinearRingMethods - def initialize(factory_, points_) - _set_factory(factory_) - _setup(points_) - end - - def _make_projection(projection_factory_) # :nodoc: projection_factory_.linear_ring(@points.map{ |p_| p_.projection }) end end - class LineImpl + class LineImpl # :nodoc: include Features::Line - include Common::GeometryMethods + include ImplHelpers::BasicGeometryMethods include SimpleMercator::GeometryMethods include SimpleMercator::NCurveMethods include SimpleMercator::CurveMethods - include Common::LineStringMethods + include ImplHelpers::BasicLineStringMethods include SimpleMercator::LineStringMethods - include Common::LineMethods + include ImplHelpers::BasicLineMethods - def initialize(factory_, start_, end_) - _set_factory(factory_) - _setup([start_, end_]) - end - - def _make_projection(projection_factory_) # :nodoc: projection_factory_.line(start_point.projection, end_point.projection) end end - class PolygonImpl + class PolygonImpl # :nodoc: include Features::Polygon - include Common::GeometryMethods + include ImplHelpers::BasicGeometryMethods include SimpleMercator::GeometryMethods include SimpleMercator::NSurfaceMethods include SimpleMercator::SurfaceMethods - include Common::PolygonMethods + include ImplHelpers::BasicPolygonMethods - def initialize(factory_, exterior_ring_, interior_rings_) - _set_factory(factory_) - _setup(exterior_ring_, interior_rings_) - end - - def _validate_geometry super unless projection raise Errors::InvalidGeometry, 'Polygon failed assertions' end @@ -202,100 +172,76 @@ end - class GeometryCollectionImpl + class GeometryCollectionImpl # :nodoc: include Features::GeometryCollection - include Common::GeometryMethods + include ImplHelpers::BasicGeometryMethods include SimpleMercator::GeometryMethods - include Common::GeometryCollectionMethods + include ImplHelpers::BasicGeometryCollectionMethods include SimpleMercator::GeometryCollectionMethods - def initialize(factory_, elements_) - _set_factory(factory_) - _setup(elements_) - end - - def _make_projection(projection_factory_) # :nodoc: projection_factory_.collection(@elements.map{ |p_| p_.projection }) end end - class MultiPointImpl + class MultiPointImpl # :nodoc: include Features::GeometryCollection - include Common::GeometryMethods + include ImplHelpers::BasicGeometryMethods include SimpleMercator::GeometryMethods - include Common::GeometryCollectionMethods + include ImplHelpers::BasicGeometryCollectionMethods include SimpleMercator::GeometryCollectionMethods - include Common::MultiPointMethods + include ImplHelpers::BasicMultiPointMethods - def initialize(factory_, elements_) - _set_factory(factory_) - _setup(elements_) - end - - def _make_projection(projection_factory_) # :nodoc: projection_factory_.multi_point(@elements.map{ |p_| p_.projection }) end end - class MultiLineStringImpl + class MultiLineStringImpl # :nodoc: include Features::GeometryCollection - include Common::GeometryMethods + include ImplHelpers::BasicGeometryMethods include SimpleMercator::GeometryMethods include SimpleMercator::NCurveMethods - include Common::GeometryCollectionMethods + include ImplHelpers::BasicGeometryCollectionMethods include SimpleMercator::GeometryCollectionMethods - include Common::MultiLineStringMethods + include ImplHelpers::BasicMultiLineStringMethods - def initialize(factory_, elements_) - _set_factory(factory_) - _setup(elements_) - end - - def _make_projection(projection_factory_) # :nodoc: projection_factory_.multi_line_string(@elements.map{ |p_| p_.projection }) end end - class MultiPolygonImpl + class MultiPolygonImpl # :nodoc: include Features::GeometryCollection - include Common::GeometryMethods + include ImplHelpers::BasicGeometryMethods include SimpleMercator::GeometryMethods include SimpleMercator::NSurfaceMethods - include Common::GeometryCollectionMethods + include ImplHelpers::BasicGeometryCollectionMethods include SimpleMercator::GeometryCollectionMethods - include Common::MultiPolygonMethods - - - def initialize(factory_, elements_) - _set_factory(factory_) - _setup(elements_) - end + include ImplHelpers::BasicMultiPolygonMethods def _validate_geometry super unless projection