added scale control
This commit is contained in:
parent
320bbcfb20
commit
71399daf00
@ -62,6 +62,12 @@ init: function() {
|
||||
// move zoom markers
|
||||
OSRM.Browser.getElementsByClassName(document,'leaflet-control-zoom')[0].style.left=(OSRM.G.main_handle.boxWidth()+10)+"px";
|
||||
OSRM.Browser.getElementsByClassName(document,'leaflet-control-zoom')[0].style.top="5px";
|
||||
|
||||
// add scale control
|
||||
OSRM.G.map.scaleControl = new L.Control.Scale();
|
||||
OSRM.G.map.scaleControl.options.metric = (OSRM.G.DISTANCE_FORMAT != 1);
|
||||
OSRM.G.map.scaleControl.options.imperial = (OSRM.G.DISTANCE_FORMAT == 1);
|
||||
OSRM.G.map.scaleControl.addTo(OSRM.G.map);
|
||||
|
||||
// map events
|
||||
OSRM.G.map.on('zoomend', OSRM.Map.zoomed );
|
||||
|
@ -100,11 +100,30 @@ afterMainTransition: function() {
|
||||
},
|
||||
|
||||
// toggle distance units
|
||||
onUnitsChanged: function(value) {
|
||||
OSRM.Utils.setToHumanDistanceFunction(value);
|
||||
onUnitsChanged: function(type) {
|
||||
OSRM.GUI.changeDistanceFormat(type);
|
||||
OSRM.Routing.getRoute({keepAlternative:true});
|
||||
},
|
||||
|
||||
// change distance format
|
||||
changeDistanceFormat: function(type) {
|
||||
OSRM.G.DISTANCE_FORMAT = type;
|
||||
|
||||
// change scale control
|
||||
if(OSRM.G.map) {
|
||||
OSRM.G.map.scaleControl.removeFrom(OSRM.G.map);
|
||||
OSRM.G.map.scaleControl.options.metric = (type != 1);
|
||||
OSRM.G.map.scaleControl.options.imperial = (type == 1);
|
||||
OSRM.G.map.scaleControl.addTo(OSRM.G.map);
|
||||
}
|
||||
|
||||
// change converter
|
||||
if( type == 1 )
|
||||
OSRM.Utils.toHumanDistance = OSRM.Utils.toHumanDistanceMiles;
|
||||
else
|
||||
OSRM.Utils.toHumanDistance = OSRM.Utils.toHumanDistanceMeters;
|
||||
},
|
||||
|
||||
// set timestamp of data
|
||||
setDataTimestamp: function(response) {
|
||||
if(!response)
|
||||
|
@ -24,7 +24,7 @@ OSRM.GUI.extend( {
|
||||
// init
|
||||
init: function() {
|
||||
// init variables
|
||||
OSRM.Utils.setToHumanDistanceFunction(OSRM.DEFAULTS.DISTANCE_FORMAT);
|
||||
OSRM.GUI.changeDistanceFormat(OSRM.DEFAULTS.DISTANCE_FORMAT);
|
||||
|
||||
// init events
|
||||
document.getElementById("gui-input-source").onchange = function() {OSRM.GUI.inputChanged(OSRM.C.SOURCE_LABEL);};
|
||||
|
@ -29,19 +29,19 @@ OSRM.init = function() {
|
||||
OSRM.Map.init();
|
||||
OSRM.Printing.init();
|
||||
OSRM.Routing.init();
|
||||
// OSRM.RoutingAlternatives.init();
|
||||
OSRM.RoutingAlternatives.init();
|
||||
OSRM.Localization.init();
|
||||
|
||||
// stop if in maintenance mode
|
||||
if( OSRM.GUI.inMaintenance() == true )
|
||||
return;
|
||||
|
||||
// // check if the URL contains some GET parameter, e.g. for showing a route
|
||||
// OSRM.parseParameters();
|
||||
//
|
||||
// // only init default position / geolocation position if GET parameters do not specify a different one
|
||||
// if( OSRM.G.initial_position_override == false )
|
||||
// OSRM.Map.initPosition();
|
||||
// check if the URL contains some GET parameter, e.g. for showing a route
|
||||
OSRM.parseParameters();
|
||||
|
||||
// only init default position / geolocation position if GET parameters do not specify a different one
|
||||
if( OSRM.G.initial_position_override == false )
|
||||
OSRM.Map.initPosition();
|
||||
};
|
||||
|
||||
|
||||
@ -206,7 +206,7 @@ OSRM.parseParameters = function(){
|
||||
var type = parseInt(name_val[1]);
|
||||
if(type != 0 && type != 1)
|
||||
return;
|
||||
OSRM.Utils.setToHumanDistanceFunction(type);
|
||||
OSRM.GUI.changeDistanceFormat(type);
|
||||
}
|
||||
else if(name_val[0] == 'loc') {
|
||||
var coordinates = unescape(name_val[1]).split(',');
|
||||
|
@ -233,10 +233,13 @@ printWindowLoaded: function(){
|
||||
var stylesheet = OSRM.CSS.getStylesheet("printing.css", print_document);
|
||||
for(var i=0; i<css_list.length; i++) {
|
||||
OSRM.CSS.insert( stylesheet, css_list[i].id, "background-image:url("+ OSRM.Printing.BASE_DIRECTORY + OSRM.G.images[css_list[i].image_id].getAttribute("src") + ");" );
|
||||
}
|
||||
}
|
||||
|
||||
// scale control
|
||||
print_window.OSRM.G.DISTANCE_FORMAT = OSRM.G.DISTANCE_FORMAT;
|
||||
|
||||
// localization
|
||||
print_window.OSRM.Localization.culture = OSRM.loc("CULTURE");
|
||||
print_window.OSRM.G.Localization.culture = OSRM.loc("CULTURE");
|
||||
print_document.getElementById('description-label').innerHTML = OSRM.loc( "ROUTE_DESCRIPTION" );
|
||||
print_document.getElementById('overview-map-label').innerHTML = OSRM.loc( "OVERVIEW_MAP" );
|
||||
if( !OSRM.G.route.isRoute() || !OSRM.G.route.isShown() ) { // error message if no route available (can trigger if user refreshes print-window)
|
||||
|
@ -20,7 +20,8 @@ or see http://www.gnu.org/licenses/agpl.txt.
|
||||
|
||||
OSRM = {};
|
||||
OSRM.GLOBALS = { main_handle:{boxVisible:function(){return false;}} }; // needed for fitBoundsUI to work
|
||||
OSRM.Localization = { culture:"en-US" }; // needed for localized map tiles
|
||||
OSRM.GLOBALS.Localization = { culture:"en-US" }; // needed for localized map tiles
|
||||
OSRM.GLOBALS.DISTANCE_FORMAT = 0; // needed for scale control
|
||||
OSRM.G = OSRM.GLOBALS;
|
||||
|
||||
|
||||
@ -60,7 +61,7 @@ OSRM.drawMap = function(tile_server, bounds) {
|
||||
var tile_layer;
|
||||
if( tile_server.bing ) tile_layer = new L.BingLayer(tile_server.apikey, tile_server.options);
|
||||
else tile_layer = new L.TileLayer(tile_server.url, tile_server.options);
|
||||
tile_layer.options.culture = OSRM.Localization.culture;
|
||||
tile_layer.options.culture = OSRM.G.Localization.culture;
|
||||
OSRM.G.map = new OSRM.MapView("overview-map", {
|
||||
center: new L.LatLng(48.84, 10.10),
|
||||
zoom: 13,
|
||||
@ -75,6 +76,12 @@ OSRM.drawMap = function(tile_server, bounds) {
|
||||
doubleClickZoom:false
|
||||
});
|
||||
|
||||
// add scale control
|
||||
OSRM.G.map.scaleControl = new L.Control.Scale();
|
||||
OSRM.G.map.scaleControl.options.metric = (OSRM.G.DISTANCE_FORMAT != 1);
|
||||
OSRM.G.map.scaleControl.options.imperial = (OSRM.G.DISTANCE_FORMAT == 1);
|
||||
OSRM.G.map.scaleControl.addTo(OSRM.G.map);
|
||||
|
||||
// need to rebuild objects for instanceof to work correctly
|
||||
var converted_bounds = new L.LatLngBounds([bounds.getSouthWest().lat, bounds.getSouthWest().lng], [bounds.getNorthEast().lat, bounds.getNorthEast().lng]);
|
||||
|
||||
|
@ -35,13 +35,6 @@ toHumanTime: function(seconds){
|
||||
else{ return hours + ' ' + 'h' + ' ' + minutes + ' ' + 'min';}
|
||||
},
|
||||
//human readable distance
|
||||
setToHumanDistanceFunction: function(type) {
|
||||
OSRM.G.DISTANCE_FORMAT = type;
|
||||
if( type == 1 )
|
||||
OSRM.Utils.toHumanDistance = OSRM.Utils.toHumanDistanceMiles;
|
||||
else
|
||||
OSRM.Utils.toHumanDistance = OSRM.Utils.toHumanDistanceMeters;
|
||||
},
|
||||
toHumanDistanceMeters: function(meters){
|
||||
var distance = parseInt(meters);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user