frontend just connects the different entries "as a list" in the order how they appear in the .rec file. This occasionally creates nonsensical zig zag lines bouncing back and forth until the list follows a stringent chronological order again. Interestingly, otrecorder's built in linestring view does not suffer from this problem and connects all the points correctly in the order of the timestamps. It would be great if you could change the code in frontend to also respect the timestamps just like otrecorder linestring does.
2021-11-01T20:03:30Z * {"_type":"location","acc":6,"alt":398,"batt":83,"bs":1,"conn":"m","lat":40.358487,"lon":-110.03499,"tid":"P","tst":1635797010,"vac":108,"vel":3}
2021-11-01T20:05:14Z * {"_type":"location","acc":6,"alt":335,"batt":83,"bs":1,"cog":68,"conn":"m","lat":40.358936,"lon":-110.034868,"tid":"P","tst":1635797114,"vac":3,"vel":5}
2021-11-01T20:05:42Z * {"_type":"location","acc":8,"alt":339,"batt":83,"bs":1,"cog":4,"conn":"m","lat":40.359393,"lon":-110.03482,"tid":"P","tst":1635797142,"vac":3,"vel":4}
2021-11-01T20:06:43Z * {"_type":"location","acc":8,"alt":345,"batt":83,"bs":1,"cog":351,"conn":"m","lat":40.359741,"lon":-110.035266,"tid":"P","tst":1635797203,"vac":3,"vel":5}
2021-11-01T20:07:11Z * {"_type":"location","acc":8,"alt":349,"batt":83,"bs":1,"cog":326,"conn":"m","lat":40.360183,"lon":-110.03544,"tid":"P","tst":1635797231,"vac":3,"vel":4}
2021-11-01T20:07:35Z * {"_type":"location","acc":8,"alt":355,"batt":83,"bs":1,"cog":331,"conn":"m","lat":40.360581,"lon":-110.035816,"tid":"P","tst":1635797255,"vac":3,"vel":5}
These are the same locations but the last position appears higher up in the list (which happens frequently when clients loose connectivity temporarily):
2021-11-01T20:03:30Z * {"_type":"location","acc":6,"alt":398,"batt":83,"bs":1,"conn":"m","lat":40.358487,"lon":-110.03499,"tid":"P","tst":1635797010,"vac":108,"vel":3}
2021-11-01T20:05:14Z * {"_type":"location","acc":6,"alt":335,"batt":83,"bs":1,"cog":68,"conn":"m","lat":40.358936,"lon":-110.034868,"tid":"P","tst":1635797114,"vac":3,"vel":5}
2021-11-01T20:05:42Z * {"_type":"location","acc":8,"alt":339,"batt":83,"bs":1,"cog":4,"conn":"m","lat":40.359393,"lon":-110.03482,"tid":"P","tst":1635797142,"vac":3,"vel":4}
2021-11-01T20:07:35Z * {"_type":"location","acc":8,"alt":355,"batt":83,"bs":1,"cog":331,"conn":"m","lat":40.360581,"lon":-110.035816,"tid":"P","tst":1635797255,"vac":3,"vel":5}
2021-11-01T20:06:43Z * {"_type":"location","acc":8,"alt":345,"batt":83,"bs":1,"cog":351,"conn":"m","lat":40.359741,"lon":-110.035266,"tid":"P","tst":1635797203,"vac":3,"vel":5}
2021-11-01T20:07:11Z * {"_type":"location","acc":8,"alt":349,"batt":83,"bs":1,"cog":326,"conn":"m","lat":40.360183,"lon":-110.03544,"tid":"P","tst":1635797231,"vac":3,"vel":4}
frontend renders the upper list correctly and the lower list wrongly with a zig zag.
otrecorder renders both lists correctly, i.e. the render appears exactly the same for both lists as it follows the timestamps.