Sha256: ea4c754d3f3e6eabbb6c9696cb1537a3e0faa932fa8e953133b6b24ce3d4ce6a

Contents?: true

Size: 789 Bytes

Versions: 5

Compression:

Stored size: 789 Bytes

Contents

# frozen_string_literal: true

module Armg
  class WktDeserializer
    DEFAULT_WKB_PARSER_OPTIONS = {
      support_ewkb: true
    }.freeze

    DEFAULT_WKT_GENERATOR_OPTIONS = {
      tag_format: :ewkt
      # emit_ewkt_srid: true,
    }.freeze

    def initialize(factory: nil, wkb_parser_options: {}, wkt_generator_options: {})
      @wkb_parser = RGeo::WKRep::WKBParser.new(
        factory,
        DEFAULT_WKB_PARSER_OPTIONS.merge(wkb_parser_options)
      )
      @wkt_generator = RGeo::WKRep::WKTGenerator.new(
        DEFAULT_WKT_GENERATOR_OPTIONS.merge(wkt_generator_options)
      )
    end

    def deserialize(mysql_geometry)
      wkb = Armg::Utils.mysql_geometry_to_wkb(mysql_geometry)
      obj = @wkb_parser.parse(wkb)
      @wkt_generator.generate(obj)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
armg-0.11.0 lib/armg/wkt_deserializer.rb
armg-0.10.0 lib/armg/wkt_deserializer.rb
armg-0.9.0 lib/armg/wkt_deserializer.rb
armg-0.8.1 lib/armg/wkt_deserializer.rb
armg-0.8.0 lib/armg/wkt_deserializer.rb