Class: GpsTrail
- Inherits:
-
Object
- Object
- GpsTrail
- Defined in:
- lib/gpstrail.rb
Instance Method Summary collapse
- #create_coords_list(journey) ⇒ Object
- #create_placemark_kml(journey) ⇒ Object
- #load_converters ⇒ Object
- #process(file_to_process, converter) ⇒ Object
Instance Method Details
#create_coords_list(journey) ⇒ Object
74 75 76 77 78 79 80 81 |
# File 'lib/gpstrail.rb', line 74 def create_coords_list(journey) coords = "" journey.samples.each do |sample| point = sample.point coords += point.long.to_s + "," + point.lat.to_s + ",0\n" end coords end |
#create_placemark_kml(journey) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/gpstrail.rb', line 62 def create_placemark_kml(journey) look_at_lat, look_at_long = journey.find_center coords = create_coords_list(journey) map = { "look_at_long" => look_at_long.to_s, "look_at_lat" => look_at_lat.to_s, "range" => journey.find_distance_of_longest_vector.to_s, "tilt" => 45.to_s, "heading" => 0.to_s, "coordinates" => coords, "name" => journey.start_time.to_s} Template.load_and_substitute('line_template.kml', map) end |
#load_converters ⇒ Object
83 84 85 86 87 88 89 |
# File 'lib/gpstrail.rb', line 83 def load_converters Find.find("./converters") do |filename| load filename if filename =~ /rb$/ end BaseConverter.converters end |
#process(file_to_process, converter) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/gpstrail.rb', line 37 def process(file_to_process, converter) start_time = Time.now puts "Processing #{file_to_process}\nPlease wait..." STDOUT.flush xml_doc = Document.new(File.open(file_to_process)) journeys = converter.convert(xml_doc) placemarks_kml = "" journeys.each do |journey| placemarks_kml += create_placemark_kml(journey) end map = {"placemarks" => placemarks_kml, "journey_type" => "Run"} kml = Template.load_and_substitute('folder_template.kml', map) kml_file_name = File.join(ENV['HOMEPATH'], "gpstrail.kml") kml_file = File.new(kml_file_name, "w") kml_file.puts(kml) kml_file.close total_time = Time.now - start_time puts "Output written to #{kml_file_name}" puts "Processed #{journeys.size} journeys in #{total_time}s" end |