X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/eb7678145a87c1b9e3cd7ff2d3b5dc08132e4b51..bf9dd8f350ca1b54afb79dda79506d980ccb5738:/app/assets/javascripts/index/directions.js
diff --git a/app/assets/javascripts/index/directions.js b/app/assets/javascripts/index/directions.js
index 28d436a96..5f9027ec6 100644
--- a/app/assets/javascripts/index/directions.js
+++ b/app/assets/javascripts/index/directions.js
@@ -1,12 +1,15 @@
//= 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]});
+ var popup = L.popup({ autoPanPadding: [100, 100] });
var polyline = L.polyline([], {
color: "#03f",
@@ -31,14 +34,14 @@ 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");
- engines.forEach(function(engine, i) {
+ engines.forEach(function (engine, i) {
select.append("");
});
@@ -68,7 +71,7 @@ OSM.Directions = function (map) {
}
});
- input.on("keydown", function() {
+ input.on("keydown", function () {
input.removeClass("error");
});
@@ -80,7 +83,7 @@ OSM.Directions = function (map) {
endpoint.setValue(value);
});
- endpoint.setValue = function(value, latlng) {
+ endpoint.setValue = function (value, latlng) {
endpoint.value = value;
delete endpoint.latlng;
input.removeClass("error");
@@ -93,7 +96,7 @@ OSM.Directions = function (map) {
}
};
- endpoint.getGeocode = function() {
+ endpoint.getGeocode = function () {
// if no one has entered a value yet, then we can't geocode, so don't
// even try.
if (!endpoint.value) {
@@ -102,12 +105,14 @@ 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(); //
" +
I18n.t("javascripts.directions.ascend") + ": " + Math.round(route.ascend) + "m. " +
- I18n.t("javascripts.directions.descend") + ": " + Math.round(route.descend) +"m.";
+ I18n.t("javascripts.directions.descend") + ": " + Math.round(route.descend) + "m.";
}
html += "
" + - I18n.t("javascripts.directions.instructions.courtesy", {link: chosenEngine.creditline}) + + I18n.t("javascripts.directions.instructions.courtesy", { link: chosenEngine.creditline }) + "
"); - $("#sidebar_content a.geolink").on("click", function(e) { + $("#sidebar_content a.geolink").on("click", function (e) { e.preventDefault(); map.removeLayer(polyline); $("#sidebar_content").html(""); @@ -329,7 +342,7 @@ OSM.Directions = function (map) { } }); - $(".directions_form").on("submit", function(e) { + $(".directions_form").on("submit", function (e) { e.preventDefault(); getRoute(true, true); }); @@ -347,7 +360,7 @@ OSM.Directions = function (map) { var page = {}; - page.pushstate = page.popstate = function() { + page.pushstate = page.popstate = function () { $(".search_form").hide(); $(".directions_form").show(); @@ -360,7 +373,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); @@ -388,11 +401,11 @@ OSM.Directions = function (map) { getRoute(true, true); }; - page.load = function() { + page.load = function () { page.pushstate(); }; - page.unload = function() { + page.unload = function () { $(".search_form").show(); $(".directions_form").hide(); $("#map").off("dragend dragover drop");