Rename geocodeCallback to changeCallback, call it from latlon setValue

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.
This commit is contained in:
Anton Khorev 2024-08-11 06:47:38 +03:00
parent 953d8b4b59
commit ec6789920c
2 changed files with 6 additions and 8 deletions

View file

@ -1,4 +1,4 @@
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], {
@ -42,6 +42,7 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, ge
if (latlng) {
setLatLng(latlng);
setInputValueFromLatLng(latlng);
changeCallback();
} else {
endpoint.getGeocode();
}
@ -71,7 +72,7 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, ge
input.val(json[0].display_name);
geocodeCallback();
changeCallback();
});
};

View file

@ -28,13 +28,13 @@ OSM.Directions = function (map) {
getRoute(false, !dragging);
};
var endpointGeocodeCallback = function () {
var endpointChangeCallback = function () {
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();
@ -303,7 +303,6 @@ OSM.Directions = function (map) {
var precision = OSM.zoomPrecision(map.getZoom());
var value = ll.lat.toFixed(precision) + ", " + ll.lng.toFixed(precision);
endpoints[type === "from" ? 0 : 1].setValue(value, ll);
getRoute(true, true);
});
var params = Qs.parse(location.search.substring(1)),
@ -323,8 +322,6 @@ OSM.Directions = function (map) {
endpoints[1].setValue(params.to || "", to);
map.setSidebarOverlaid(!from || !to);
getRoute(true, true);
};
page.load = function () {