首页 / 浏览问题 / WebGIS / 问题详情
webgl通过鼠标拖拽移动小品位置
11EXP 2020年11月23日
webgl添加小品后,通过鼠标拖拽移动小品位置

1个回答

选中小品时监听鼠标移动,实时获取当前鼠标坐标值changePosition,通过viewer.selectedEntity.primitive.updatePosition(changePosition)跟新小品位置
6,087EXP 2020年11月23日
请问‘实时获取当前鼠标坐标值changePosition’是怎么获取啊?
var canvas=viewer.scene.canvas;
var ellipsoid=viewer.scene.globe.ellipsoid;
var handler = new Cesium.ScreenSpaceEventHandler(canvas);
handler.setInputAction(function(movement){
       
             var cartesian=viewer.camera.pickEllipsoid(movement.endPosition, ellipsoid);
              if(cartesian){
                   var cartographic=viewer.scene.globe.ellipsoid.cartesianToCartographic(cartesian);
                   //将地图坐标(弧度)转为十进制的度数
                    var lat_String=Cesium.Math.toDegrees(cartographic.latitude).toFixed(4); //经
                    var log_String=Cesium.Math.toDegrees(cartographic.longitude).toFixed(4);//纬
                    var alti_String=(viewer.camera.positionCartographic.height/1000).toFixed(2);//高
                    console.log(lat_String,log_String,alti_String)
                
               }
        },Cesium.ScreenSpaceEventType.MOUSE_MOVE);
请问是这样传值吗?或者有没有相关文档,谢谢viewer.selectedEntity.primitive.updatePosition(lat_String,log_String,alti_String)
请问得到经纬度高度值后,怎么更新移动小品位置啊,谢谢了

实时调用viewer.selectedEntity.primitive.updatePosition(),传入position,具体传值参考API:http://support.supermap.com.cn:8090/webgl/web/apis/3dwebgl.html

这个文档里面没有找到相关的方法呢
...