Class: Charta::Factory::SimpleFeatureFactory

Inherits:
FeatureFactoryBase show all
Defined in:
lib/charta/factory/simple_feature_factory.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from FeatureFactoryBase

#empty_feature

Constructor Details

#initialize(ewkt_builder:, srid_provider:, transformer:) ⇒ SimpleFeatureFactory

Returns a new instance of SimpleFeatureFactory.



23
24
25
26
27
# 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

Instance Attribute Details

#ewkt_builderEwktFeatureBuilder (readonly)

Returns:



17
18
19
# File 'lib/charta/factory/simple_feature_factory.rb', line 17

def ewkt_builder
  @ewkt_builder
end

#srid_providerSridProvider (readonly)

Returns:



19
20
21
# File 'lib/charta/factory/simple_feature_factory.rb', line 19

def srid_provider
  @srid_provider
end

#transformerTransformers::EwktTransformer (readonly)



21
22
23
# File 'lib/charta/factory/simple_feature_factory.rb', line 21

def transformer
  @transformer
end

Class Method Details

.buildObject



7
8
9
10
11
12
13
# 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

Instance Method Details

#new_feature(coordinates, srs: nil, format: nil) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# 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