If a track contains waypoints, they are set to the router

This commit is contained in:
Unknown 2019-10-02 16:16:29 +02:00
parent ee54d45790
commit ff1499c62b
2 changed files with 25 additions and 5 deletions

View file

@ -271,7 +271,7 @@
BR.stravaSegments(map, layersControl); BR.stravaSegments(map, layersControl);
} }
BR.tracksLoader(map, layersControl); BR.tracksLoader(map, layersControl, routing);
map.addControl( map.addControl(
new BR.OpacitySliderControl({ new BR.OpacitySliderControl({

View file

@ -1,4 +1,4 @@
BR.tracksLoader = function(map, layersControl) { BR.tracksLoader = function(map, layersControl, routing) {
TracksLoader = L.Control.FileLayerLoad.extend({ TracksLoader = L.Control.FileLayerLoad.extend({
options: { options: {
layer: L.geoJson, layer: L.geoJson,
@ -49,9 +49,29 @@ BR.tracksLoader = function(map, layersControl) {
tracksLoaderControl.addTo(map); tracksLoaderControl.addTo(map);
tracksLoaderControl.loader.on('data:loaded', function(event) { tracksLoaderControl.loader.on('data:loaded', function(event) {
var layer = event.layer; var eventLayer = event.layer;
layersControl.addOverlay(layer, event.filename); let routingMarkers = [];
layer.addTo(map); for (let layerIdx = 0; layerIdx < eventLayer.getLayers().length; layerIdx++) {
const layer = eventLayer.getLayers()[layerIdx];
if (layer.feature && layer.feature.properties && layer.feature.properties.type) {
const layerType = layer.feature.properties.type;
if (layerType === 'from' || layerType === 'via' || layerType === 'to') {
routingMarkers.push(layer.getLatLng());
}
}
}
if (routingMarkers.length > 0) {
routing.setWaypoints(routingMarkers, function(event) {
var err = event.error;
BR.message.showError(
i18next.t('warning.tracks-load-error', {
error: err && err.message ? err.message : err
})
);
});
}
layersControl.addOverlay(eventLayer, event.filename);
eventLayer.addTo(map);
}); });
tracksLoaderControl.loader.on('data:error', function(event) { tracksLoaderControl.loader.on('data:error', function(event) {