alternatives work - sort of
This commit is contained in:
parent
c33dbe67d8
commit
74154ab0a6
@ -81,6 +81,8 @@ OSRM.RouteMarker = function ( label, style, position ) {
|
|||||||
OSRM.inheritFrom( OSRM.RouteMarker, OSRM.Marker );
|
OSRM.inheritFrom( OSRM.RouteMarker, OSRM.Marker );
|
||||||
OSRM.extend( OSRM.RouteMarker, {
|
OSRM.extend( OSRM.RouteMarker, {
|
||||||
onClick: function(e) {
|
onClick: function(e) {
|
||||||
|
OSRM.RoutingAlternatives.reset();
|
||||||
|
|
||||||
for( var i=0; i<OSRM.G.markers.route.length; i++) {
|
for( var i=0; i<OSRM.G.markers.route.length; i++) {
|
||||||
if( OSRM.G.markers.route[i].marker === this ) {
|
if( OSRM.G.markers.route[i].marker === this ) {
|
||||||
OSRM.G.markers.removeMarker( i );
|
OSRM.G.markers.removeMarker( i );
|
||||||
@ -102,6 +104,8 @@ onDragStart: function(e) {
|
|||||||
OSRM.G.dragging = true;
|
OSRM.G.dragging = true;
|
||||||
this.switchIcon(this.options.dragicon);
|
this.switchIcon(this.options.dragicon);
|
||||||
|
|
||||||
|
OSRM.RoutingAlternatives.reset();
|
||||||
|
|
||||||
// store id of dragged marker
|
// store id of dragged marker
|
||||||
for( var i=0; i<OSRM.G.markers.route.length; i++)
|
for( var i=0; i<OSRM.G.markers.route.length; i++)
|
||||||
if( OSRM.G.markers.route[i].marker === this ) {
|
if( OSRM.G.markers.route[i].marker === this ) {
|
||||||
|
@ -59,6 +59,8 @@ resetRouting: function() {
|
|||||||
document.getElementById('gui-input-source').value = "";
|
document.getElementById('gui-input-source').value = "";
|
||||||
document.getElementById('gui-input-target').value = "";
|
document.getElementById('gui-input-target').value = "";
|
||||||
|
|
||||||
|
OSRM.RoutingAlternatives.reset();
|
||||||
|
|
||||||
OSRM.G.route.reset();
|
OSRM.G.route.reset();
|
||||||
OSRM.G.markers.reset();
|
OSRM.G.markers.reset();
|
||||||
|
|
||||||
@ -75,6 +77,8 @@ reverseRouting: function() {
|
|||||||
document.getElementById("gui-input-source").value = document.getElementById("gui-input-target").value;
|
document.getElementById("gui-input-source").value = document.getElementById("gui-input-target").value;
|
||||||
document.getElementById("gui-input-target").value = tmp;
|
document.getElementById("gui-input-target").value = tmp;
|
||||||
|
|
||||||
|
OSRM.RoutingAlternatives.reset();
|
||||||
|
|
||||||
// recompute route if needed
|
// recompute route if needed
|
||||||
if( OSRM.G.route.isShown() ) {
|
if( OSRM.G.route.isShown() ) {
|
||||||
OSRM.G.markers.route.reverse();
|
OSRM.G.markers.route.reverse();
|
||||||
@ -102,6 +106,8 @@ showMarker: function(marker_id) {
|
|||||||
|
|
||||||
// changed: any inputbox (is called when enter 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) {
|
inputChanged: function(marker_id) {
|
||||||
|
OSRM.RoutingAlternatives.reset();
|
||||||
|
|
||||||
if( marker_id == OSRM.C.SOURCE_LABEL)
|
if( marker_id == OSRM.C.SOURCE_LABEL)
|
||||||
OSRM.Geocoder.call(OSRM.C.SOURCE_LABEL, document.getElementById('gui-input-source').value);
|
OSRM.Geocoder.call(OSRM.C.SOURCE_LABEL, document.getElementById('gui-input-source').value);
|
||||||
else if( marker_id == OSRM.C.TARGET_LABEL)
|
else if( marker_id == OSRM.C.TARGET_LABEL)
|
||||||
@ -144,6 +150,8 @@ deleteMarker: function(marker_id) {
|
|||||||
if( id == null)
|
if( id == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
OSRM.RoutingAlternatives.reset();
|
||||||
|
|
||||||
OSRM.G.markers.removeMarker( id );
|
OSRM.G.markers.removeMarker( id );
|
||||||
OSRM.Routing.getRoute();
|
OSRM.Routing.getRoute();
|
||||||
OSRM.G.markers.highlight.hide();
|
OSRM.G.markers.highlight.hide();
|
||||||
|
@ -65,10 +65,11 @@ showRoute: function(response) {
|
|||||||
OSRM.RoutingDescription.showNA( OSRM.loc("NO_ROUTE_FOUND") );
|
OSRM.RoutingDescription.showNA( OSRM.loc("NO_ROUTE_FOUND") );
|
||||||
OSRM.Routing._snapRoute();
|
OSRM.Routing._snapRoute();
|
||||||
} else {
|
} else {
|
||||||
OSRM.RoutingGeometry.show(response);
|
OSRM.RoutingAlternatives.init(OSRM.G.response);
|
||||||
OSRM.RoutingNoNames.show(response);
|
OSRM.RoutingGeometry.show(OSRM.G.response);
|
||||||
OSRM.RoutingDescription.show(response);
|
OSRM.RoutingNoNames.show(OSRM.G.response);
|
||||||
OSRM.RoutingAlternatives.prepare(response);
|
OSRM.RoutingDescription.show(OSRM.G.response);
|
||||||
|
OSRM.RoutingAlternatives._drawGUI();
|
||||||
OSRM.Routing._snapRoute();
|
OSRM.Routing._snapRoute();
|
||||||
}
|
}
|
||||||
OSRM.Routing._updateHints(response);
|
OSRM.Routing._updateHints(response);
|
||||||
@ -96,12 +97,11 @@ showRoute_Redraw: function(response) {
|
|||||||
if(!response)
|
if(!response)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//OSRM.G.response = response; // not needed, even harmful as important information is not stored!
|
OSRM.G.response = response; // not needed, even harmful as important information is not stored! ????
|
||||||
//OSRM.RoutingAlternatives.prepare_Redraw(response);
|
|
||||||
if(response.status != 207) {
|
if(response.status != 207) {
|
||||||
OSRM.RoutingAlternatives.prepare_Redraw(response);
|
OSRM.RoutingAlternatives.init(OSRM.G.response);
|
||||||
OSRM.RoutingGeometry.show(OSRM.G.response);
|
OSRM.RoutingGeometry.show(OSRM.G.response);
|
||||||
OSRM.RoutingNoNames.show(OSRM.Gresponse);
|
OSRM.RoutingNoNames.show(OSRM.G.response);
|
||||||
}
|
}
|
||||||
OSRM.Routing._updateHints(response);
|
OSRM.Routing._updateHints(response);
|
||||||
},
|
},
|
||||||
|
@ -30,6 +30,33 @@ _buttons: [
|
|||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
|
// reset stored values
|
||||||
|
reset: function() {
|
||||||
|
OSRM.G.active_alternative = 0;
|
||||||
|
OSRM.G.alternative_count = 0;
|
||||||
|
},
|
||||||
|
|
||||||
|
// restructure response data
|
||||||
|
init: function(response) {
|
||||||
|
// move best route to alternative array
|
||||||
|
var the_response = OSRM.G.response;
|
||||||
|
the_response.alternative_geometries.unshift( response.route_geometry );
|
||||||
|
the_response.alternative_instructions.unshift( response.route_instructions );
|
||||||
|
the_response.alternative_summaries.unshift( response.route_summary );
|
||||||
|
|
||||||
|
// update basic information
|
||||||
|
OSRM.G.alternative_count = response.alternative_geometries.length;
|
||||||
|
if( OSRM.G.active_alternative == undefined )
|
||||||
|
OSRM.G.active_alternative = 0;
|
||||||
|
if( OSRM.G.active_alternative > OSRM.G.alternative_count - 1 )
|
||||||
|
OSRM.G.active_alternative = 0;
|
||||||
|
|
||||||
|
// switch data
|
||||||
|
the_response.route_geometry = the_response.alternative_geometries[OSRM.G.active_alternative];
|
||||||
|
the_response.route_instructions = the_response.alternative_instructions[OSRM.G.active_alternative];
|
||||||
|
the_response.route_summary = the_response.alternative_summaries[OSRM.G.active_alternative];
|
||||||
|
},
|
||||||
|
|
||||||
// prepare using alternatives
|
// prepare using alternatives
|
||||||
prepare: function(response) {
|
prepare: function(response) {
|
||||||
// store basic information
|
// store basic information
|
||||||
|
Loading…
Reference in New Issue
Block a user