]> git.openstreetmap.org Git - rails.git/commitdiff
Enable exporting direction paths
authorMarwin Hochfelsner <50826859+hlfan@users.noreply.github.com>
Sun, 16 Feb 2025 16:08:37 +0000 (17:08 +0100)
committerMarwin Hochfelsner <50826859+hlfan@users.noreply.github.com>
Mon, 17 Feb 2025 10:39:36 +0000 (11:39 +0100)
app/assets/javascripts/index/directions.js
config/locales/en.yml

index 2338f537f581224b3e141636e83b662857de8236..c472108ae105167de7430db26a3face52021708a 100644 (file)
@@ -36,6 +36,8 @@ OSM.Directions = function (map) {
     OSM.DirectionsEndpoint(map, $("input[name='route_to']"), OSM.MARKER_RED, endpointDragCallback, endpointChangeCallback)
   ];
 
+  let downloadURL = null;
+
   const expiry = new Date();
   expiry.setYear(expiry.getFullYear() + 10);
 
@@ -189,6 +191,16 @@ OSM.Directions = function (map) {
         turnByTurnTable.append(row);
       });
 
+      const blob = new Blob([JSON.stringify(polyline.toGeoJSON())], { type: "application/json" });
+      URL.revokeObjectURL(downloadURL);
+      downloadURL = URL.createObjectURL(blob);
+
+      $("#sidebar_content").append(`<p class="text-center"><a href="${downloadURL}" download="${
+        I18n.t("javascripts.directions.filename")
+      }">${
+        I18n.t("javascripts.directions.download")
+      }</a></p>`);
+
       $("#sidebar_content").append("<p class=\"text-center\">" +
         I18n.t("javascripts.directions.instructions.courtesy", { link: chosenEngine.creditline }) +
         "</p>");
index 42669ca9e3f5ba19ac77998c7cc3b0130dc7aa0f..73854320b155346a173b8e49d59bd3bbdc288775 100644 (file)
@@ -3312,6 +3312,8 @@ en:
           ninth: "9th"
           tenth: "10th"
       time: "Time"
+      download: "Download track as GeoJSON"
+      filename: "route"
     query:
       node: Node
       way: Way