Sha256: eae1df8f221c0f3c7b5775becc86e1a31b5c518bb1001d4bf8cd5da56ddd5361

Contents?: true

Size: 785 Bytes

Versions: 1

Compression:

Stored size: 785 Bytes

Contents

# frozen_string_literal: true

module Armg
  class WktSerializer
    DEFAULT_WKB_GENERATOR_OPTIONS = {
      type_format: :ewkb,
      little_endian: true
    }.freeze

    DEFAULT_WKT_PARSER_OPTIONS = {
      support_ewkt: true
    }.freeze

    def initialize(factory: nil, wkb_generator_options: {}, wkt_parser_options: {})
      @wkb_generator = RGeo::WKRep::WKBGenerator.new(
        DEFAULT_WKB_GENERATOR_OPTIONS.merge(wkb_generator_options)
      )
      @wkt_parser = RGeo::WKRep::WKTParser.new(factory,
                                               DEFAULT_WKT_PARSER_OPTIONS.merge(wkt_parser_options))
    end

    def serialize(wkt)
      obj = @wkt_parser.parse(wkt)
      srid = Armg::Utils.pack_srid(obj.srid)
      srid + @wkb_generator.generate(obj)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
armg-0.7.2 lib/armg/wkt_serializer.rb