added support for saving route zoom level and position in route links
This commit is contained in:
		
							parent
							
								
									d86eaa00a0
								
							
						
					
					
						commit
						9567a7e38c
					
				@ -176,8 +176,10 @@ function checkURL(){
 | 
			
		||||
	
 | 
			
		||||
	// storage for parameter values
 | 
			
		||||
	var positions = [];
 | 
			
		||||
	var destination = undefined;
 | 
			
		||||
	var destination_name = undefined;
 | 
			
		||||
	var zoom = null;
 | 
			
		||||
	var center = null;
 | 
			
		||||
	var destination = null;
 | 
			
		||||
	var destination_name = null;
 | 
			
		||||
 | 
			
		||||
	// parse input
 | 
			
		||||
	var splitted_url = called_url.split('&');
 | 
			
		||||
@ -201,6 +203,17 @@ function checkURL(){
 | 
			
		||||
		else if(name_val[0] == 'destname') {
 | 
			
		||||
			destination_name = decodeURI(name_val[1]).replace(/<\/?[^>]+(>|$)/g ,"");	// discard tags	
 | 
			
		||||
		}
 | 
			
		||||
		else if(name_val[0] == 'zoom') {
 | 
			
		||||
			zoom = name_val[1];
 | 
			
		||||
			if( zoom<0 || zoom > 18)
 | 
			
		||||
				return;
 | 
			
		||||
		}
 | 
			
		||||
		else if(name_val[0] == 'center') {
 | 
			
		||||
			var coordinates = unescape(name_val[1]).split(',');
 | 
			
		||||
			if(coordinates.length!=2 || !isLatitude(coordinates[0]) || !isLongitude(coordinates[1]) )
 | 
			
		||||
				return;				
 | 
			
		||||
			center = new L.LatLng( coordinates[0], coordinates[1]);			
 | 
			
		||||
		}		
 | 
			
		||||
	}
 | 
			
		||||
		
 | 
			
		||||
	// case 1: destination given
 | 
			
		||||
@ -227,9 +240,13 @@ function checkURL(){
 | 
			
		||||
		for(var i=0; i<my_markers.route.length;i++)
 | 
			
		||||
			my_markers.route[i].show();
 | 
			
		||||
		
 | 
			
		||||
		// center on route
 | 
			
		||||
		var bounds = new L.LatLngBounds( positions );
 | 
			
		||||
		map.fitBounds( bounds );		
 | 
			
		||||
		// center on route (support for old links) / move to given view (new behaviour)
 | 
			
		||||
		if(zoom == null || center == null) {
 | 
			
		||||
			var bounds = new L.LatLngBounds( positions );
 | 
			
		||||
			map.fitBounds( bounds );
 | 
			
		||||
		} else {
 | 
			
		||||
			map.setView(center, zoom);
 | 
			
		||||
		}
 | 
			
		||||
			
 | 
			
		||||
		// compute route
 | 
			
		||||
		getRoute(OSRM.FULL_DESCRIPTION);
 | 
			
		||||
 | 
			
		||||
@ -134,6 +134,7 @@ function showRouteLink_TimeOut(){
 | 
			
		||||
function showRouteDescription(response) {
 | 
			
		||||
	// compute query string
 | 
			
		||||
	var query_string = '?z='+ map.getZoom();
 | 
			
		||||
	query_string += '¢er=' + map.center.getLat() + ',' + map.center.getLng();
 | 
			
		||||
	for(var i=0; i<my_markers.route.length; i++)
 | 
			
		||||
		query_string += '&loc=' + my_markers.route[i].getLat() + ',' + my_markers.route[i].getLng(); 
 | 
			
		||||
 						
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user