arcgis 4.x 如何给graphic绑定鼠标浮动事件 mouseout 和 mouseover
// 监听几何响应鼠标事件
var viewMouseover = [];
view.on("pointer-move", (event)=>{
view.hitTest(event).then(function(response) {
for( var i = 0; i < viewMouseover.length; i++ ){
var graphic = viewMouseover[i];
if( response.results.map((e)=>{ return e.graphic }).indexOf(graphic) === -1 ){
if( graphic.cursor ) {
document.body.style.cursor = "";
}
graphic.mouseout && graphic.mouseout(graphic,event,response,view)
viewMouseover.splice(i,1);
i--;
}
}
response.results.map((e)=>{ return e.graphic }).forEach((graphic,i)=>{
if( i === 0 && graphic.cursor ) {
document.body.style.cursor = graphic.cursor;
}
if( viewMouseover.indexOf(graphic) === -1 ){
viewMouseover.push(graphic);
graphic.mouseover && graphic.mouseover(graphic,event,response,view)
}
})
});
});
这样的话 只需要给
graphic.mouseover = function(){}
graphic.mouseout = function(){}
就可以绑定上这2个事件了
当然 其余的还有很多
view.on('mouse-wheel', (event)=>{
// 获取摄像头位置
var position = this.view.camera.position;
// return;
if( position.z < 300 ){
view.hitTest(event).then((response)=>{
if(response.results[0]){
var graphic = response.results[0].graphic;
graphic.wheelGo && graphic.wheelGo(graphic,event,response)
}
})
return;
}
}, false)
view.on("click",(event)=>{
console.log(event.mapPoint);
view.hitTest(event).then((response)=>{
if(response.results[0]){
var graphic = response.results[0].graphic;
graphic.click && graphic.click(graphic,event,response,view);
}
})
})
view.on("double-click",(event)=>{
console.log(event.mapPoint);
view.hitTest(event).then((response)=>{
if(response.results[0]){
var graphic = response.results[0].graphic;
graphic.dbclick && graphic.dbclick(graphic,event,response,view);
}
})
})

浙公网安备 33010602011771号