X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/d9e070e06956801aba2378c1b79b4d9f13ae12ee..baf10cd39289cd7e94a819305e46f43e85a136c6:/lib/gpx.rb diff --git a/lib/gpx.rb b/lib/gpx.rb index 76f0af19a..ae9af0d46 100644 --- a/lib/gpx.rb +++ b/lib/gpx.rb @@ -23,18 +23,18 @@ module GPX point = nil - while reader.read > 0 + while reader.read if reader.node_type == XML::Reader::TYPE_ELEMENT if reader.name == "trkpt" point = TrkPt.new(@tracksegs, reader["lat"].to_f, reader["lon"].to_f) @possible_points += 1 - elsif reader.name == "ele" and point + elsif reader.name == "ele" && point point.altitude = reader.read_string.to_f - elsif reader.name == "time" and point + elsif reader.name == "time" && point point.timestamp = DateTime.parse(reader.read_string) end elsif reader.node_type == XML::Reader::TYPE_END_ELEMENT - if reader.name == "trkpt" and point and point.valid? + if reader.name == "trkpt" && point && point.valid? point.altitude ||= 0 yield point @actual_points += 1 @@ -63,22 +63,16 @@ module GPX highlightgc.stroke('#000000') highlightgc.fill('#000000') - images = [] - - frames.times do - image = Magick::Image.new(width, height) do |image| + images = frames.times.collect do + Magick::Image.new(width, height) do |image| image.background_color = 'white' image.format = 'GIF' end - - images << image end oldpx = 0.0 oldpy = 0.0 - first = true - m = 0 mm = 0 points do |p| @@ -100,7 +94,7 @@ module GPX end m += 1 - if m > num_points.to_f / frames.to_f * (mm+1) + if m > num_points.to_f / frames.to_f * (mm + 1) mm += 1 end @@ -117,7 +111,7 @@ module GPX il.delay = 50 il.format = 'GIF' - return il.to_blob + il.to_blob end def icon(min_lat, min_lon, max_lat, max_lon) @@ -131,9 +125,9 @@ module GPX gc.stroke('#000000') gc.fill('#000000') - image = Magick::Image.new(width, height) do |image| - image.background_color = 'white' - image.format = 'GIF' + image = Magick::Image.new(width, height) do |i| + i.background_color = 'white' + i.format = 'GIF' end oldpx = 0.0 @@ -152,17 +146,17 @@ module GPX oldpx = px end - return image.to_blob + image.to_blob end end -private + private class TrkPt < Struct.new(:segment, :latitude, :longitude, :altitude, :timestamp) def valid? - self.latitude and self.longitude and self.timestamp and - self.latitude >= -90 and self.latitude <= 90 and - self.longitude >= -180 and self.longitude <= 180 + latitude && longitude && timestamp && + latitude >= -90 && latitude <= 90 && + longitude >= -180 && longitude <= 180 end end end