cesium's mouse event ScreenSpaceEventHandler screen space event handler

QQ exchange group: 607330463 The strongest exchange group of GIS development technology. Reprinting is prohibited without permission. You can refer to

 

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

Created a screen control instance to control cesium's canvas

#Call setInputAction, it can be seen from the English that this is set input action

handler.setInputAction(function(x){y}, event type ScreenSpaceEventType );

Note here: movement is movement, the position of the end of the movement is movement.endPosition; click is click, and the position of click is click.position

The core code is as follows, the upper and lower logic will not be posted.

 

//鼠标移动的事件
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 
//鼠标左键点击事件
handler.setInputAction(function(click){
    var click_position =  viewer.camera.pickEllipsoid(click.position,my_ellipsoid);//click换成movement也可实现,但是position不是endposition
    var carto_position = Cesium.Cartographic.fromCartesian(click_position);
    //var carto_position = my_ellipsoid.cartesianToCartographic(click_position);
    var longitude_x = Cesium.Math.toDegrees(carto_position.longitude).toFixed(3);
    var longitude_y = Cesium.Math.toDegrees(carto_position.latitude).toFixed(3);
    topDdv.innerHTML="点击坐标的位置为"+longitude_x+"经度,"+longitude_y+"纬度";},Cesium.ScreenSpaceEventType.LEFT_CLICK)

 

Guess you like

Origin blog.csdn.net/qq_30430463/article/details/114134274