cesium的鼠标事件(最基础的显示鼠标位置坐标)

纵饮孤独 提交于 2019-12-02 09:21:07

一、cesium屏幕空间事件控制者接口:ScreenSpaceEventHandler(参数canvas)

#var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);

创建了一个屏幕控制,控制cesium的canvas

#调用setInputAction,从英文上就能看出这是设置输入行为

handler.setInputAction(function(x){y},事件类型ScreenSpaceEventType );

这里注意:移动是movement,移动终点的位置是movement.endPosition;点击是click,点击的位置是click.position

//鼠标移动的事件
handler.setInputAction(function(movement){  //获取鼠标位置,camera.pickEllipsoid()返回一个cartesian类型位置
    let click_position =  viewer.scene.camera.pickEllipsoid(movement.endPosition,my_ellipsoid);  //位置数据转换只地理数据类型
    let carto_position = my_ellipsoid.cartesianToCartographic(click_position);
  //cesium函数转换至地理数据类型的经纬度      let longitude_x = Cesium.Math.toDegrees(carto_position.longitude);
    let longitude_y = Cesium.Math.toDegrees(carto_position.latitude);
    //topDiv是html中的div  topDiv.innerHTML="点击坐标的位置为"+longitude_x+"经度,"+longitude_y+"纬度";
},Cesium.ScreenSpaceEventType.MOUSE_MOVE)//ScreenSpaceEventType 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!