class Parser::Gpx
Attributes
parsed_file[R]
points[R]
simplified_points[R]
Public Class Methods
new(filename)
click to toggle source
# File lib/simple_trail/parser/gpx.rb, line 7 def initialize(filename) @filename = filename end
Public Instance Methods
meta()
click to toggle source
# File lib/simple_trail/parser/gpx.rb, line 18 def meta @meta ||= extract_data end
read()
click to toggle source
# File lib/simple_trail/parser/gpx.rb, line 11 def read file = File.new(@filename) @parsed_file = XmlHasher.parse(file)[:gpx] fail unless @parsed_file extract_points end
Private Instance Methods
extract_data()
click to toggle source
# File lib/simple_trail/parser/gpx.rb, line 30 def extract_data metadata = @parsed_file[:metadata] { name: metadata[:name], author: metadata[:author][:name] } end
extract_points()
click to toggle source
# File lib/simple_trail/parser/gpx.rb, line 24 def extract_points segments = @parsed_file.dig(:trk, :trkseg) @points = segments.is_a?(Array) ? segments.map { |seg| seg[:trkpt] }.flatten : segments[:trkpt] @simplified_points = @points.map { |point| point.select { |key, _| [:lon, :lat].include? key } } end