javascript - catch shift-click events in ol.interaction.Draw Open Layers -


i'm trying use ol.interaction.draw add polygons openlayers map. have snap interaction on, , set turn off while i'm holding down shift.

const   snapinteraction = new ol.interaction.snap({     source: drawlayer.getsource()   }),   turnonsnap = (evt) => {     if (!isshiftkey(evt)) {       return;     }     console.log('shift key down, turning off snap');     snapinteraction.setactive(false);   },   turnoffsnap = (evt) => {     if (!isshiftkey(evt)) {       return;     }     console.log('shift key up, turning on snap');     snapinteraction.setactive(true);   };  document.addeventlistener('keydown', turnonsnap); document.addeventlistener('keyup', turnoffsnap); 

this works disable snapping. however, draw interaction doesn't work when hold down shift. know condition parameter defaults ol.events.condition.nomodifierkeys, when make custom condition never gets hit!

const drawinteraction = new ol.interaction.draw({   source: drawlayer.getsource(),   type: 'polygon',   condition: function (evt) {     console.log("yo, why isn't hit when hold down shift?", evt);     return (ol.events.condition.nomodifierkeys(evt) ||       ol.events.condition.shiftkeyonly(evt));   } }); 

why drawinteraction ignoring shift+click events?

the default freehandcondition catching shift+click events, never evaluated condition. change else, , shift+click events hit custom condition function.

const drawinteraction = new ol.interaction.draw({   source: drawlayer.getsource(),   type: 'polygon',   condition: function (evt) {     return (ol.events.condition.nomodifierkeys(evt) ||       ol.events.condition.shiftkeyonly(evt));   },   freehandcondition: ol.events.condition.never, // <-- add line }); 

Comments

Popular posts from this blog

PHP and MySQL WP -

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

go - golang pprof for c library code -