work on history routes
This commit is contained in:
		
							parent
							
								
									47b2268504
								
							
						
					
					
						commit
						85ea79701c
					
				| @ -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( [] ); | ||||
| 		} | ||||
| 	}	 | ||||
| }); | ||||
|  | ||||
| @ -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); | ||||
| }, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user