Обычно я делаю это, делая карту div фокусируемой, добавляя к ней tabindex="0"
. Это добавляет его в естественный порядок вкладок браузера. Затем я добавляю прослушиватель событий для keyup
с переключателем, который вызывает map.panBy или map.setZoom в зависимости от нажатой клавиши. Вот пример jQuery, но то же самое можно сделать с google.maps.event.addListener(map, 'keyup', function() {...etc.});
. jQuery делает событие. которое кросс-браузер для вас, поэтому код проще.
$('#map').keyup(function(event) {
var o = 128; // half a tile's width
switch(event.which) {
case 37: // leftArrow
map.panBy(-o,0);
break;
case 38: // upArrow
map.panBy(0,-o);
break;
case 39: // rightArrow
map.panBy(o,0);
break;
case 40: // downArrow
map.panBy(0,o);
break;
case 109: // numpad -
case 189: // -
map.setZoom(map.getZoom()-1);
break;
case 107: // numpad +
case 187: // =
map.setZoom(map.getZoom()+1);
break;
}
});