added miles/feet display (without gui option at the moment)
This commit is contained in:
parent
222e4e8916
commit
0e9dcc30b7
@ -32,6 +32,7 @@ OSRM.DEFAULTS = {
|
||||
ONLOAD_SOURCE: "",
|
||||
ONLOAD_TARGET: "",
|
||||
HIGHLIGHT_ZOOM_LEVEL: 16,
|
||||
DISTANCE_FORMAT: 0, // 0: km, 1: miles
|
||||
GEOCODER_BOUNDS: '', // the world is not enough!
|
||||
//GEOCODER_BOUNDS: '&bounded=1&viewbox=-27.0,72.0,46.0,36.0', // bounds for Europe
|
||||
|
||||
|
@ -23,6 +23,9 @@ OSRM.GUI.extend( {
|
||||
|
||||
// init
|
||||
init: function() {
|
||||
// init variables
|
||||
OSRM.G.DISTANCE_FORMAT = OSRM.DEFAULTS.DISTANCE_FORMAT;
|
||||
|
||||
// init events
|
||||
document.getElementById("gui-input-source").onchange = function() {OSRM.GUI.inputChanged(OSRM.C.SOURCE_LABEL);};
|
||||
document.getElementById("gui-delete-source").onclick = function() {OSRM.GUI.deleteMarker(OSRM.C.SOURCE_LABEL);};
|
||||
|
@ -85,11 +85,11 @@ show: function(response) {
|
||||
'<div class="full">' +
|
||||
'<div class="row">' +
|
||||
'<div class="left description-header-label">' + OSRM.loc("DISTANCE")+': </div>' +
|
||||
'<div class="left description-header-content">' + OSRM.Utils.metersToDistance(response.route_summary.total_distance) + '</div>' +
|
||||
'<div class="left description-header-content">' + OSRM.Utils.toHumanDistance(response.route_summary.total_distance) + '</div>' +
|
||||
'</div>' +
|
||||
'<div class="row">' +
|
||||
'<div class="left description-header-label">' + OSRM.loc("DURATION")+': </div>' +
|
||||
'<div class="left description-header-content">' + OSRM.Utils.secondsToTime(response.route_summary.total_time) + '</div>' +
|
||||
'<div class="left description-header-content">' + OSRM.Utils.toHumanTime(response.route_summary.total_time) + '</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
@ -123,7 +123,7 @@ show: function(response) {
|
||||
|
||||
body += '<td class="description-body-distance">';
|
||||
if( i != response.route_instructions.length-1 )
|
||||
body += '<b>'+OSRM.Utils.metersToDistance(response.route_instructions[i][2])+'</b>';
|
||||
body += '<b>'+OSRM.Utils.toHumanDistance(response.route_instructions[i][2])+'</b>';
|
||||
body += "</td>";
|
||||
|
||||
body += "</tr>";
|
||||
|
@ -92,7 +92,7 @@ show: function(response) {
|
||||
|
||||
body += '<td class="description-body-distance">';
|
||||
if( i != response.route_instructions.length-1 )
|
||||
body += '<b>'+OSRM.Utils.metersToDistance(response.route_instructions[i][2])+'</b>';
|
||||
body += '<b>'+OSRM.Utils.toHumanDistance(response.route_instructions[i][2])+'</b>';
|
||||
body += "</td>";
|
||||
|
||||
body += "</tr>";
|
||||
@ -100,7 +100,7 @@ show: function(response) {
|
||||
body += '</table>';
|
||||
|
||||
// build header
|
||||
header = OSRM.RoutingDescription._buildHeader(OSRM.Utils.metersToDistance(response.route_summary.total_distance), OSRM.Utils.secondsToTime(response.route_summary.total_time), route_link, gpx_link);
|
||||
header = OSRM.RoutingDescription._buildHeader(OSRM.Utils.toHumanDistance(response.route_summary.total_distance), OSRM.Utils.toHumanTime(response.route_summary.total_time), route_link, gpx_link);
|
||||
|
||||
// update DOM
|
||||
document.getElementById('information-box-header').innerHTML = header;
|
||||
@ -110,7 +110,7 @@ show: function(response) {
|
||||
// simple description
|
||||
showSimple: function(response) {
|
||||
// build header
|
||||
header = OSRM.RoutingDescription._buildHeader(OSRM.Utils.metersToDistance(response.route_summary.total_distance), OSRM.Utils.secondsToTime(response.route_summary.total_time), "", "");
|
||||
header = OSRM.RoutingDescription._buildHeader(OSRM.Utils.toHumanDistance(response.route_summary.total_distance), OSRM.Utils.toHumanTime(response.route_summary.total_time), "", "");
|
||||
|
||||
// update DOM
|
||||
document.getElementById('information-box-header').innerHTML = header;
|
||||
|
@ -24,7 +24,7 @@ OSRM.Utils = {
|
||||
// [human readabilty functions]
|
||||
|
||||
// human readable time
|
||||
secondsToTime: function(seconds){
|
||||
toHumanTime: function(seconds){
|
||||
seconds = parseInt(seconds);
|
||||
minutes = parseInt(seconds/60);
|
||||
seconds = seconds%60;
|
||||
@ -38,13 +38,22 @@ secondsToTime: function(seconds){
|
||||
}
|
||||
},
|
||||
//human readable distance
|
||||
metersToDistance: function(distance){
|
||||
distance = parseInt(distance);
|
||||
toHumanDistance: function(meters){
|
||||
var distance = parseInt(meters);
|
||||
|
||||
if(distance >= 100000){ return (parseInt(distance/1000))+' ' + 'km'; }
|
||||
else if(distance >= 10000){ return (parseInt(distance/1000).toFixed(1))+' ' + 'km'; }
|
||||
else if(distance >= 1000){ return (parseFloat(distance/1000).toFixed(2))+' ' + 'km'; }
|
||||
else{ return distance+' ' + 'm'; }
|
||||
if(OSRM.G.DISTANCE_FORMAT == 1) { // miles
|
||||
distance = distance / 1609.344;
|
||||
if(distance >= 100){ return (distance).toFixed(0)+' ' + 'mi'; }
|
||||
else if(distance >= 10){ return (distance).toFixed(1)+' ' + 'mi'; }
|
||||
else if(distance >= 0.1){ return (distance).toFixed(2)+' ' + 'mi'; }
|
||||
else{ return (distance*5280).toFixed(0)+' ' + 'ft'; }
|
||||
} else { // default to km, m
|
||||
distance = distance / 1000;
|
||||
if(distance >= 100){ return (distance).toFixed(0)+' ' + 'km'; }
|
||||
else if(distance >= 10){ return (distance).toFixed(1)+' ' + 'km'; }
|
||||
else if(distance >= 0.1){ return (distance).toFixed(2)+' ' + 'km'; }
|
||||
else{ return (distance*1000).toFixed(0)+' ' + 'm'; }
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user