Как включить перетаскивание карты в Leaflet только при нажатой клавише пробела? - PullRequest
0 голосов
/ 25 декабря 2018

Поведение карт листовок по умолчанию состоит в том, чтобы перетаскивать вид с помощью только мыши.Я бы хотел включить перетаскивание мышью, только если нажата пробел.Мне нужно перетаскивать мышью без пробела, чтобы сделать что-то еще, а не перетащить вид.Я хочу выбрать объекты с ним, как на рабочем столе Windows, где вы можете выбирать файлы с помощью перетаскивания мышью.

Я хотел бы получить некоторую помощь о том, как я могу добиться этого поведения:)

1 Ответ

0 голосов
/ 25 декабря 2018

Этот пример можно перетаскивать при нажатии пробела.Для перетаскивания мышью, вам нужно настроить их библиотеку.Или напишите какой-нибудь скрипт для изменения события перетаскивания мышью.Надеюсь, это поможет.

// Initialize leaflet map
var map = L.map('map').setView([40.7128, -74.0060], 7);
var googleTile = L.tileLayer('http://{s}.google.com/vt/lyrs=s,h&x={x}&y={y}&z={z}',{
   maxZoom: 20,
   subdomains:['mt0','mt1','mt2','mt3'],
   attribution: ''
}).addTo(map);
// Disable map dragging event (default)
map.dragging.disable();
// Keydown and keyup event
document.body.onkeydown = function(e){
    if(e.keyCode == 32){
        map.dragging.enable();
    }
}
document.body.onkeyup = function(e){
    if(e.keyCode == 32){
        map.dragging.disable();
    }
}
#map { width: 300px; height: 150px; }
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"></script>
<strong>Press your 'spacebar' key to drag</strong>
<div id="map"></div>
...