work on history routes

This commit is contained in:
DennisSchiefer 2012-05-10 14:43:20 +01:00
parent 47b2268504
commit 85ea79701c
2 changed files with 35 additions and 49 deletions

View File

@ -30,6 +30,8 @@ OSRM.Route = function() {
this._unnamed_route_style = {dashed:false, color:'#FF00FF', weight:10};
this._old_unnamed_route_style = {dashed:false, color:'#990099', weight:10};
this._noroute = OSRM.Route.ROUTE;
this._route_history_styles = [{dashed:false, color:'#FF0000', weight:5},
{dashed:false, color:'#00FF00', weight:5},
{dashed:false, color:'#0000FF', weight:5},
@ -41,31 +43,16 @@ OSRM.Route = function() {
{dashed:false, color:'#770077', weight:5},
{dashed:false, color:'#007777', weight:5}
];
this._route_history = [ new OSRM.SimpleRoute("current" , {dashed:false} ),
new OSRM.SimpleRoute("current" , {dashed:false} ),
new OSRM.SimpleRoute("current" , {dashed:false} ),
new OSRM.SimpleRoute("current" , {dashed:false} ),
new OSRM.SimpleRoute("current" , {dashed:false} ),
new OSRM.SimpleRoute("current" , {dashed:false} ),
new OSRM.SimpleRoute("current" , {dashed:false} ),
new OSRM.SimpleRoute("current" , {dashed:false} ),
new OSRM.SimpleRoute("current" , {dashed:false} ),
new OSRM.SimpleRoute("current" , {dashed:false} ) ];
this._route_history_count = 0;
this._noroute = OSRM.Route.ROUTE;
this._route_history = [];
for(var i=0, size=this._route_history_styles.length; i<size; i++)
this._route_history.push( new OSRM.SimpleRoute("current" , {dashed:false} ) );
};
OSRM.Route.NOROUTE = true;
OSRM.Route.ROUTE = false;
OSRM.extend( OSRM.Route,{
showRoute: function(positions, noroute) {
if( document.getElementById('option-show-previous-routes').checked == true) {
for(var i=0,size=this._route_history.length; i<size; i++) {
this._route_history[i].setStyle( this._route_history_styles[i] );
this._route_history[i].show();
}
}
this.showHistoryRoutes();
this._noroute = noroute;
this._current_route.setPositions( positions );
if ( this._noroute == OSRM.Route.NOROUTE )
@ -74,22 +61,9 @@ OSRM.extend( OSRM.Route,{
this._current_route.setStyle( this._current_route_style );
this._current_route.show();
//this._raiseUnnamedRoute();
// if( document.getElementById('option-show-previous-routes').checked == true) {
// if(this._noroute != OSRM.Route.NOROUTE) {
// for(var i=4; i>0; i--)
// this._route_history[i].setPositions( this._route_history[i-1].getPositions() );
// this._route_history[0].setPositions( this._current_route.getPositions() );
// }
// }
},
hideRoute: function() {
if( document.getElementById('option-show-previous-routes').checked == true) {
for(var i=0,size=this._route_history.length; i<size; i++) {
this._route_history[i].setStyle( this._route_history_styles[i] );
this._route_history[i].show();
}
}
this.showHistoryRoutes();
this._current_route.hide();
this._unnamed_route.hide();
// deactivate printing
@ -101,11 +75,6 @@ OSRM.extend( OSRM.Route,{
this._noroute = OSRM.Route.ROUTE;
this.clearHistoryRoutes();
},
clearHistoryRoutes: function() {
for(var i=0,size=this._route_history.length; i<size; i++)
this._route_history[i].hide();
this._route_history = [];
},
showUnnamedRoute: function(positions) {
this._unnamed_route.clearRoutes();
@ -157,5 +126,30 @@ OSRM.extend( OSRM.Route,{
},
centerView: function() {
this._current_route.centerView();
},
// history route handling
storeHistoryRoute: function() {
if( document.getElementById('option-show-previous-routes').checked == false)
return;
if(this.isShown() && this.isRoute()) {
for(var i=this._route_history.length-1; i>0; i--)
this._route_history[i].setPositions( this._route_history[i-1].getPositions() );
this._route_history[0].setPositions( this._current_route.getPositions() );
}
},
showHistoryRoutes: function() {
if( document.getElementById('option-show-previous-routes').checked == false)
return;
for(var i=1,size=this._route_history.length; i<size; i++) {
this._route_history[i].setStyle( this._route_history_styles[i] );
this._route_history[i].show();
}
},
clearHistoryRoutes: function() {
for(var i=0,size=this._route_history.length; i<size; i++) {
this._route_history[i].hide();
this._route_history[i].setPositions( [] );
}
}
});

View File

@ -65,16 +65,7 @@ showRouteSimple: function(response) {
} else {
OSRM.RoutingGeometry.show(response);
OSRM.RoutingDescription.showSimple(response);
// store history route
var route = OSRM.G.route;
if( document.getElementById('option-show-previous-routes').checked == true) {
if(route._noroute != OSRM.Route.NOROUTE) {
for(var i=route._route_history.length-1; i>0; i--)
route._route_history[i].setPositions( route._route_history[i-1].getPositions() );
route._route_history[0].setPositions( route._current_route.getPositions() );
}
}
OSRM.G.route.storeHistoryRoute();
}
OSRM.Routing._updateHints(response);
@ -97,6 +88,7 @@ showRoute: function(response) {
OSRM.RoutingNoNames.show(response);
OSRM.RoutingDescription.show(response);
OSRM.Routing._snapRoute();
OSRM.G.route.storeHistoryRoute();
}
OSRM.Routing._updateHints(response);
},