[draw-tools] Fire native drawtools events in import/reset/snap; smaller bugfixes
This commit is contained in:
parent
b1e1258a28
commit
1f8f536040
@ -304,11 +304,14 @@ window.plugin.drawTools.import = function(data) {
|
||||
}
|
||||
if (layer) {
|
||||
window.plugin.drawTools.drawnItems.addLayer(layer);
|
||||
map.fireEvent('draw:created', { // will trigger 'layerCreated'
|
||||
layer: layer,
|
||||
layerType: item.type
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
runHooks('pluginDrawTools', {event: 'import'});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -386,7 +389,7 @@ window.plugin.drawTools.optPaste = function() {
|
||||
var data = JSON.parse(promptAction);
|
||||
window.plugin.drawTools.drawnItems.clearLayers();
|
||||
window.plugin.drawTools.import(data);
|
||||
console.log('DRAWTOOLS: reset and imported drawn tiems');
|
||||
console.log('DRAWTOOLS: reset and pasted drawn items');
|
||||
window.plugin.drawTools.optAlert('Import Successful.');
|
||||
|
||||
// to write back the data to localStorage
|
||||
@ -418,8 +421,10 @@ window.plugin.drawTools.optImport = function() {
|
||||
}
|
||||
|
||||
window.plugin.drawTools.optReset = function() {
|
||||
var promptAction = confirm('All drawn items will be deleted. Are you sure?', '');
|
||||
if(promptAction) {
|
||||
if(!confirm('All drawn items will be deleted. Are you sure?', '')) return;
|
||||
|
||||
map.fireEvent('draw:deleted', {layers: L.layerGroup(window.plugin.drawTools.drawnItems.getLayers())});
|
||||
|
||||
delete localStorage['plugin-draw-tools-layer'];
|
||||
window.plugin.drawTools.drawnItems.clearLayers();
|
||||
window.plugin.drawTools.load();
|
||||
@ -427,7 +432,6 @@ window.plugin.drawTools.optReset = function() {
|
||||
window.plugin.drawTools.optAlert('Reset Successful. ');
|
||||
runHooks('pluginDrawTools', {event: 'clear'});
|
||||
}
|
||||
}
|
||||
|
||||
window.plugin.drawTools.snapToPortals = function() {
|
||||
var dataParams = getMapZoomTileParameters(getDataZoomForMapZoom(map.getZoom()));
|
||||
@ -477,6 +481,7 @@ window.plugin.drawTools.snapToPortals = function() {
|
||||
};
|
||||
|
||||
|
||||
var changedLayers = L.layerGroup();
|
||||
var changedCount = 0;
|
||||
var testCount = 0;
|
||||
|
||||
@ -488,8 +493,9 @@ window.plugin.drawTools.snapToPortals = function() {
|
||||
testCount++;
|
||||
var newll = findClosestPortalLatLng(ll);
|
||||
if (!newll.equals(ll)) {
|
||||
layer.setLatLng(newll);
|
||||
layer.setLatLng(newll.wrap()); // create a copy
|
||||
changedCount++;
|
||||
changedLayers.addLayer(layer);
|
||||
}
|
||||
}
|
||||
} else if (layer.getLatLngs) {
|
||||
@ -500,7 +506,7 @@ window.plugin.drawTools.snapToPortals = function() {
|
||||
testCount++;
|
||||
var newll = findClosestPortalLatLng(lls[i]);
|
||||
if (!newll.equals(lls[i])) {
|
||||
lls[i] = newll;
|
||||
lls[i] = newll.wrap(); // create a copy
|
||||
changedCount++;
|
||||
layerChanged = true;
|
||||
}
|
||||
@ -508,17 +514,16 @@ window.plugin.drawTools.snapToPortals = function() {
|
||||
}
|
||||
if (layerChanged) {
|
||||
layer.setLatLngs(lls);
|
||||
changedLayers.addLayer(layer);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if(changedCount > 0) {
|
||||
runHooks('pluginDrawTools',{event:'layersSnappedToPortals'}); //or should we send 'layersEdited'? as that's effectively what's happened...
|
||||
map.fireEvent('draw:edited', {layers: changedLayers}); // will trigger 'layersEdited'
|
||||
}
|
||||
|
||||
alert('Tested '+testCount+' points, and moved '+changedCount+' onto portal coordinates');
|
||||
|
||||
window.plugin.drawTools.save();
|
||||
}
|
||||
|
||||
window.plugin.drawTools.boot = function() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user