Как получить координаты мыши, хранящиеся в переменной в открытых слоях? - PullRequest
0 голосов
/ 01 июля 2018

У меня есть код, который отображает положение мыши вне карты в открытых слоях! что если я захочу сохранить эти координаты при вызове событий мыши js onmousedown и onmouseup?

У меня есть следующий код:

const mousePositionControl = new MousePosition({
    coordinateFormat: createStringXY(4),
    projection: 'EPSG:4326',
    className: 'custom-mouse-position',
    target: document.getElementById('mouse-position'),
    undefinedHTML: ' '
});

const map = new Map({
    controls: defaultControls({
        attributionOptions: {
            collapsible: false
        }
    }).extend([mousePositionControl]),
    layers: [
        new TileLayer({
            source: new OSM()
        })
    ],
    target: 'map',
    view: new View({
        center: [0, 0],
        zoom: 2
    })
});

1 Ответ

0 голосов
/ 02 июля 2018

Я вижу два простых способа сделать это.

Во-первых, просто прослушайте вашу карту OpenLayers 'click' (или singleclick) событие. Затем вы можете получить координаты курсора следующим образом:

myMap.on('click', function(evt){
    // Get the pointer coordinate
    let coordinate = ol.proj.transform(evt.coordinate);
}

Во-вторых, отслеживайте координаты указателя при каждом его перемещении на карте, используя событие 'pointermove' , затем просто читайте их, когда хотите:

let coord = [];

// We track coordinate change each time the mouse is moved
myMap.on('pointermove', function(evt){
    coord = evt.coordinate;
}

// Anytime you want, simply read the tracked coordinate
document.addEventListener('mousedown', function(){
    console.log(coord);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...