Improve error-handling
This commit is contained in:
parent
902f1b0887
commit
5b6558c0f2
6 changed files with 22 additions and 7 deletions
|
@ -56,6 +56,7 @@ OSM.Routing=function(map,name,jqSearch) {
|
||||||
r.route_to=null; // |
|
r.route_to=null; // |
|
||||||
r.awaitingGeocode=false;// true if the user has requested a route, but we're waiting on a geocode result
|
r.awaitingGeocode=false;// true if the user has requested a route, but we're waiting on a geocode result
|
||||||
r.awaitingRoute=false; // true if we've asked the engine for a route and are waiting to hear back
|
r.awaitingRoute=false; // true if we've asked the engine for a route and are waiting to hear back
|
||||||
|
r.dragging=false; // true if the user is dragging a start/end point
|
||||||
r.viaPoints=[]; // not yet used
|
r.viaPoints=[]; // not yet used
|
||||||
|
|
||||||
r.polyline=null; // Leaflet polyline object
|
r.polyline=null; // Leaflet polyline object
|
||||||
|
@ -97,7 +98,7 @@ OSM.Routing=function(map,name,jqSearch) {
|
||||||
|
|
||||||
r._gotGeocode=function(json,field) {
|
r._gotGeocode=function(json,field) {
|
||||||
if (json.length==0) {
|
if (json.length==0) {
|
||||||
alert("Sorry, couldn't find that place."); // *** internationalise
|
alert(I18n.t('javascripts.directions.errors.no_place'));
|
||||||
r[field.id]=null;
|
r[field.id]=null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -143,10 +144,11 @@ OSM.Routing=function(map,name,jqSearch) {
|
||||||
};
|
};
|
||||||
// Marker has been dragged
|
// Marker has been dragged
|
||||||
r.markerDragged=function(e) {
|
r.markerDragged=function(e) {
|
||||||
if (e.type=='drag' && !r.chosenEngine.draggable) return;
|
r.dragging=(e.type=='drag'); // true for drag, false for dragend
|
||||||
if (e.type=='drag' && r.awaitingRoute) return;
|
if (r.dragging && !r.chosenEngine.draggable) return;
|
||||||
|
if (r.dragging && r.awaitingRoute) return;
|
||||||
r.setNumericInput(e.target.getLatLng(), e.target.options.name);
|
r.setNumericInput(e.target.getLatLng(), e.target.options.name);
|
||||||
r.requestRoute(e.type=='dragend', false);
|
r.requestRoute(!r.dragging, false);
|
||||||
};
|
};
|
||||||
// Set a route input field to a numeric value
|
// Set a route input field to a numeric value
|
||||||
r.setNumericInput=function(ll,id) {
|
r.setNumericInput=function(ll,id) {
|
||||||
|
@ -247,8 +249,16 @@ OSM.Routing=function(map,name,jqSearch) {
|
||||||
document.body.appendChild(script);
|
document.body.appendChild(script);
|
||||||
};
|
};
|
||||||
r['gotRoute'+num]=function(data) {
|
r['gotRoute'+num]=function(data) {
|
||||||
r.awaitingRoute=false; list[num].gotRoute(r,data);
|
r.awaitingRoute=false;
|
||||||
$(".query_wrapper.routing .spinner").hide();
|
$(".query_wrapper.routing .spinner").hide();
|
||||||
|
if (!list[num].gotRoute(r,data)) {
|
||||||
|
// No route found
|
||||||
|
if (r.polyline) {
|
||||||
|
map.removeLayer(r.polyline);
|
||||||
|
r.polyline=null;
|
||||||
|
}
|
||||||
|
if (!r.dragging) { alert(I18n.t('javascripts.directions.errors.no_route')); }
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
select.append("<option value='"+i+"'>"+I18n.t(list[i].name)+"</option>");
|
select.append("<option value='"+i+"'>"+I18n.t(list[i].name)+"</option>");
|
||||||
|
|
|
@ -28,6 +28,7 @@ OSM.RoutingEngines.list.push({
|
||||||
url+="/foot.js";
|
url+="/foot.js";
|
||||||
url+="?lang=" + I18n.currentLocale();
|
url+="?lang=" + I18n.currentLocale();
|
||||||
this.requestJSONP(url+"&callback=");
|
this.requestJSONP(url+"&callback=");
|
||||||
|
return true;
|
||||||
},
|
},
|
||||||
gotRoute: function(router,data) {
|
gotRoute: function(router,data) {
|
||||||
router.setPolyline(data.route_geometry);
|
router.setPolyline(data.route_geometry);
|
||||||
|
|
|
@ -17,7 +17,6 @@ OSM.RoutingEngines.list.push({
|
||||||
},
|
},
|
||||||
gotRoute: function(router, data) {
|
gotRoute: function(router, data) {
|
||||||
if (!data.info.routeFound) {
|
if (!data.info.routeFound) {
|
||||||
alert("Couldn't find route between those two places");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Draw polyline
|
// Draw polyline
|
||||||
|
@ -36,6 +35,7 @@ OSM.RoutingEngines.list.push({
|
||||||
steps.push([{lat: latlng[0], lng: latlng[1]}, instrCode, instrText, distInMeter]);
|
steps.push([{lat: latlng[0], lng: latlng[1]}, instrCode, instrText, distInMeter]);
|
||||||
}
|
}
|
||||||
router.setItinerary({steps: steps});
|
router.setItinerary({steps: steps});
|
||||||
|
return true;
|
||||||
},
|
},
|
||||||
GH_INSTR_MAP: {
|
GH_INSTR_MAP: {
|
||||||
"-3": 6, // sharp left
|
"-3": 6, // sharp left
|
||||||
|
|
|
@ -60,5 +60,6 @@ OSM.RoutingEngines.list.push({
|
||||||
steps.push([L.latLng(s.startPoint.lat, s.startPoint.lng), d, s.narrative, s.distance*1000]);
|
steps.push([L.latLng(s.startPoint.lat, s.startPoint.lng), d, s.narrative, s.distance*1000]);
|
||||||
}
|
}
|
||||||
router.setItinerary( { steps: steps });
|
router.setItinerary( { steps: steps });
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -19,7 +19,6 @@ OSM.RoutingEngines.list.push({
|
||||||
},
|
},
|
||||||
gotRoute: function(router,data) {
|
gotRoute: function(router,data) {
|
||||||
if (data.status==207) {
|
if (data.status==207) {
|
||||||
alert("Couldn't find route between those two places");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Draw polyline
|
// Draw polyline
|
||||||
|
@ -39,5 +38,6 @@ OSM.RoutingEngines.list.push({
|
||||||
steps.push([line[s[3]], s[0].split('-')[0], instText, s[2]]);
|
steps.push([line[s[3]], s[0].split('-')[0], instText, s[2]]);
|
||||||
}
|
}
|
||||||
if (steps.length) router.setItinerary({ steps: steps });
|
if (steps.length) router.setItinerary({ steps: steps });
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -2125,6 +2125,9 @@ en:
|
||||||
osrm_car: "Car (OSRM)"
|
osrm_car: "Car (OSRM)"
|
||||||
cloudmade_foot: "Foot (Cloudmade)"
|
cloudmade_foot: "Foot (Cloudmade)"
|
||||||
directions: "Directions"
|
directions: "Directions"
|
||||||
|
errors:
|
||||||
|
no_route: "Couldn't find a route between those two places."
|
||||||
|
no_place: "Sorry - couldn't find that place."
|
||||||
instructions:
|
instructions:
|
||||||
continue_on: "Continue on "
|
continue_on: "Continue on "
|
||||||
slight_right: "Slight right onto "
|
slight_right: "Slight right onto "
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue