GPX tracks were silently failing to render for large real-world files: point_extensions used REXML's "extensions//*" XPath, and the // descendant axis costs low-single-digit milliseconds per call regardless of subtree size. Run once per point, that's negligible on small files but ~30s on a real 8000-point track — long enough to hit a proxy timeout in production, so the file just never appeared with no error. Replaced with plain recursive child traversal (~40x faster on the same file, confirmed 29.9s -> 3.16s); test_parsing_many_points_with_extensions_stays_fast guards against reintroducing it. Also adds support for <rte> routes (not just <trk> tracks and <wpt> waypoints), sharing the track/route conversion logic via a new line_feature helper. Routes get their own "route" kind and a dashed ROUTE_ICON in the file tree so the type is visible at a glance.
13 lines
268 B
XML
13 lines
268 B
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<gpx version="1.1" creator="test">
|
|
<rte>
|
|
<name>Planned Loop</name>
|
|
<rtept lat="48.1" lon="17.2">
|
|
<ele>200</ele>
|
|
</rtept>
|
|
<rtept lat="48.101" lon="17.201">
|
|
<ele>210</ele>
|
|
</rtept>
|
|
</rte>
|
|
</gpx>
|