Skip to content

Instantly share code, notes, and snippets.

@zephjc
Last active August 29, 2015 14:12
Show Gist options
  • Save zephjc/72f699d67a99418a39b3 to your computer and use it in GitHub Desktop.
Save zephjc/72f699d67a99418a39b3 to your computer and use it in GitHub Desktop.
$(document).ready(function() {
$(document).keyup(function(event) {
// check if we're in any sort of text-entry or other modal context
if ($('.sm_alert').css('display') == 'block')
return;
if ($('.sm_markerPanel').css('display') == 'block')
return;
if ($('input,textarea').is(':focus'))
return
// we're good!
//var FCC = String.fromCharCode;
var KEY_UP = 38,
KEY_DOWN = 40,
KEY_LEFT = 37,
KEY_RIGHT = 39,
ZOOM_OUT = 189,
ZOOM_IN = 187;
var TCC = function(x) {return x.charCodeAt(0);}
var moveMapBy = function(x, y) {
var OFFSET = 50;
var pos = sm.view.getCenter();
var point = sm.view.latLngToPixel([pos.lat, pos.lng]);
var new_point = {x: point.x + (x * OFFSET),
y: point.y + (y * OFFSET)};
var newpos = sm.view.pixelToLatLng(new_point.x, new_point.y);
sm.view.setCenter(newpos);
};
switch (event.which) {
case KEY_UP:
moveMapBy(0, -1);
break;
case KEY_DOWN:
moveMapBy(0, 1);
break;
case KEY_LEFT:
moveMapBy(-1, 0);
break;
case KEY_RIGHT:
moveMapBy(1, 0);
break;
case TCC('V'):
sm.ui.setTool('edit');
break;
case TCC('E'):
sm.ui.setTool('eraser');
break;
case TCC('G'):
sm.ui.setTool('fill');
break;
case TCC('B'):
sm.ui.setTool('scribble');
break;
case TCC('P'):
if (sm.ui.getCurrentTool() == 'line')
sm.ui.setTool('flightLine');
else
sm.ui.setTool('line');
break;
case TCC('U'):
if (sm.ui.getCurrentTool() == 'rectangle')
sm.ui.setTool('circle');
else if (sm.ui.getCurrentTool() == 'circle' ||
sm.ui.getCurrentTool() == 'line')
sm.ui.setTool('polygon');
else
sm.ui.setTool('rectangle');
break;
case TCC('T'):
sm.ui.setTool('label');
break;
case TCC('M'):
sm.ui.setTool('marker');
break;
case TCC('I'):
sm.ui.setTool('image');
break;
// map zoom controls
case ZOOM_IN:
sm.view.setZoom(sm.view.getZoom()+1);
break;
case ZOOM_OUT:
sm.view.setZoom(sm.view.getZoom()-1);
break;
default:
break;
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment