endpoint.setValue always calls changeCallback on its successful completion, with geocoding or without. This allows to decide when to call getRoute entirely from callbacks and event listeners.
-OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, geocodeCallback) {
+OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, changeCallback) {
var endpoint = {};
endpoint.marker = L.marker([0, 0], {
var endpoint = {};
endpoint.marker = L.marker([0, 0], {
if (latlng) {
setLatLng(latlng);
setInputValueFromLatLng(latlng);
if (latlng) {
setLatLng(latlng);
setInputValueFromLatLng(latlng);
} else {
endpoint.getGeocode();
}
} else {
endpoint.getGeocode();
}
input.val(json[0].display_name);
input.val(json[0].display_name);
getRoute(false, !dragging);
};
getRoute(false, !dragging);
};
- var endpointGeocodeCallback = function () {
+ var endpointChangeCallback = function () {
getRoute(true, true);
};
var endpoints = [
getRoute(true, true);
};
var endpoints = [
- OSM.DirectionsEndpoint(map, $("input[name='route_from']"), OSM.MARKER_GREEN, endpointDragCallback, endpointGeocodeCallback),
- OSM.DirectionsEndpoint(map, $("input[name='route_to']"), OSM.MARKER_RED, endpointDragCallback, endpointGeocodeCallback)
+ OSM.DirectionsEndpoint(map, $("input[name='route_from']"), OSM.MARKER_GREEN, endpointDragCallback, endpointChangeCallback),
+ OSM.DirectionsEndpoint(map, $("input[name='route_to']"), OSM.MARKER_RED, endpointDragCallback, endpointChangeCallback)
];
var expiry = new Date();
];
var expiry = new Date();
var precision = OSM.zoomPrecision(map.getZoom());
var value = ll.lat.toFixed(precision) + ", " + ll.lng.toFixed(precision);
endpoints[type === "from" ? 0 : 1].setValue(value, ll);
var precision = OSM.zoomPrecision(map.getZoom());
var value = ll.lat.toFixed(precision) + ", " + ll.lng.toFixed(precision);
endpoints[type === "from" ? 0 : 1].setValue(value, ll);
});
var params = Qs.parse(location.search.substring(1)),
});
var params = Qs.parse(location.search.substring(1)),
endpoints[1].setValue(params.to || "", to);
map.setSidebarOverlaid(!from || !to);
endpoints[1].setValue(params.to || "", to);
map.setSidebarOverlaid(!from || !to);
-
- getRoute(true, true);
};
page.load = function () {
};
page.load = function () {