support for multiple routing servers

This commit is contained in:
shiin 2012-07-30 15:06:15 +02:00
parent ecd342224e
commit 8ecae7ef97
5 changed files with 15 additions and 4 deletions

View File

@ -19,7 +19,7 @@ or see http://www.gnu.org/licenses/agpl.txt.
// [has to be loaded directly after OSRM.base]
OSRM.DEFAULTS = {
HOST_ROUTING_URL: 'http://router.project-osrm.org/viaroute',
HOST_ROUTING_URL: ['http://router.project-osrm.org/viaroute'],
HOST_SHORTENER_URL: 'http://map.project-osrm.org/shorten/',
HOST_TIMESTAMP_URL: 'http://router.project-osrm.org/timestamp',
HOST_GEOCODER_URL: 'http://nominatim.openstreetmap.org/search',

View File

@ -169,7 +169,7 @@ OSRM.extend( OSRM.HistoryRoute,{
}
},
_buildCall: function(history_id) {
var source = OSRM.DEFAULTS.HOST_ROUTING_URL;
var source = OSRM.DEFAULTS.HOST_ROUTING_URL[OSRM.G.active_routing_server];
source += '?z=' + OSRM.G.map.getZoom() + '&output=json&jsonp=%jsonp';
if(this._history[history_id].checksum)

View File

@ -238,6 +238,12 @@ OSRM.parseParameters = function(){
return;
params.active_alternative = active_alternative;
}
else if(name_val[0] == 'rs') {
var active_routing_server = Number(name_val[1]);
if( active_routing_server<0 || active_routing_server>=OSRM.DEFAULTS.HOST_ROUTING_URL.length)
return;
params.active_routing_server = active_routing_server;
}
}
// case 1: destination given
@ -280,6 +286,9 @@ OSRM.parseParameters = function(){
// set active alternative (if via points are set or alternative does not exists: automatic fallback to shortest route)
OSRM.G.active_alternative = params.active_alternative || 0;
// set routing server
OSRM.G.active_routing_server = params.active_routing_server || 0;
// compute route
OSRM.Routing.getRoute({keepAlternative:true});
OSRM.G.initial_position_override = true;

View File

@ -31,6 +31,7 @@ OSRM.Routing = {
// init routing data structures
init: function() {
OSRM.G.active_routing_server = 0;
OSRM.G.markers = new OSRM.Markers();
OSRM.G.route = new OSRM.Route();
OSRM.G.response = { via_points:[] };
@ -159,7 +160,7 @@ draggingTimeout: function() {
},
_buildCall: function() {
var source = OSRM.DEFAULTS.HOST_ROUTING_URL;
var source = OSRM.DEFAULTS.HOST_ROUTING_URL[OSRM.G.active_routing_server];
source += '?z=' + OSRM.G.map.getZoom() + '&output=json&jsonp=%jsonp';
if(OSRM.G.markers.checksum)
source += '&checksum=' + OSRM.G.markers.checksum;

View File

@ -31,6 +31,7 @@ onClickCreateShortcut: function(src){
src += '&z='+ OSRM.G.map.getZoom() + '&center=' + OSRM.G.map.getCenter().lat.toFixed(6) + ',' + OSRM.G.map.getCenter().lng.toFixed(6);
src += '&alt='+OSRM.G.active_alternative;
src += '&df=' + OSRM.G.DISTANCE_FORMAT;
src += '&rs=' + OSRM.G.active_routing_server;
var source = OSRM.DEFAULTS.SHORTENER_PARAMETERS.replace(/%url/, OSRM.DEFAULTS.HOST_SHORTENER_URL+src);
@ -61,7 +62,7 @@ show: function(response) {
var route_link ='[<a class="route-link" onclick="OSRM.RoutingDescription.onClickCreateShortcut(\'' + OSRM.DEFAULTS.WEBSITE_URL + query_string + '\')">'+OSRM.loc("GET_LINK_TO_ROUTE")+'</a>]';
// create GPX link
var gpx_link = '[<a class="route-link" onClick="document.location.href=\'' + OSRM.DEFAULTS.HOST_ROUTING_URL + query_string + '&output=gpx\';">'+OSRM.loc("GPX_FILE")+'</a>]';
var gpx_link = '[<a class="route-link" onClick="document.location.href=\'' + OSRM.DEFAULTS.HOST_ROUTING_URL[OSRM.G.active_routing_server] + query_string + '&output=gpx\';">'+OSRM.loc("GPX_FILE")+'</a>]';
// create route description
var positions = OSRM.G.route.getPositions();