v1.2.0
This is a new feature release with the following new options and build updates:
- We updated the libraries Boost to 1.90.0, csv-parser to 2.5.2, expat to 2.7.5, libosmium to 2.23.1, and zlib to 1.3.2
- We updated the CMake build system to 4.2 due to changes in the zlib upstream package
- We went back from the completely static build to a build that depends on glibc again, because of crashes. We know it was never recommended to do so. However, since we still build on Ubuntu 20.04 LTS and glibc is upwards-compatible, it should work on any recent system. If not, please let us know.
- We reworked the error calculation when a skip is considered within a match, to prevent it further as to a last resort when nothing else works. The error is now higher and no longer dependent of the position of the track point in the track. It should reduce introduced gaps compared to before.
- We made the importing of numbers more robust and more platform independent. The newson-krumm data set did not import correctly on Windows before, which is now fixed thanks to this change.
- We reworked the
export-edgesmode. Previously, theexport-edgessetting overwrote thematchcolumn in the output with a re-extracted match based on the complete road network edges. This still is possible, but now, theedgescolumn can be added to the output columns instead, to export both results simultaneously. - We reworked the
candidatesexport setting. Previously, all candidates were exported, which polluted the file. Now only the candidates that are part of the resulting match are exported. The newcandidates-export-allsetting allows for the old behavior but has to be opted in now when all candidates are of interest. Also, thefromandtocolumns are now off by default, but can still be enabled, as well as theis_resultcolumn that is only automatically enabled whencandidates-export-allis on. - We have a new
time-interpolationfor the match times that interpolates the timings based on the prepared track (the track that is actually matched aftertrajectory-simplificationhas been applied). By default, the times are interpolated based ongeometricdistances, but the interpolation can also be set topointsfor interpolating based on the number of points, ornonefor no interpolation. The interpolated times are only outputted when the newmatch_timescolumn is specified and for every point in thematchWKT line, a corresponding time is given in the list. This works similar to thetrack_timesandprepared_times. Thetrajectory-simplificationcan also be disabled so that the original track times are used for interpolating the match times, which improves time accuracy but reduces matching accuracy at the same time. - We have a new
concatenate-skipssetting that concatenates partial matches (i.e., MultiLineString WKT lines) and makes them into LineString WKT lines again, when it is possible, i.e., when there exist routes between the partial matches. This setting also sets a newexport-routing-max-distance-factor-overrideto disabled so that eventually, the partial matches can be connected, even when they have a very large distance. By default, theconcatenate-skipssetting is disabled and theexport-routing-max-distance-factor-overrideis set to the same value asrouting-max-distance-factor, which is used during optimization to limit routing distance. Be warned that this almost always makes the match less accurate, because there is generally a reason why a gap exists in the match. But if you need a complete line without gaps, this setting is for you. However, it also depends on the next point: - We have a new
remove-oneway-dead-endsetting on preparing road network graphs for removing parts of the road network that can only be routed into but not out of it, for example, oneways that lead somewhere but no returning edges exist. This can happen as part of map errors or when osm tags are filtered in such a way that such oneways remain whereas the returning roads are filtered out. This is best used in combination withremove-unconnectedandconcatenate-skipsto make sure that all MultiLineStrings can be connected into one single LineString.
Full Changelog: v1.1.7...v1.2.0