如何获取鼠标坐标存储在开放层中的变量中?

时间:2018-07-01 20:55:56

标签: javascript openlayers

我有一个代码,可在openlayers中将鼠标位置显示在地图之外! 如果我想在调用js鼠标事件onmousedown和onmouseup时保存这些坐标怎么办?

我有以下代码:

Throw New IndexOutOfRangeException("Index out of range!")

2 个答案:

答案 0 :(得分:0)

我看到了两种简单的方法。

第一个,只需监听您的OpenLayers Map 'click'(或单击)事件。 然后,您可以获取光标坐标,如下所示:

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);
});

答案 1 :(得分:0)

    state={
    mouePos:[1,2]
    }

this.state.map.on('pointermove', (evt)=>{
         this.setState({mousePos:[evt.coordinate[0],evt.coordinate[1]]},()=>{
         console.log(evt.coordinate)
        })  
            })

我认为你可以使用 mousePos 状态作为存储