class Charta::Factory::SimpleFeatureFactory
Attributes
ewkt_builder[R]
@return [EwktFeatureBuilder]
srid_provider[R]
@return [SridProvider]
transformer[R]
@return [Transformers::EwktTransformer]
Public Class Methods
build()
click to toggle source
# File lib/charta/factory/simple_feature_factory.rb, line 7 def build new( ewkt_builder: EwktFeatureBuilder.new, srid_provider: SridProvider.build, transformer: Transformers::EwktTransformerChain.build ) end
new(ewkt_builder:, srid_provider:, transformer:)
click to toggle source
# File lib/charta/factory/simple_feature_factory.rb, line 23 def initialize(ewkt_builder:, srid_provider:, transformer:) @ewkt_builder = ewkt_builder @srid_provider = srid_provider @transformer = transformer end
Public Instance Methods
new_feature(coordinates, srs: nil, format: nil)
click to toggle source
# File lib/charta/factory/simple_feature_factory.rb, line 29 def new_feature(coordinates, srs: nil, format: nil) if coordinates.is_a?(Charta::Geometry) coordinates elsif coordinates.is_a?(RGeo::Feature::Instance) new_feature(Charta.generate_ewkt(coordinates)) elsif coordinates.to_s =~ /\A[[:space:]]*\z/ empty_feature(srs) else convert_feature(coordinates, srs: srs, format: format) end end
Private Instance Methods
convert_feature(coordinates, srs: nil, format: nil)
click to toggle source
# File lib/charta/factory/simple_feature_factory.rb, line 43 def convert_feature(coordinates, srs: nil, format: nil) srid = srs.nil? ? nil : srid_provider.find(srs) ewkt_builder.from_ewkt(transformer.transform(coordinates, srid: srid, format: format)) end