Add sidebar tab with route analysis data

- adds a new analysis tab in the sidebar
- the analysis tab shows length distribution for different way types, surface, and smoothness
- table rows can be hovered/clicked to highlight the according segments on the map (similar behaviour as the detailed data table)
- localization is implemented for `de` and `en`
- the method for finding segment edges was extracted from `js/control/TrackMessages.js` into `js/util/TrackEdges.js` as it's used in the new analysis class too (the Gulp config was changed to reflect that)

Notes:

I had the idea to use the *DataTable* plugin for rendering the tables but decided against it. The only meaningful way to sort such a table is by the length column and that's already the case. So it's just three plain, old HTML tables, rendered by jQuery.

For meaningful statistics the `processUnusedTags` setting has to be enabled in the routing profile. Only in this case the BRouter backend includes all needed tags (`highway`, `surface`, and `smoothness`) for *every* route segment in the response. I’ve enabled that setting for all profiles at my BRouter-web instance at <https://brouter.m11n.de/>.
This commit is contained in:
Marcus Jaschen 2020-06-07 16:56:50 +02:00
parent b181649dff
commit fc54c65e23
9 changed files with 682 additions and 53 deletions

View file

@ -573,6 +573,11 @@
><i class="fa fa-table"></i
></a>
</li>
<li>
<a href="#tab_statistics" role="tab" data-i18n="[title]sidebar.analysis.title" title="Analysis"
><i class="fa fa-pie-chart"></i
></a>
</li>
</ul>
</div>
@ -764,6 +769,14 @@
</h1>
<div id="itinerary" class="flexcolumn flexgrow"></div>
</div>
<div class="leaflet-sidebar-pane" id="tab_statistics">
<h1 class="leaflet-sidebar-header">
<span data-i18n="sidebar.analysis.title">Analysis</span>
<span class="leaflet-sidebar-close"><i class="fa fa-caret-right"></i></span>
</h1>
<div id="track_statistics" class="flexcolumn flexgrow"></div>
</div>
</div>
</div>
</div>