Add editor mode for polygons

This commit is contained in:
Markus Koch 2020-04-20 18:51:10 +02:00
parent ae47583e2d
commit 3cb3078820

View File

@ -3,6 +3,8 @@ const urlParams = new URLSearchParams(queryString);
editor_mode = urlParams.has('editor'); editor_mode = urlParams.has('editor');
if (editor_mode) { if (editor_mode) {
var editor_mode_polygon = urlParams.has('polygon');
var draw_layer; var draw_layer;
var polyline; var polyline;
@ -23,7 +25,10 @@ if (editor_mode) {
else else
polyline.editor.continueBackward(); polyline.editor.continueBackward();
} else { } else {
polyline = mymap.editTools.startPolyline(); if (editor_mode_polygon)
polyline = mymap.editTools.startPolygon();
else
polyline = mymap.editTools.startPolyline();
} }
} }
@ -73,7 +78,10 @@ if (editor_mode) {
for (var i = 0; i < coords.length; i++) { for (var i = 0; i < coords.length; i++) {
coords[i] = [coords[i][1], coords[i][0]]; coords[i] = [coords[i][1], coords[i][0]];
} }
polyline = L.polyline(coords).addTo(mymap); if (editor_mode_polygon)
polyline = L.polygon([coords]).addTo(mymap);
else
polyline = L.polyline(coords).addTo(mymap);
// polyline.on('dragend', onDragEnd); // TODO: Doesn't work, see "workaround" below // polyline.on('dragend', onDragEnd); // TODO: Doesn't work, see "workaround" below
polyline.enableEdit(); polyline.enableEdit();
if (interactive) { if (interactive) {
@ -98,7 +106,11 @@ if (editor_mode) {
mymap.off('click', onMapClick); mymap.off('click', onMapClick);
function get_location_string() { function get_location_string() {
var latlngs = polyline.getLatLngs(); var latlngs;
if (editor_mode_polygon)
latlngs = polyline.getLatLngs()[0];
else
latlngs = polyline.getLatLngs();
var str = ""; var str = "";
for (var i = 0; i < latlngs.length; i++) { for (var i = 0; i < latlngs.length; i++) {