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

时间:2015-11-04 07:33:52

标签: terrain cesium

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

1 个答案:

答案 0 :(得分: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);

在地形上添加标记到指向鼠标的坐标,如此...