X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/6db326aa1f084a062a3b658876bc01bf650f5702..290d2a23085281e68fc3c21e9d1229f64bb84d38:/app/assets/javascripts/index/directions.js diff --git a/app/assets/javascripts/index/directions.js b/app/assets/javascripts/index/directions.js index 4283ef5aa..4c39d6781 100644 --- a/app/assets/javascripts/index/directions.js +++ b/app/assets/javascripts/index/directions.js @@ -1,9 +1,12 @@ //= require_self //= require_tree ./directions +//= require querystring OSM.Directions = function (map) { + var querystring = require("querystring-component"); + var awaitingGeocode; // true if the user has requested a route, but we're waiting on a geocode result - var awaitingRoute; // true if we've asked the engine for a route and are waiting to hear back + var awaitingRoute; // true if we've asked the engine for a route and are waiting to hear back var chosenEngine; var popup = L.popup({ autoPanPadding: [100, 100] }); @@ -31,9 +34,9 @@ OSM.Directions = function (map) { var engines = OSM.Directions.engines; engines.sort(function (a, b) { - a = I18n.t("javascripts.directions.engines." + a.id); - b = I18n.t("javascripts.directions.engines." + b.id); - return a.localeCompare(b); + var localised_a = I18n.t("javascripts.directions.engines." + a.id), + localised_b = I18n.t("javascripts.directions.engines." + b.id); + return localised_a.localeCompare(localised_b); }); var select = $("select.routing_engines"); @@ -102,7 +105,9 @@ OSM.Directions = function (map) { endpoint.awaitingGeocode = true; - $.getJSON(OSM.NOMINATIM_URL + "search?q=" + encodeURIComponent(endpoint.value) + "&format=json", function (json) { + var viewbox = map.getBounds().toBBoxString(); // ,,, + + $.getJSON(OSM.NOMINATIM_URL + "search?q=" + encodeURIComponent(endpoint.value) + "&format=json&viewbox=" + viewbox, function (json) { endpoint.awaitingGeocode = false; endpoint.hasGeocode = true; if (json.length === 0) { @@ -260,11 +265,11 @@ OSM.Directions = function (map) { // Add each row route.steps.forEach(function (step) { - var ll = step[0], - direction = step[1], - instruction = step[2], - dist = step[3], - lineseg = step[4]; + var ll = step[0], + direction = step[1], + instruction = step[2], + dist = step[3], + lineseg = step[4]; if (dist < 5) { dist = ""; @@ -360,7 +365,7 @@ OSM.Directions = function (map) { var oe = e.originalEvent; var dragData = JSON.parse(oe.dataTransfer.getData("text")); var type = dragData.type; - var pt = L.DomEvent.getMousePosition(oe, map.getContainer()); // co-ordinates of the mouse pointer at present + var pt = L.DomEvent.getMousePosition(oe, map.getContainer()); // co-ordinates of the mouse pointer at present pt.y += 20; var ll = map.containerPointToLatLng(pt); endpoints[type === "from" ? 0 : 1].setLatLng(ll);