diff --git a/WebContent/OSRM.GUI.js b/WebContent/OSRM.GUI.js
index b1ede611b..675b7f743 100644
--- a/WebContent/OSRM.GUI.js
+++ b/WebContent/OSRM.GUI.js
@@ -30,23 +30,57 @@ init: function() {
OSRM.GUI.visible = true;
OSRM.GUI.width = document.getElementById("main-wrapper").clientWidth;
- // translate
+ // init favicon
+ document.getElementById('favicon').href=OSRM.G.images["favicon"].src;
+
+ // init starting source/target
+ document.getElementById('gui-input-source').value = OSRM.DEFAULTS.ONLOAD_SOURCE;
+ document.getElementById('gui-input-target').value = OSRM.DEFAULTS.ONLOAD_TARGET;
+
+ // init events
+ // [TODO: switch to new event model]
+ document.getElementById("gui-toggle-in").onclick = OSRM.GUI.toggleMain;
+ document.getElementById("gui-toggle-out").onclick = OSRM.GUI.toggleMain;
+
+ document.getElementById("gui-input-source").onchange = function() {OSRM.RoutingGUI.inputChanged(OSRM.C.SOURCE_LABEL);};
+ document.getElementById("gui-delete-source").onclick = function() {OSRM.RoutingGUI.deleteMarker(OSRM.C.SOURCE_LABEL);};
+ document.getElementById("gui-search-source").onclick = function() {OSRM.RoutingGUI.showMarker(OSRM.C.SOURCE_LABEL);};
+
+ document.getElementById("gui-input-target").onchange = function() {OSRM.RoutingGUI.inputChanged(OSRM.C.TARGET_LABEL);};
+ document.getElementById("gui-delete-target").onclick = function() {OSRM.RoutingGUI.deleteMarker(OSRM.C.TARGET_LABEL);};
+ document.getElementById("gui-search-target").onclick = function() {OSRM.RoutingGUI.showMarker(OSRM.C.TARGET_LABEL);};
+
+ document.getElementById("gui-reset").onclick = OSRM.RoutingGUI.resetRouting;
+ document.getElementById("gui-reverse").onclick = OSRM.RoutingGUI.reverseRouting;
+ document.getElementById("gui-options-toggle").onclick = OSRM.GUI.toggleOptions;
+ document.getElementById("open-josm").onclick = OSRM.RoutingGUI.openJOSM;
+ document.getElementById("open-osmbugs").onclick = OSRM.RoutingGUI.openOSMBugs;
+ document.getElementById("option-highlight-nonames").onclick = OSRM.Routing.getRoute;
+
+ // gui after transition events
+ if( OSRM.Browser.FF3==-1 && OSRM.Browser.IE6_9==-1 ) {
+ document.getElementById('main-wrapper').addEventListener("transitionend", OSRM.GUI.onMainTransitionEnd, false);
+ document.getElementById('main-wrapper').addEventListener("webkitTransitionEnd", OSRM.GUI.onMainTransitionEnd, false);
+ document.getElementById('main-wrapper').addEventListener("oTransitionEnd", OSRM.GUI.onMainTransitionEnd, false);
+ document.getElementById('main-wrapper').addEventListener("MSTransitionEnd", OSRM.GUI.onMainTransitionEnd, false);
+ }
+},
+
+// set language dependent labels
+setLanguage: function() {
document.getElementById("open-josm").innerHTML = OSRM.loc("OPEN_JOSM");
document.getElementById("open-osmbugs").innerHTML = OSRM.loc("OPEN_OSMBUGS");
document.getElementById("gui-reset").innerHTML = OSRM.loc("GUI_RESET");
document.getElementById("gui-reverse").innerHTML = OSRM.loc("GUI_REVERSE");
document.getElementById("gui-option-highlight-nonames-label").innerHTML = OSRM.loc("GUI_HIGHLIGHT_UNNAMED_ROADS");
- document.getElementById("options-toggle").innerHTML = OSRM.loc("GUI_OPTIONS");
+ document.getElementById("gui-options-toggle").innerHTML = OSRM.loc("GUI_OPTIONS");
document.getElementById("gui-search-source").innerHTML = OSRM.loc("GUI_SEARCH");
document.getElementById("gui-search-target").innerHTML = OSRM.loc("GUI_SEARCH");
document.getElementById("gui-search-source-label").innerHTML = OSRM.loc("GUI_START")+":";
document.getElementById("gui-search-target-label").innerHTML = OSRM.loc("GUI_END")+":";
- document.getElementById("input-source-name").title = OSRM.loc("GUI_START_TOOLTIP");
- document.getElementById("input-target-name").title = OSRM.loc("GUI_END_TOOLTIP");
+ document.getElementById("gui-input-source").title = OSRM.loc("GUI_START_TOOLTIP");
+ document.getElementById("gui-input-target").title = OSRM.loc("GUI_END_TOOLTIP");
document.getElementById("legal-notice").innerHTML = OSRM.loc("GUI_LEGAL_NOTICE");
-
- document.getElementById('input-source-name').value = OSRM.DEFAULTS.ONLOAD_SOURCE;
- document.getElementById('input-target-name').value = OSRM.DEFAULTS.ONLOAD_TARGET;
},
// show/hide main-gui
@@ -66,15 +100,9 @@ toggleMain: function() {
document.getElementById('main-wrapper').style.left=-OSRM.GUI.width+"px";
}
- // execute after animation
- if( OSRM.Browser.FF3==-1 && OSRM.Browser.IE6_9==-1 ) {
- document.getElementById('main-wrapper').addEventListener("transitionend", OSRM.GUI.onMainTransitionEnd, false);
- document.getElementById('main-wrapper').addEventListener("webkitTransitionEnd", OSRM.GUI.onMainTransitionEnd, false);
- document.getElementById('main-wrapper').addEventListener("oTransitionEnd", OSRM.GUI.onMainTransitionEnd, false);
- document.getElementById('main-wrapper').addEventListener("MSTransitionEnd", OSRM.GUI.onMainTransitionEnd, false);
- } else {
+ // execute after animation (old browser support)
+ if( OSRM.Browser.FF3!=-1 || OSRM.Browser.IE6_9!=-1 )
OSRM.GUI.onMainTransitionEnd();
- }
},
// do stuff after main-gui animation finished
@@ -98,6 +126,12 @@ toggleOptions: function() {
} else {
document.getElementById('options-box').style.visibility="visible";
}
+},
+
+// clear output area
+clearResults: function() {
+ document.getElementById('information-box').innerHTML = "";
+ document.getElementById('information-box-header').innerHTML = "";
}
-};
\ No newline at end of file
+};
diff --git a/WebContent/OSRM.Geocoder.js b/WebContent/OSRM.Geocoder.js
index 47f18e00d..d7825a92d 100644
--- a/WebContent/OSRM.Geocoder.js
+++ b/WebContent/OSRM.Geocoder.js
@@ -43,7 +43,7 @@ call: function(marker_id, query) {
}
//build request for geocoder
- var call = OSRM.DEFAULTS.HOST_GEOCODER_URL + "?format=json" + OSRM.DEFAULTS.GEOCODER_BOUNDS + "&q=" + query;
+ var call = OSRM.DEFAULTS.HOST_GEOCODER_URL + "?format=json" + OSRM.DEFAULTS.GEOCODER_BOUNDS + "&accept-language="+OSRM.DEFAULTS.LANGUAGE+"&q=" + query;
OSRM.JSONP.call( call, OSRM.Geocoder._showResults, OSRM.Geocoder._showResults_Timeout, OSRM.DEFAULTS.JSONP_TIMEOUT, "geocoder_"+marker_id, {marker_id:marker_id,query:query} );
},
@@ -60,7 +60,8 @@ _onclickResult: function(marker_id, lat, lon) {
OSRM.G.markers.route[index].show();
OSRM.G.markers.route[index].centerView();
- OSRM.Routing.getRoute();
+ if( OSRM.G.markers.route.length > 1 )
+ OSRM.Routing.getRoute();
},
@@ -76,9 +77,14 @@ _showResults: function(response, parameters) {
return;
}
+ // show first result
+ OSRM.Geocoder._onclickResult(parameters.marker_id, response[0].lat, response[0].lon);
+ if( OSRM.G.markers.route.length > 1 ) // if a route is displayed, we don't need to show other possible geocoding results
+ return;
+
// show possible results for input
var html = "";
- html += '
';
+ html += '';
for(var i=0; i < response.length; i++){
var result = response[i];
@@ -97,23 +103,27 @@ _showResults: function(response, parameters) {
}
html += '
';
- document.getElementById('information-box-headline').innerHTML = OSRM.loc("SEARCH_RESULTS")+":";
+ document.getElementById('information-box-header').innerHTML =
+ "" +
+ "";
document.getElementById('information-box').innerHTML = html;
-
- OSRM.Geocoder._onclickResult(parameters.marker_id, response[0].lat, response[0].lon);
},
_showResults_Empty: function(parameters) {
- document.getElementById('information-box-headline').innerHTML = OSRM.loc("SEARCH_RESULTS")+":";
+ document.getElementById('information-box-header').innerHTML =
+ "" +
+ "";
if(parameters.marker_id == OSRM.C.SOURCE_LABEL)
- document.getElementById('information-box').innerHTML = "
"+OSRM.loc("NO_RESULTS_FOUND_SOURCE")+": "+parameters.query +".
";
+ document.getElementById('information-box').innerHTML = "
"+OSRM.loc("NO_RESULTS_FOUND_SOURCE")+": "+parameters.query +"
";
else if(parameters.marker_id == OSRM.C.TARGET_LABEL)
- document.getElementById('information-box').innerHTML = "
"+OSRM.loc("NO_RESULTS_FOUND_TARGET")+": "+parameters.query +".
";
+ document.getElementById('information-box').innerHTML = "
"+OSRM.loc("NO_RESULTS_FOUND_TARGET")+": "+parameters.query +"
";
else
- document.getElementById('information-box').innerHTML = "
"+OSRM.loc("NO_RESULTS_FOUND")+": "+parameters.query +".
";
+ document.getElementById('information-box').innerHTML = "
"+OSRM.loc("NO_RESULTS_FOUND")+": "+parameters.query +"
";
},
_showResults_Timeout: function() {
- document.getElementById('information-box-headline').innerHTML = OSRM.loc("SEARCH_RESULTS")+":";
- document.getElementById('information-box').innerHTML = "
"+OSRM.loc("TIMED_OUT")+".
";
+ document.getElementById('information-box-header').innerHTML =
+ "
" +
+ "";
+ document.getElementById('information-box').innerHTML = ""+OSRM.loc("TIMED_OUT")+"
";
},
@@ -122,9 +132,9 @@ _showResults_Timeout: function() {
//update geo coordinates in input boxes
updateLocation: function(marker_id) {
if (marker_id == OSRM.C.SOURCE_LABEL && OSRM.G.markers.hasSource()) {
- document.getElementById("input-source-name").value = OSRM.G.markers.route[0].getLat().toFixed(6) + ", " + OSRM.G.markers.route[0].getLng().toFixed(6);
+ document.getElementById("gui-input-source").value = OSRM.G.markers.route[0].getLat().toFixed(6) + ", " + OSRM.G.markers.route[0].getLng().toFixed(6);
} else if (marker_id == OSRM.C.TARGET_LABEL && OSRM.G.markers.hasTarget()) {
- document.getElementById("input-target-name").value = OSRM.G.markers.route[OSRM.G.markers.route.length-1].getLat().toFixed(6) + ", " + OSRM.G.markers.route[OSRM.G.markers.route.length-1].getLng().toFixed(6);
+ document.getElementById("gui-input-target").value = OSRM.G.markers.route[OSRM.G.markers.route.length-1].getLat().toFixed(6) + ", " + OSRM.G.markers.route[OSRM.G.markers.route.length-1].getLng().toFixed(6);
}
},
@@ -144,7 +154,7 @@ updateAddress: function(marker_id, do_fallback_to_lat_lng) {
} else
return;
- var call = OSRM.DEFAULTS.HOST_REVERSE_GEOCODER_URL + "?format=json" + "&lat=" + lat + "&lon=" + lng;
+ var call = OSRM.DEFAULTS.HOST_REVERSE_GEOCODER_URL + "?format=json" + "&accept-language="+OSRM.DEFAULTS.LANGUAGE + "&lat=" + lat + "&lon=" + lng;
OSRM.JSONP.call( call, OSRM.Geocoder._showReverseResults, OSRM.Geocoder._showReverseResults_Timeout, OSRM.DEFAULTS.JSONP_TIMEOUT, "reverse_geocoder_"+marker_id, {marker_id:marker_id, do_fallback: do_fallback_to_lat_lng} );
},
@@ -192,9 +202,9 @@ _showReverseResults: function(response, parameters) {
// add result to DOM
if(parameters.marker_id == OSRM.C.SOURCE_LABEL && OSRM.G.markers.hasSource() )
- document.getElementById("input-source-name").value = address;
+ document.getElementById("gui-input-source").value = address;
else if(parameters.marker_id == OSRM.C.TARGET_LABEL && OSRM.G.markers.hasTarget() )
- document.getElementById("input-target-name").value = address;
+ document.getElementById("gui-input-target").value = address;
},
_showReverseResults_Timeout: function(response, parameters) {
if(!parameters.do_fallback)
@@ -203,4 +213,4 @@ _showReverseResults_Timeout: function(response, parameters) {
OSRM.Geocoder.updateLocation(parameters.marker_id);
}
-};
\ No newline at end of file
+};
diff --git a/WebContent/OSRM.Map.js b/WebContent/OSRM.Map.js
index 1031f3f0a..f53874d59 100644
--- a/WebContent/OSRM.Map.js
+++ b/WebContent/OSRM.Map.js
@@ -121,6 +121,8 @@ init: function() {
// initial map position and zoom
var position = new L.LatLng( OSRM.DEFAULTS.ONLOAD_LATITUDE, OSRM.DEFAULTS.ONLOAD_LONGITUDE);
OSRM.G.map.setViewUI( position, OSRM.DEFAULTS.ZOOM_LEVEL);
+ if (navigator.geolocation && document.URL.indexOf("file://") == -1)
+ navigator.geolocation.getCurrentPosition(OSRM.Map.geolocationResponse);
// map events
OSRM.G.map.on('zoomend', OSRM.Map.zoomed );
@@ -146,6 +148,10 @@ click: function(e) {
OSRM.G.markers.route[index].show();
OSRM.G.markers.route[index].centerView( OSRM.G.map.getZoom() );
OSRM.Routing.getRoute();
- }
+ }
+},
+geolocationResponse: function(response) {
+ var latlng = new L.LatLng(response.coords.latitude, response.coords.longitude);
+ OSRM.G.map.setViewUI(latlng, OSRM.DEFAULTS.ZOOM_LEVEL );
}
};
\ No newline at end of file
diff --git a/WebContent/OSRM.Markers.js b/WebContent/OSRM.Markers.js
index 7be1db99b..dd309ab4b 100644
--- a/WebContent/OSRM.Markers.js
+++ b/WebContent/OSRM.Markers.js
@@ -90,6 +90,7 @@ onClick: function(e) {
OSRM.Routing.getRoute();
OSRM.G.markers.highlight.hide();
+ OSRM.G.markers.dragger.hide();
},
onDrag: function(e) {
this.parent.setPosition( e.target.getLatLng() );
@@ -109,7 +110,9 @@ onDragStart: function(e) {
}
if( this.parent != OSRM.G.markers.highlight)
- OSRM.G.markers.highlight.hide();
+ OSRM.G.markers.highlight.hide();
+ if( this.parent != OSRM.G.markers.dragger)
+ OSRM.G.markers.dragger.hide();
if (OSRM.G.route.isShown())
OSRM.G.route.showOldRoute();
},
@@ -118,14 +121,14 @@ onDragEnd: function(e) {
this.switchIcon(this.options.baseicon);
this.parent.setPosition( e.target.getLatLng() );
- OSRM.Routing.getRoute();
if (OSRM.G.route.isShown()) {
+ OSRM.Routing.getRoute();
OSRM.G.route.hideOldRoute();
OSRM.G.route.hideUnnamedRoute();
- }
-
- if(OSRM.G.route.isShown()==false)
+ } else {
OSRM.Geocoder.updateAddress(this.parent.label);
+ OSRM.GUI.clearResults();
+ }
},
toString: function() {
return "OSRM.RouteMarker: \""+this.label+"\", "+this.position+")";
@@ -175,8 +178,8 @@ removeAll: function() {
for(var i=0; iKIT - Geocoder by OSM",
+// geocoder
+"SEARCH_RESULTS": "Suchergebnisse",
+"TIMED_OUT": "Zeitüberschreitung",
+"NO_RESULTS_FOUND": "Keine Ergebnisse gefunden",
+"NO_RESULTS_FOUND_SOURCE": "Keine Ergebnisse gefunden für Start",
+"NO_RESULTS_FOUND_TARGET": "Keine Ergebnisse gefunden für Ziel",
+// routing
+"ROUTE_DESCRIPTION": "Routenbeschreibung",
+"GET_LINK_TO_ROUTE": "Generiere Link",
+"GENERATE_LINK_TO_ROUTE": "Warte auf Antwort",
+"LINK_TO_ROUTE_TIMEOUT": "nicht möglich",
+"GPX_FILE": "GPX Datei",
+"DISTANCE": "Distanz",
+"DURATION": "Dauer",
+"YOUR_ROUTE_IS_BEING_COMPUTED": "Ihre Route wird berechnet",
+"NO_ROUTE_FOUND": "Keine Route hierher möglich",
+// directions
+"N": "Norden",
+"O": "Ost",
+"S": "Süden",
+"W": "Westen",
+"NE": "Nordost",
+"SE": "Südost",
+"SW": "Südwest",
+"NW": "Nordwest",
+// driving directions
+"DIRECTION_0":"Unbekannte Anweisung[ auf %s]",
+"DIRECTION_1":"Links abbiegen[ auf %s]",
+"DIRECTION_2":"Rechts abbiegen[ auf %s]",
+"DIRECTION_3":"Wenden[ auf %s]",
+"DIRECTION_4":"Fahren Sie Richtung %s",
+"DIRECTION_5":"Geradeaus weiterfahren[ auf %s]",
+"DIRECTION_6":"Leicht links abbiegen[ auf %s]",
+"DIRECTION_7":"Leicht rechts abbiegen[ auf %s]",
+"DIRECTION_8":"Scharf links abbiegen[ auf %s]",
+"DIRECTION_9":"Scharf rechts abbiegen[ auf %s]",
+"DIRECTION_10":"In den Kreisverkehr einfahren und bei erster Möglichkeit[ in Richtung %s] verlassen",
+"DIRECTION_11":"In den Kreisverkehr einfahren und bei zweiter Möglichkeit[ in Richtung %s] verlassen",
+"DIRECTION_12":"In den Kreisverkehr einfahren und bei dritter Möglichkeit[ in Richtung %s] verlassen",
+"DIRECTION_13":"In den Kreisverkehr einfahren und bei vierter Möglichkeit[ in Richtung %s] verlassen",
+"DIRECTION_14":"In den Kreisverkehr einfahren und bei fünfter Möglichkeit[ in Richtung %s] verlassen",
+"DIRECTION_15":"In den Kreisverkehr einfahren und bei sechster Möglichkeit[ in Richtung %s] verlassen",
+"DIRECTION_16":"In den Kreisverkehr einfahren und bei siebter Möglichkeit[ in Richtung %s] verlassen",
+"DIRECTION_17":"In den Kreisverkehr einfahren und bei achter Möglichkeit[ in Richtung %s] verlassen",
+"DIRECTION_18":"In den Kreisverkehr einfahren und bei neunter Möglichkeit[ in Richtung %s] verlassen",
+"DIRECTION_19":"In den Kreisverkehr einfahren und bei zehnter Möglichkeit[ in Richtung %s] verlassen",
+"DIRECTION_20":"In den Kreisverkehr einfahren und bei einer der vielen Möglichkeiten[ in Richtung %s] verlassen",
+"DIRECTION_21":"Sie haben Ihr Ziel erreicht"
+};
+
+// set GUI language on load
+OSRM.Localization.change("de");
\ No newline at end of file
diff --git a/WebContent/OSRM.Localization.js b/WebContent/localization/OSRM.Locale.en.js
similarity index 50%
rename from WebContent/OSRM.Localization.js
rename to WebContent/localization/OSRM.Locale.en.js
index ffe7ec9ec..86331ad33 100644
--- a/WebContent/OSRM.Localization.js
+++ b/WebContent/localization/OSRM.Locale.en.js
@@ -16,70 +16,9 @@ or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
-// [basic localization options]
+// [English language support]
-OSRM.Localization = {
-
-// if existing, return localized string -> English string -> input string
-translate: function(text) {
- if( OSRM.Localization[OSRM.DEFAULTS.LANGUAGE][text] )
- return OSRM.Localization[OSRM.DEFAULTS.LANGUAGE][text];
- else if( OSRM.Localization["en"][text] )
- return OSRM.Localization["en"][text];
- else
- return text;
-}
-};
-
-// shorter call to translate function
-OSRM.loc = OSRM.Localization.translate;
-
-
-// German language support
-OSRM.Localization["de"] = {
-//gui
-"OPEN_JOSM": "JOSM",
-"OPEN_OSMBUGS": "OSM Bugs",
-"GUI_START": "Start",
-"GUI_END": "Ziel",
-"GUI_RESET": "Reset",
-"GUI_SEARCH": "Zeigen",
-"GUI_REVERSE": "Umdrehen",
-"GUI_OPTIONS": "Kartenwerkzeuge",
-"GUI_HIGHLIGHT_UNNAMED_ROADS": "Unbenannte Straßen hervorheben",
-"GUI_START_TOOLTIP": "Startposition eingeben",
-"GUI_END_TOOLTIP": "Zielposition eingeben",
-"GUI_LEGAL_NOTICE": "GUI2 v"+OSRM.VERSION+" "+OSRM.DATE+" - OSRM hosting by KIT - Geocoder by OSM",
-// geocoder
-"SEARCH_RESULTS": "Suchergebnisse",
-"TIMED_OUT": "Zeitüberschreitung",
-"NO_RESULTS_FOUND": "Keine Ergebnisse gefunden",
-"NO_RESULTS_FOUND_SOURCE": "Keine Ergebnisse gefunden für Start",
-"NO_RESULTS_FOUND_TARGET": "Keine Ergebnisse gefunden für Ziel",
-// routing
-"ROUTE_DESCRIPTION": "Routenbeschreibung",
-"GET_LINK_TO_ROUTE": "Generiere Link",
-"GENERATE_LINK_TO_ROUTE": "Warte auf Antwort",
-"LINK_TO_ROUTE_TIMEOUT": "nicht möglich",
-"GPX_FILE": "GPX Datei",
-"DISTANCE": "Distanz",
-"DURATION": "Dauer",
-"YOUR_ROUTE_IS_BEING_COMPUTED": "Ihre Route wird berechnet",
-"NO_ROUTE_FOUND": "Keine Route hierher möglich",
-// directions
-"N": "Norden",
-"O": "Ost",
-"S": "Süden",
-"W": "Westen",
-"NO": "Nordost",
-"SO": "Südost",
-"SW": "Südwest",
-"NW": "Nordwest"
-};
-
-
-// English language support
OSRM.Localization["en"] = {
//gui
"OPEN_JOSM": "JOSM",
@@ -118,5 +57,31 @@ OSRM.Localization["en"] = {
"NE": "northeast",
"SE": "southeast",
"SW": "southwest",
-"NW": "northwest"
-};
\ No newline at end of file
+"NW": "northwest",
+// driving directions
+"DIRECTION_0":"Unknown instruction[ on %s]",
+"DIRECTION_1":"Turn left[ on %s]",
+"DIRECTION_2":"Turn right[ on %s]",
+"DIRECTION_3":"U-Turn[ on %s]",
+"DIRECTION_4":"Head %s",
+"DIRECTION_5":"Continue[ on %s]",
+"DIRECTION_6":"Turn slight left[ on %s]",
+"DIRECTION_7":"Turn slight right[ on %s]",
+"DIRECTION_8":"Turn sharp left[ on %s]",
+"DIRECTION_9":"Turn sharp right[ on %s]",
+"DIRECTION_10":"Enter roundabout and leave at first exit[ on %s]",
+"DIRECTION_11":"Enter roundabout and leave at second exit[ on %s]",
+"DIRECTION_12":"Enter roundabout and leave at third exit[ on %s]",
+"DIRECTION_13":"Enter roundabout and leave at fourth exit[ on %s]",
+"DIRECTION_14":"Enter roundabout and leave at fifth exit[ on %s]",
+"DIRECTION_15":"Enter roundabout and leave at sixth exit[ on %s]",
+"DIRECTION_16":"Enter roundabout and leave at seventh exit[ on %s]",
+"DIRECTION_17":"Enter roundabout and leave at eighth exit[ on %s]",
+"DIRECTION_18":"Enter roundabout and leave at nineth exit[ on %s]",
+"DIRECTION_19":"Enter roundabout and leave at tenth exit[ on %s]",
+"DIRECTION_20":"Enter roundabout and leave at one of the too many exits[ on %s]",
+"DIRECTION_21":"You have reached your destination"
+};
+
+//set GUI language on load
+OSRM.Localization.change("en");
\ No newline at end of file
diff --git a/WebContent/localization/OSRM.Localization.js b/WebContent/localization/OSRM.Localization.js
new file mode 100644
index 000000000..af6021a43
--- /dev/null
+++ b/WebContent/localization/OSRM.Localization.js
@@ -0,0 +1,89 @@
+/*
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU AFFERO General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+or see http://www.gnu.org/licenses/agpl.txt.
+*/
+
+// OSRM localization
+// [basic localization options]
+
+
+OSRM.Localization = {
+
+supported_languages: [ {display_name:"en", encoding:"en"},
+ {display_name:"de", encoding:"de"}
+],
+
+// initialize localization
+init: function() {
+ // create dropdown menu
+ var select = document.createElement('select');
+ select.id = "gui-language-toggle";
+ select.className = "top-left-button";
+ select.onchange = function() { OSRM.Localization.change(this.value); };
+
+ // fill dropdown menu
+ for(var i=0, size=OSRM.Localization.supported_languages.length; i 1)
+ OSRM.Routing.getRoute();
+ else if(OSRM.G.markers.route.length > 0 && document.getElementById('information-box').innerHTML != "" ) {
+ OSRM.Geocoder.call( OSRM.C.SOURCE_LABEL, document.getElementById("gui-input-source").value );
+ OSRM.Geocoder.call( OSRM.C.TARGET_LABEL, document.getElementById("gui-input-target").value );
+ } else {
+ OSRM.Geocoder.updateAddress(OSRM.C.SOURCE_LABEL, false);
+ OSRM.Geocoder.updateAddress(OSRM.C.TARGET_LABEL, false);
+ document.getElementById('information-box').innerHTML = "";
+ document.getElementById('information-box-header').innerHTML = "";
+ }
+ } else {
+ var script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.src = "localization/OSRM.Locale."+language+".js";
+ document.head.appendChild(script);
+ }
+},
+
+// if existing, return localized string -> English string -> input string
+translate: function(text) {
+ if( OSRM.Localization[OSRM.DEFAULTS.LANGUAGE] && OSRM.Localization[OSRM.DEFAULTS.LANGUAGE][text] )
+ return OSRM.Localization[OSRM.DEFAULTS.LANGUAGE][text];
+ else if( OSRM.Localization["en"] && OSRM.Localization["en"][text] )
+ return OSRM.Localization["en"][text];
+ else
+ return text;
+}
+};
+
+// shorter call to translate function
+OSRM.loc = OSRM.Localization.translate;
\ No newline at end of file
diff --git a/WebContent/main.css b/WebContent/main.css
index 31c9ec175..02f695a1c 100644
--- a/WebContent/main.css
+++ b/WebContent/main.css
@@ -18,25 +18,19 @@ or see http://www.gnu.org/licenses/agpl.txt.
/* OSRM CSS styles */
-/* map -> fullscreen */
-body {
+/* fullscreen map */
+html, body {
padding: 0;
margin: 0;
-}
-html, body, #map {
height: 100%;
}
#map {
+ height: 100%;
z-index: 0;
}
-/* styles for gui */
-.vquad
-{
- height:10px;
-}
-
+/* general styles for gui boxes */
.gui-wrapper
{
position:absolute;
@@ -63,11 +57,13 @@ html, body, #map {
padding:5px;
}
+
+/* styles for specific gui boxes */
#main-wrapper
{
width:410px;
- height:95%;
top:5px;
+ bottom:25px;
left:5px;
}
#main-input
@@ -78,10 +74,9 @@ html, body, #map {
#main-output
{
width:390px;
- top:220px;
+ top:220px; /* main-input.height+2*gui-box.margin+2*gui-box.padding */
bottom:0px;
}
-
#blob-wrapper
{
left:-5px;
@@ -96,79 +91,79 @@ html, body, #map {
-webkit-border-bottom-left-radius:0px;
visibility:hidden;
}
-#blob-input
+#blob-content
{
- width:26px;
- height:26px;
+ width:16px;
+ height:16px;
border-top-left-radius:0px;
border-bottom-left-radius:0px;
-moz-border-radius-topleft:0px;
-moz-border-radius-bottomleft:0px;
-webkit-border-top-left-radius:0px;
-webkit-border-bottom-left-radius:0px;
- padding:0px;
}
-.main-toggle-out
-{
- cursor:pointer;
- position:absolute;
- right:5px;
- top:5px;
- width:16px;
- height:16px;
- background-image:url("images/cancel.png");
-}
-.main-toggle-out:hover
-{
- background-image:url("images/cancel_hover.png");
-}
-.main-toggle-out:active
-{
- background-image:url("images/cancel_active.png");
-}
-.main-toggle-in
-{
- cursor:pointer;
- position:absolute;
- right:5px;
- top:5px;
- width:16px;
- height:16px;
- background-image:url("images/restore.png");
-}
-.main-toggle-in:hover
-{
- background-image:url("images/restore_hover.png");
-}
-.main-toggle-in:active
-{
- background-image:url("images/restore_active.png");
-}
-.main-options
+/* styles for main-input areas */
+#input-mask-header
{
- position:relative;
- font-size:10px;
-}
-.main-options-left-box
-{
- position:absolute;
- left:5px;
+ left:0px;
+ right:0px;
top:0px;
+ height:50px;
+ background-repeat:no-repeat;
+ background-position:center;
+ background-image:url("images/osrm-logo.png");
}
-.main-options-right-box
+#input-mask
{
- position:absolute;
- right:5px;
- top:5px;
+ margin:3px;
}
-#options-toggle
+#input-mask-options
+{
+ margin:3px;
+}
+
+
+/* styles for main-input input-mask-header */
+#gui-language-toggle
+{
+ border: 0px;
+ text-decoration:none;
+}
+.top-left-button
+{
+ float:left;
+}
+.top-right-button
+{
+ float:right;
+}
+
+
+/* styles for main-input input-mask */
+.input-marker
+{
+ display:table-row;
+}
+.input-marker > div
+{
+ padding-bottom:4px;
+}
+.input-box
+{
+ width: 250px;
+ padding-right: 2px;
+}
+
+
+/* styles for main-input input-mask-options */
+#gui-options-toggle
{
cursor:pointer;
color:#0000ff
}
-#options-toggle:hover
+#gui-options-toggle:hover
{
color:#ff0000
}
@@ -177,111 +172,92 @@ html, body, #map {
visibility:hidden;
}
-#osrm-logo
-{
- display: block;
- margin-left: auto;
- margin-right: auto;
- width: 192px;
- height: 50px;
- text-align:center;
- vertical-align: middle;
-}
-.input-box
+/* styles for main-output areas */
+#information-box-header
{
- width: 250px;
+ margin:5px;
+ height:60px;
}
-
-
-.full
-{
- width:100%;
-}
-.right
-{
- text-align:right;
-}
-.center
-{
- text-align:center;
-}
-
#information-box
{
position:absolute;
- bottom:15px;
- top:60px;
+ bottom:20px;
+ top:65px;
width:380px;
- font-size:12px;
overflow:auto;
margin:5px;
}
-
-.route-summary
+#legal-notice
{
- font-size: 12px;
+ position:absolute;
+ right:0px;
+ bottom:0px;
+ margin:5px;
}
-#gpx-link
+
+
+/* styles for information-box-header */
+.header-title
+{
+ font-weight:bold;
+ margin-bottom:10px;
+}
+.header-content
+{
+ font-weight:normal;
+}
+.result-link
{
color:#0000ff;
text-decoration:none;
cursor:pointer;
}
-#gpx-link:hover
+.result-link:hover
{
color:#ff0000;
}
+
+
+/* style for information-box table (search results, driving directions) */
.results-table
{
border-spacing:0px;
+ width:100%;
}
.results-odd
{
- background-color: #FAF3E9; //#ffffff;
+ background-color: #FFFDE3;
}
.results-even
{
- background-color: #F2DE9C; //#ffffe0;
+ background-color: #FFF9BB;
}
.result-counter
{
text-align:right;
- vertical-align: top;
- width:30px;
+ vertical-align:top;
font-weight:bold;
- padding-left:5px;
- padding-right:5px;
- padding-top:1px;
- padding-bottom:1px;
+ padding:1px 5px 1px 5px;
}
.result-items
{
text-align:left;
vertical-align: middle;
width:100%;
- padding-left:1px;
- padding-right:1px;
- padding-top:1px;
- padding-bottom:1px;
+ padding:1px;
}
-.result-direction
+.result-directions
{
- width:30px;
- padding-left:1px;
- padding-right:1px;
- padding-top:1px;
- padding-bottom:1px;
+ text-align:left;
+ vertical-align: middle;
+ padding:1px 5px 1px 5px;
}
.result-distance
{
text-align:right;
- vertical-align: middle;
- width:30px;
- padding-left:1px;
- padding-right:1px;
- padding-top:1px;
- padding-bottom:1px;
+ vertical-align: middle;
+ padding:1px 1px 1px 5px;
}
.result-item
{
@@ -292,18 +268,135 @@ html, body, #map {
{
color:#ff0000
}
-
-#legal-notice
+.no-results
{
- position:absolute;
- right:0px;
- bottom:0px;
- padding:5px;
- font-size:10px;
+ text-align:center;
+ margin:28px;
+}
+
+
+/* buttons */
+.button
+{
+ cursor:pointer;
+ padding:2px 10px 2px 10px;
+ border-radius:5px;
+ -moz-border-radius:5px;
+ -webkit-border-radius:5px;
+ background-color:#EEEEEE;
+ border:1px solid #999999;
+ color:#333333;
+ text-decoration:none;
+ font-size:9px;
+ outline-style:none;
+ vertical-align:1px;
+}
+.button:hover
+{
+ background-color:#F9F9F9;
+ color:#000000;
+}
+.button:active
+{
+ background-color:#F4F4F4;
+ color:#FF0000;
+}
+
+
+/* iconic buttons */
+.iconic-button
+{
+ cursor:pointer;
+ width:16px;
+ height:16px;
+ background-repeat:no-repeat;
+ background-position:center;
+}
+
+#gui-toggle-out
+{
+ background-image:url("images/cancel.png");
+}
+#gui-toggle-out:hover
+{
+ background-image:url("images/cancel_hover.png");
+}
+#gui-toggle-out:active
+{
+ background-image:url("images/cancel_active.png");
+}
+
+#gui-toggle-in
+{
+ background-image:url("images/restore.png");
+}
+#gui-toggle-in:hover
+{
+ background-image:url("images/restore_hover.png");
+}
+#gui-toggle-in:active
+{
+ background-image:url("images/restore_active.png");
+}
+
+#gui-printer
+{
+ background-image:url("images/printer.png");
+}
+#gui-printer:hover
+{
+ background-image:url("images/printer_hover.png");
+}
+#gui-printer:active
+{
+ background-image:url("images/printer_active.png");
+}
+
+.delete-marker
+{
+ background-image:url("images/cancel.png");
+ visibility:hidden;
+}
+.delete-marker:hover
+{
+ background-image:url("images/cancel_hover.png");
+}
+.delete-marker:active
+{
+ background-image:url("images/cancel_active.png");
+}
+
+
+/* fonts */
+.base-font {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: normal;
+}
+.big-font {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ font-weight: bold;
+}
+.medium-font {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10.5px;
+ font-weight: normal;
+}
+.small-font {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
}
/* utility styles (defined above buttons, so that buttons retain cursor:pointer)*/
+.quad
+{
+ min-width:10px;
+ min-height:10px;
+}
+
.not-selectable
{
cursor:default;
@@ -322,49 +415,31 @@ html, body, #map {
user-select: text;
}
-
-/* buttons */
-.button
+.checkbox-label
{
- cursor:pointer;
- padding:2px 10px 2px 10px;
- border-radius:5px;
- -moz-border-radius:5px;
- background-color:#EEEEEE;
- border:1px solid #999999;
- color:#333333;
- text-decoration:none;
- font-size:11px;
- outline-style:none;
-}
-.button:hover
-{
- background-color:#F9F9F9;
- color:#000000;
-}
-.button:active
-{
- background-color:#F4F4F4;
- color:#FF0000;
+ vertical-align:2px;
}
-
-.delete-marker
+.full
{
- cursor:pointer;
- position:absolute;
- right:5px;
- top:3px;
- width:16px;
- height:16px;
- background-image:url("images/cancel.png");
- visibility:hidden;
+ display:table;
+ width:100%;
}
-.delete-marker:hover
+.left
{
- background-image:url("images/cancel_hover.png");
+ display:table-cell;
+ text-align:left;
+ vertical-align:middle;
}
-.delete-marker:active
+.right
{
- background-image:url("images/cancel_active.png");
+ display:table-cell;
+ text-align:right;
+ vertical-align:middle;
+}
+.center
+{
+ display:table-cell;
+ text-align:center;
+ vertical-align:middle;
}
\ No newline at end of file
diff --git a/WebContent/main.html b/WebContent/main.html
index 5d6787d60..97c631324 100644
--- a/WebContent/main.html
+++ b/WebContent/main.html
@@ -30,7 +30,7 @@ or see http://www.gnu.org/licenses/agpl.txt.
-
+
@@ -64,78 +64,90 @@ or see http://www.gnu.org/licenses/agpl.txt.
-
+
+
-
+
-
-
+
-
-
-

-
+
+
+
+
+
+
+
+
+
-
Kartenwerkzeuge
-
-
- Unbenannte Straßen hervorheben
-
-
- JOSM
- OSM Bugs
-
+
-
-
+
+
-
GUI2 v0.1.1 120316 - OSRM hosting by
KIT - Geocoder by
OSM
+
GUI2 v0.1.3 120402 - OSRM hosting by
KIT - Geocoder by
OSM
diff --git a/WebContent/main.js b/WebContent/main.js
index 76471caa7..35393c7b0 100644
--- a/WebContent/main.js
+++ b/WebContent/main.js
@@ -18,55 +18,72 @@ or see http://www.gnu.org/licenses/agpl.txt.
// OSRM initialization
// [initialization, image prefetching]
-// will hold the Leaflet map object
-OSRM.GLOBALS.map = null;
-
// onload initialization routine
OSRM.init = function() {
OSRM.prefetchImages();
OSRM.prefetchIcons();
+ OSRM.Localization.init();
OSRM.GUI.init();
OSRM.Map.init();
- OSRM.Routing.init();
+ //OSRM.Printing.init();
+ OSRM.Routing.init();
// check if the URL contains some GET parameter, e.g. for showing a route
- OSRM.checkURL();
+ OSRM.parseParameters();
};
// prefetch images
-OSRM.GLOBALS.images = Array();
+OSRM.GLOBALS.images = {};
OSRM.prefetchImages = function() {
- var images = [ 'images/marker-source.png',
- 'images/marker-target.png',
- 'images/marker-via.png',
- 'images/marker-highlight.png',
- 'images/marker-source-drag.png',
- 'images/marker-target-drag.png',
- 'images/marker-via-drag.png',
- 'images/marker-highlight-drag.png',
- 'images/marker-drag.png',
- 'images/cancel.png',
- 'images/cancel_active.png',
- 'images/cancel_hover.png',
- 'images/restore.png',
- 'images/restore_active.png',
- 'images/restore_hover.png'
- ];
-
- for(var i=0; i
]+(>|$)/g ,""); // discard tags
+ params.destination_name = decodeURI(name_val[1]).replace(/<\/?[^>]+(>|$)/g ,""); // discard tags
}
else if(name_val[0] == 'z') {
- zoom = name_val[1];
- if( zoom<0 || zoom > 18)
+ var zoom_level = Number(name_val[1]);
+ if( zoom_level<0 || zoom_level > 18)
return;
+ params.zoom = zoom;
}
else if(name_val[0] == 'center') {
var coordinates = unescape(name_val[1]).split(',');
if(coordinates.length!=2 || !OSRM.Utils.isLatitude(coordinates[0]) || !OSRM.Utils.isLongitude(coordinates[1]) )
return;
- center = new L.LatLng( coordinates[0], coordinates[1]);
+ params.center = new L.LatLng( coordinates[0], coordinates[1]);
}
}
// case 1: destination given
- if( destination != undefined ) {
- var index = OSRM.G.markers.setTarget( e.latlng );
- if( destination_name == null )
- OSRM.Geocoder.updateAddress( OSRM.C.TARGET_LABEL, OSRM.C.DO_FALLBACK_TO_LAT_LNG );
+ if( params.destination ) {
+ var index = OSRM.G.markers.setTarget( params.destination.latlng );
+ if( params.destination_name )
+ document.getElementById("gui-input-target").value = params.destination_name;
else
- document.getElementById("input-target-name").value = destination_name;
+ OSRM.Geocoder.updateAddress( OSRM.C.TARGET_LABEL, OSRM.C.DO_FALLBACK_TO_LAT_LNG );
OSRM.G.markers.route[index].show();
OSRM.G.markers.route[index].centerView();
return;
}
// case 2: locations given
- if( positions != []) {
+ if( params.positions ) {
// draw via points
- if( positions.length > 0) {
- OSRM.G.markers.setSource( positions[0] );
+ if( params.positions.length > 0 ) {
+ OSRM.G.markers.setSource( params.positions[0] );
OSRM.Geocoder.updateAddress( OSRM.C.SOURCE_LABEL, OSRM.C.DO_FALLBACK_TO_LAT_LNG );
}
- if(positions.length > 1) {
- OSRM.G.markers.setTarget( positions[positions.length-1] );
+ if( params.positions.length > 1 ) {
+ OSRM.G.markers.setTarget( params.positions[params.positions.length-1] );
OSRM.Geocoder.updateAddress( OSRM.C.TARGET_LABEL, OSRM.C.DO_FALLBACK_TO_LAT_LNG );
}
- for(var i=1; i';
+
+ for(var i=0; i < response.route_instructions.length; i++){
+ //odd or even ?
+ var rowstyle='results-odd';
+ if(i%2==0) { rowstyle='results-even'; }
+
+ route_desc += '';
+
+ route_desc += '';
+ route_desc += ' ';
+ route_desc += " | ";
+
+ route_desc += '';
+ route_desc += '';
+ route_desc += response.route_instructions[i][0];
+ if( i == 0 )
+ route_desc += ' ' + OSRM.loc( response.route_instructions[i][6] );
+ if( response.route_instructions[i][1] != "" ) {
+ route_desc += ' on ';
+ route_desc += '' + response.route_instructions[i][1] + '';
+ }
+ //route_desc += ' for ';
+ route_desc += '';
+ route_desc += " | ";
+
+ route_desc += '';
+ if( i != response.route_instructions.length-1 )
+ route_desc += ''+OSRM.Utils.metersToDistance(response.route_instructions[i][2])+'';
+ route_desc += " | ";
+
+ route_desc += "
";
+ }
+
+ route_desc += '
';
+ headline = "";
+ headline += OSRM.loc("ROUTE_DESCRIPTION")+":
";
+ headline += '';
+ headline += ""
+ + OSRM.loc("DISTANCE")+": " + OSRM.Utils.metersToDistance(response.route_summary.total_distance)
+ + "
"
+ + OSRM.loc("DURATION")+": " + OSRM.Utils.secondsToTime(response.route_summary.total_time)
+ + "";
+ headline += '
';
+
+ var output = "";
+ output += route_desc;
+
+ OSRM.printwindow.document.getElementById('description-headline').innerHTML = headline;
+ OSRM.printwindow.document.getElementById('description').innerHTML = output;
+},
+
+// react to click
+print: function() {
+ OSRM.printwindow = window.open("printing/printing.html","","width=400,height=300,left=100,top=100,dependent=yes,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,resizable=yes");
+ OSRM.printwindow.addEventListener("DOMContentLoaded", OSRM.Printing.windowLoaded, false);
+}
+
+};
\ No newline at end of file
diff --git a/WebContent/printing/printing.css b/WebContent/printing/printing.css
new file mode 100644
index 000000000..a1ae513f0
--- /dev/null
+++ b/WebContent/printing/printing.css
@@ -0,0 +1,105 @@
+/*
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU AFFERO General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+or see http://www.gnu.org/licenses/agpl.txt.
+*/
+
+/* OSRM CSS styles for printing*/
+
+
+/* printer button */
+.printer-inactive
+{
+ cursor:pointer;
+ width:16px;
+ height:16px;
+ background-image:url("../images/printer_inactive.png");
+}
+.printer
+{
+ cursor:pointer;
+ width:16px;
+ height:16px;
+ background-image:url("../images/printer.png");
+}
+.printer:hover
+{
+ background-image:url("../images/printer_hover.png");
+}
+.printer:active
+{
+ background-image:url("../images/printer_active.png");
+}
+
+/* route summary */
+.route-summary
+{
+ font-size: 12px;
+}
+
+/* route description box */
+#description
+{
+ position:absolute;
+ bottom:15px;
+ top:60px;
+ width:380px;
+ font-size:12px;
+ margin:5px;
+}
+.results-table
+{
+ border-spacing:0px;
+}
+.results-odd
+{
+ background-color: #FAF3E9; //#ffffff;
+}
+.results-even
+{
+ background-color: #F2DE9C; //#ffffe0;
+}
+.result-items
+{
+ text-align:left;
+ vertical-align: middle;
+ width:100%;
+ padding-left:1px;
+ padding-right:1px;
+ padding-top:1px;
+ padding-bottom:1px;
+}
+.result-direction
+{
+ width:30px;
+ padding-left:1px;
+ padding-right:1px;
+ padding-top:1px;
+ padding-bottom:1px;
+}
+.result-distance
+{
+ text-align:right;
+ vertical-align: middle;
+ width:30px;
+ padding-left:1px;
+ padding-right:1px;
+ padding-top:1px;
+ padding-bottom:1px;
+}
+.result-item
+{
+ cursor:pointer;
+ color:#000000
+}
diff --git a/WebContent/printing/printing.html b/WebContent/printing/printing.html
new file mode 100644
index 000000000..5580e15da
--- /dev/null
+++ b/WebContent/printing/printing.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+OSRM Website
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WebContent/routing/OSRM.Routing.js b/WebContent/routing/OSRM.Routing.js
index b7283054b..20ff60519 100644
--- a/WebContent/routing/OSRM.Routing.js
+++ b/WebContent/routing/OSRM.Routing.js
@@ -71,6 +71,7 @@ showRoute: function(response) {
if(!response)
return;
+ OSRM.G.response = response;
OSRM.G.via_points = response.via_points.slice(0);
console.log(OSRM.G.via_points);
if(response.status == 207) {
@@ -146,4 +147,4 @@ _snapRoute: function() {
OSRM.Geocoder.updateAddress(OSRM.C.TARGET_LABEL);
}
-};
\ No newline at end of file
+};
diff --git a/WebContent/routing/OSRM.RoutingDescription.js b/WebContent/routing/OSRM.RoutingDescription.js
index 19911efb1..0ec55e785 100644
--- a/WebContent/routing/OSRM.RoutingDescription.js
+++ b/WebContent/routing/OSRM.RoutingDescription.js
@@ -30,16 +30,15 @@ onClickRouteDescription: function(geometry_index) {
OSRM.G.markers.highlight.centerView(OSRM.DEFAULTS.HIGHLIGHT_ZOOM_LEVEL);
},
onClickCreateShortcut: function(src){
- src += '&z='+ OSRM.G.map.getZoom() + '¢er=' + OSRM.G.map.getCenter().lat + ',' + OSRM.G.map.getCenter().lng;
+ src += '&z='+ OSRM.G.map.getZoom() + '¢er=' + OSRM.G.map.getCenter().lat.toFixed(6) + ',' + OSRM.G.map.getCenter().lng.toFixed(6);
OSRM.JSONP.call(OSRM.DEFAULTS.HOST_SHORTENER_URL+src, OSRM.RoutingDescription.showRouteLink, OSRM.RoutingDescription.showRouteLink_TimeOut, OSRM.DEFAULTS.JSONP_TIMEOUT, 'shortener');
- document.getElementById('route-prelink').innerHTML = '['+OSRM.loc("GENERATE_LINK_TO_ROUTE")+']';
+ document.getElementById('route-link').innerHTML = '['+OSRM.loc("GENERATE_LINK_TO_ROUTE")+']';
},
showRouteLink: function(response){
- document.getElementById('route-prelink').innerHTML = '['+response.ShortURL+']';
-// document.getElementById('route-prelink').innerHTML = '[]';
+ document.getElementById('route-link').innerHTML = '['+response.ShortURL+']';
},
showRouteLink_TimeOut: function(){
- document.getElementById('route-prelink').innerHTML = '['+OSRM.loc("LINK_TO_ROUTE_TIMEOUT")+']';
+ document.getElementById('route-link').innerHTML = '['+OSRM.loc("LINK_TO_ROUTE_TIMEOUT")+']';
},
// handling of routing description
@@ -47,17 +46,17 @@ show: function(response) {
// compute query string
var query_string = '?rebuild=1';
for(var i=0; i'+OSRM.loc("GET_LINK_TO_ROUTE")+']';
+ var route_link ='['+OSRM.loc("GET_LINK_TO_ROUTE")+']';
// create GPX link
- var gpx_link = '['+OSRM.loc("GPX_FILE")+']';
+ var gpx_link = '['+OSRM.loc("GPX_FILE")+']';
// create route description
var route_desc = "";
- route_desc += '';
+ route_desc += '';
for(var i=0; i < response.route_instructions.length; i++){
//odd or even ?
@@ -67,20 +66,21 @@ show: function(response) {
route_desc += '';
route_desc += '';
- route_desc += ' ';
+ route_desc += ' ';
route_desc += " | ";
route_desc += '';
- route_desc += '';
- route_desc += response.route_instructions[i][0];
+ route_desc += ' ';
+
+ // build route description
if( i == 0 )
- route_desc += ' ' + OSRM.loc( response.route_instructions[i][6] );
- if( response.route_instructions[i][1] != "" ) {
- route_desc += ' on ';
- route_desc += '' + response.route_instructions[i][1] + '';
- }
- //route_desc += ' for ';
- route_desc += '';
+ route_desc += OSRM.loc("DIRECTION_"+OSRM.RoutingDescription.mapDirectionId(response.route_instructions[i][0])).replace(/%s/, OSRM.loc(response.route_instructions[i][6]) );
+ else if( response.route_instructions[i][1] != "" )
+ route_desc += OSRM.loc("DIRECTION_"+OSRM.RoutingDescription.mapDirectionId(response.route_instructions[i][0])).replace(/\[(.*)\]/,"$1").replace(/%s/, response.route_instructions[i][1]);
+ else
+ route_desc += OSRM.loc("DIRECTION_"+OSRM.RoutingDescription.mapDirectionId(response.route_instructions[i][0])).replace(/\[(.*)\]/,"");
+
+ route_desc += ' ';
route_desc += " | ";
route_desc += '';
@@ -90,85 +90,93 @@ show: function(response) {
route_desc += " |
";
}
-
- route_desc += '
';
- headline = "";
- headline += OSRM.loc("ROUTE_DESCRIPTION")+":
";
- headline += '';
- headline += ""
- + OSRM.loc("DISTANCE")+": " + OSRM.Utils.metersToDistance(response.route_summary.total_distance)
- + "
"
- + OSRM.loc("DURATION")+": " + OSRM.Utils.secondsToTime(response.route_summary.total_time)
- + "";
- headline += '
';
- headline += ''+route_link+'
'+gpx_link+'
';
+ route_desc += '
';
+
+ // create header
+ header =
+ '' +
+ '' +
+ '
' +
+ '' +
+ '' +
+ '
' +
+ '
' +
+ '' +
+ '' +
+ '
' +
+ '
';
- var output = "";
- output += route_desc;
-
- document.getElementById('information-box-headline').innerHTML = headline;
- document.getElementById('information-box').innerHTML = output;
+ // update DOM
+ document.getElementById('information-box-header').innerHTML = header;
+ document.getElementById('information-box').innerHTML = route_desc;
},
// simple description
showSimple: function(response) {
- headline = OSRM.loc("ROUTE_DESCRIPTION")+":
";
- headline += ""
- + OSRM.loc("DISTANCE")+": " + OSRM.Utils.metersToDistance(response.route_summary.total_distance)
- + "
"
- + OSRM.loc("DURATION")+": " + OSRM.Utils.secondsToTime(response.route_summary.total_time)
- + "";
- headline += '
';
+ header =
+ '' +
+ '' +
+ '
' +
+ '' +
+ '' +
+ '
' +
+ '
' +
+ '
' +
+ '
';
- document.getElementById('information-box-headline').innerHTML = headline;
- document.getElementById('information-box').innerHTML = "
"+OSRM.loc("YOUR_ROUTE_IS_BEING_COMPUTED")+".
";
+ // update DOM
+ document.getElementById('information-box-header').innerHTML = header;
+ document.getElementById('information-box').innerHTML = "
"+OSRM.loc("YOUR_ROUTE_IS_BEING_COMPUTED")+"
";
},
// no description
showNA: function( display_text ) {
- headline = OSRM.loc("ROUTE_DESCRIPTION")+":
";
- headline += ""
- + OSRM.loc("DISTANCE")+": N/A"
- + "
"
- + OSRM.loc("DURATION")+": N/A"
- + "";
- headline += '
';
+ header =
+ '' +
+ '' +
+ '
' +
+ '' +
+ '' +
+ '
' +
+ '
' +
+ '
' +
+ '
';
- document.getElementById('information-box-headline').innerHTML = headline;
- document.getElementById('information-box').innerHTML = "
"+display_text+".
";
+ // update DOM
+ document.getElementById('information-box-header').innerHTML = header;
+ document.getElementById('information-box').innerHTML = "
"+display_text+"
";
},
-// map driving instructions to icons
-// [TODO: language-safe implementation]
-getDirectionIcon: function(name) {
+//map driving instruction ids to internal ids
+mapDirectionId: function(name) {
var directions = {
- "Turn left":"turn-left.png",
- "Turn right":"turn-right.png",
- "U-Turn":"u-turn.png",
- "Head":"continue.png",
- "Continue":"continue.png",
- "Turn slight left":"slight-left.png",
- "Turn slight right":"slight-right.png",
- "Turn sharp left":"sharp-left.png",
- "Turn sharp right":"sharp-right.png",
- "Enter roundabout and leave at first exit":"round-about.png",
- "Enter roundabout and leave at second exit":"round-about.png",
- "Enter roundabout and leave at third exit":"round-about.png",
- "Enter roundabout and leave at fourth exit":"round-about.png",
- "Enter roundabout and leave at fifth exit":"round-about.png",
- "Enter roundabout and leave at sixth exit":"round-about.png",
- "Enter roundabout and leave at seventh exit":"round-about.png",
- "Enter roundabout and leave at eighth exit":"round-about.png",
- "Enter roundabout and leave at nineth exit":"round-about.png",
- "Enter roundabout and leave at tenth exit":"round-about.png",
- "Enter roundabout and leave at one of the too many exit":"round-about.png",
- "You have reached your destination":"target.png"
+ "Turn left":1,
+ "Turn right":2,
+ "U-Turn":3,
+ "Head":4,
+ "Continue":5,
+ "Turn slight left":6,
+ "Turn slight right":7,
+ "Turn sharp left":8,
+ "Turn sharp right":9,
+ "Enter roundabout and leave at first exit":10,
+ "Enter roundabout and leave at second exit":11,
+ "Enter roundabout and leave at third exit":12,
+ "Enter roundabout and leave at fourth exit":13,
+ "Enter roundabout and leave at fifth exit":14,
+ "Enter roundabout and leave at sixth exit":15,
+ "Enter roundabout and leave at seventh exit":16,
+ "Enter roundabout and leave at eighth exit":17,
+ "Enter roundabout and leave at nineth exit":18,
+ "Enter roundabout and leave at tenth exit":19,
+ "Enter roundabout and leave at one of the too many exit":20,
+ "You have reached your destination":21
};
if( directions[name] )
return directions[name];
else
- return "default.png";
+ return 0;
}
};
\ No newline at end of file
diff --git a/WebContent/routing/OSRM.RoutingGUI.js b/WebContent/routing/OSRM.RoutingGUI.js
index da0f20289..f687fb49e 100644
--- a/WebContent/routing/OSRM.RoutingGUI.js
+++ b/WebContent/routing/OSRM.RoutingGUI.js
@@ -23,15 +23,15 @@ OSRM.RoutingGUI = {
// click: button "reset"
resetRouting: function() {
- document.getElementById('input-source-name').value = "";
- document.getElementById('input-target-name').value = "";
+ document.getElementById('gui-input-source').value = "";
+ document.getElementById('gui-input-target').value = "";
OSRM.G.route.hideAll();
OSRM.G.markers.removeAll();
OSRM.G.markers.highlight.hide();
document.getElementById('information-box').innerHTML = "";
- document.getElementById('information-box-headline').innerHTML = "";
+ document.getElementById('information-box-header').innerHTML = "";
OSRM.JSONP.reset();
},
@@ -39,26 +39,26 @@ resetRouting: function() {
// click: button "reverse"
reverseRouting: function() {
// invert input boxes
- var tmp = document.getElementById("input-source-name").value;
- document.getElementById("input-source-name").value = document.getElementById("input-target-name").value;
- document.getElementById("input-target-name").value = tmp;
+ var tmp = document.getElementById("gui-input-source").value;
+ document.getElementById("gui-input-source").value = document.getElementById("gui-input-target").value;
+ document.getElementById("gui-input-target").value = tmp;
// invert route
OSRM.G.markers.route.reverse();
if(OSRM.G.markers.route.length == 1) {
if(OSRM.G.markers.route[0].label == OSRM.C.TARGET_LABEL) {
OSRM.G.markers.route[0].label = OSRM.C.SOURCE_LABEL;
- OSRM.G.markers.route[0].marker.setIcon( new L.Icon('images/marker-source.png') );
+ OSRM.G.markers.route[0].marker.setIcon( OSRM.G.icons['marker-source'] );
} else if(OSRM.G.markers.route[0].label == OSRM.C.SOURCE_LABEL) {
OSRM.G.markers.route[0].label = OSRM.C.TARGET_LABEL;
- OSRM.G.markers.route[0].marker.setIcon( new L.Icon('images/marker-target.png') );
+ OSRM.G.markers.route[0].marker.setIcon( OSRM.G.icons['marker-target'] );
}
} else if(OSRM.G.markers.route.length > 1){
OSRM.G.markers.route[0].label = OSRM.C.SOURCE_LABEL;
- OSRM.G.markers.route[0].marker.setIcon( new L.Icon('images/marker-source.png') );
+ OSRM.G.markers.route[0].marker.setIcon( OSRM.G.icons['marker-source'] );
OSRM.G.markers.route[OSRM.G.markers.route.length-1].label = OSRM.C.TARGET_LABEL;
- OSRM.G.markers.route[OSRM.G.markers.route.length-1].marker.setIcon( new L.Icon('images/marker-target.png') );
+ OSRM.G.markers.route[OSRM.G.markers.route.length-1].marker.setIcon( OSRM.G.icons['marker-target'] );
}
// recompute route
@@ -67,7 +67,7 @@ reverseRouting: function() {
OSRM.G.markers.highlight.hide();
} else {
document.getElementById('information-box').innerHTML = "";
- document.getElementById('information-box-headline').innerHTML = "";
+ document.getElementById('information-box-header').innerHTML = "";
}
},
@@ -82,13 +82,12 @@ showMarker: function(marker_id) {
OSRM.G.markers.route[OSRM.G.markers.route.length-1].centerView();
},
-
-// changed: any inputbox (is called when return is pressed [after] or focus is lost [before])
+// changed: any inputbox (is called when enter is pressed [after] or focus is lost [before])
inputChanged: function(marker_id) {
if( marker_id == OSRM.C.SOURCE_LABEL)
- OSRM.Geocoder.call(OSRM.C.SOURCE_LABEL, document.getElementById('input-source-name').value);
+ OSRM.Geocoder.call(OSRM.C.SOURCE_LABEL, document.getElementById('gui-input-source').value);
else if( marker_id == OSRM.C.TARGET_LABEL)
- OSRM.Geocoder.call(OSRM.C.TARGET_LABEL, document.getElementById('input-target-name').value);
+ OSRM.Geocoder.call(OSRM.C.TARGET_LABEL, document.getElementById('gui-input-target').value);
},
// click: button "open JOSM"