From: Tom Hughes Date: Sat, 15 Feb 2025 15:22:36 +0000 (+0000) Subject: Merge remote-tracking branch 'upstream/pull/5233' X-Git-Tag: live~138 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/5047ec403db94b0d371a9a10b56801bc0a3fcf0a?ds=sidebyside;hp=-c Merge remote-tracking branch 'upstream/pull/5233' --- 5047ec403db94b0d371a9a10b56801bc0a3fcf0a diff --combined lib/gpx.rb index 45a4dcf5f,021971c36..921dce12c --- a/lib/gpx.rb +++ b/lib/gpx.rb @@@ -27,10 -27,12 +27,12 @@@ module GP point.timestamp = Time.parse(reader.read_string).utc end when XML::Reader::TYPE_END_ELEMENT - if reader.name == "trkpt" && point && point.valid? + if reader.name == "trkpt" && point&.valid? point.altitude ||= 0 yield point @actual_points += 1 + @lats << point.latitude + @lons << point.longitude elsif reader.name == "trkseg" @tracksegs += 1 end @@@ -44,6 -46,8 +46,8 @@@ @possible_points = 0 @actual_points = 0 @tracksegs = 0 + @lats = [] + @lons = [] begin Archive::Reader.open_filename(@file).each_entry_with_data do |entry, data| @@@ -94,9 -98,9 +98,9 @@@ first = true - points.each_with_index do |p, pt| - px = proj.x(p.longitude) - py = proj.y(p.latitude) + @actual_points.times do |pt| + px = proj.x @lons[pt] + py = proj.y @lats[pt] if (pt >= (points_per_frame * n)) && (pt <= (points_per_frame * (n + 1))) pen.thickness = 3 @@@ -151,9 -155,9 +155,9 @@@ first = true - points do |p| - px = proj.x(p.longitude) - py = proj.y(p.latitude) + @actual_points.times do |pt| + px = proj.x @lons[pt] + py = proj.y @lats[pt] pen.line(px, py, oldpx, oldpy) unless first