首页 文章

从Cesium-DrawHelper形状创建的事件中获取错误的坐标

提问于
浏览
1

我在GWT(地形的Cesium Terrain Server)上使用带有drawHelper插件的cesium . 我正在绘制形状(标记,折线,多边形..)到我的3D Map . 我可以用鼠标指向的精确坐标绘制地形,但是当我改变相机外观的角度时,我无法绘制鼠标指向的形状,因为我的坐标错误,导致我的形状在错误的坐标上绘制 . (我从DrawHelpers形状创建事件获取坐标,例如'markerCreated'返回位置)

1 回答

  • 2

    我通过编辑DrawHelper.js解决了我的问题,它通过scene.camera.pickEllipsoid函数得到了位置,我通过globe.pick创建了一个光线和拾取位置来改变它 . 代码:

    var cartesian = scene.camera.pickEllipsoid(movement.position,ellipsoid)
    

    替换为

    var ray = scene.camera.getPickRay(movement.position);
    var pickedPosition = scene.globe.pick(ray,scene);
    if(pickedPosition){
    markers.addBillBoard(pickedPosition);
    _self.stopDrawing();
    options.callback(pickedPosition);
    

    将地形上的标记添加到从这样固定的鼠标指向的坐标上...

相关问题