editor: Add reverse backwards drawing mode and improve the reset handler
This commit is contained in:
parent
8ca10033f9
commit
ab2e50f851
@ -1,6 +1,7 @@
|
||||
const queryString = window.location.search;
|
||||
const urlParams = new URLSearchParams(queryString);
|
||||
editor_mode = urlParams.has('editor');
|
||||
|
||||
if (editor_mode) {
|
||||
var draw_layer;
|
||||
var polyline;
|
||||
@ -13,13 +14,21 @@ if (editor_mode) {
|
||||
return latlng;
|
||||
}
|
||||
|
||||
function start_editing(e) {
|
||||
function start_editing(dir = 1) {
|
||||
// TODO: Check whether we already are in edit mode
|
||||
// TODO: Detect whether we are cloner to the tail or the head, and issue Fwd or Bwd accordingly
|
||||
if (polyline)
|
||||
polyline.editor.continueForward();
|
||||
else
|
||||
if (polyline) {
|
||||
if (dir)
|
||||
polyline.editor.continueForward();
|
||||
else
|
||||
polyline.editor.continueBackward();
|
||||
} else {
|
||||
polyline = mymap.editTools.startPolyline();
|
||||
}
|
||||
}
|
||||
|
||||
function start_reverse_editing() {
|
||||
start_editing(0);
|
||||
}
|
||||
|
||||
function strToPoints(str) {
|
||||
@ -41,10 +50,6 @@ if (editor_mode) {
|
||||
}
|
||||
|
||||
function onLoad(interactive = 1) {
|
||||
if (polyline) {
|
||||
polyline.remove(mymap);
|
||||
polyline = undefined;
|
||||
}
|
||||
if (interactive) {
|
||||
str = prompt("Instructions: \n" +
|
||||
"* Click the scribble-icon in the top left to start or continue drawing.\n" +
|
||||
@ -52,10 +57,17 @@ if (editor_mode) {
|
||||
"* Double click a waypoint to delete it.\n" +
|
||||
"* Click save in the top right to get the new string.\n\n" +
|
||||
"Enter existing waypoints in the following format: [x,y],[x,y]:", window.location.hash.slice(1));
|
||||
if (!str)
|
||||
return;
|
||||
} else {
|
||||
str = window.location.hash.slice(1);
|
||||
}
|
||||
|
||||
if (polyline) {
|
||||
polyline.remove(mymap);
|
||||
polyline = undefined;
|
||||
}
|
||||
|
||||
if (str) {
|
||||
coords = strToPoints(str);
|
||||
for (var i = 0; i < coords.length; i++) {
|
||||
@ -97,7 +109,7 @@ if (editor_mode) {
|
||||
}
|
||||
|
||||
function show_location_string(e) {
|
||||
prompt("Copy this string back into the Wiki and wait for a few hours:", get_location_string());
|
||||
prompt("Copy this string back into the Wiki and wait for the server to refresh the maps:", get_location_string());
|
||||
}
|
||||
|
||||
function reset_path(e) {
|
||||
@ -131,7 +143,7 @@ if (editor_mode) {
|
||||
position: 'topleft',
|
||||
callback: reset_path,
|
||||
title: 'Enter path coordinates',
|
||||
html: '↺'
|
||||
html: '📂'
|
||||
}
|
||||
});
|
||||
|
||||
@ -139,11 +151,20 @@ if (editor_mode) {
|
||||
options: {
|
||||
position: 'topleft',
|
||||
callback: start_editing,
|
||||
title: 'Start editing',
|
||||
title: 'Start editing (forward)',
|
||||
html: '\\/\\'
|
||||
}
|
||||
});
|
||||
|
||||
L.StartReverseEditControl = L.EditControl.extend({
|
||||
options: {
|
||||
position: 'topleft',
|
||||
callback: start_reverse_editing,
|
||||
title: 'Start editing (backward)',
|
||||
html: '↺'
|
||||
}
|
||||
});
|
||||
|
||||
L.NewLineControl = L.EditControl.extend({
|
||||
options: {
|
||||
position: 'topleft',
|
||||
@ -156,6 +177,7 @@ if (editor_mode) {
|
||||
mymap.addControl(new L.NewLineControl());
|
||||
mymap.addControl(new L.ResetPathControl());
|
||||
mymap.addControl(new L.StartEditControl());
|
||||
mymap.addControl(new L.StartReverseEditControl());
|
||||
|
||||
onLoad();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user