美文网首页
cesium 添加ployline方法

cesium 添加ployline方法

作者: 宿州刘德华 | 来源:发表于2019-03-26 17:19 被阅读0次
//添加polyline
function addPolyLine(){
    //初始化
    var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
    var positions = [];
    var poly = undefined;

    //封装polyline对象
    var PolyLinePrimitive = (function(){
        function _(positions){
            this.options = {
                polyline : {
                    show : true,
                    positions : [],
                    material : Cesium.Color.CORNFLOWERBLUE,
                    width : 5
                }
            };
            this.positions = positions;
            this._init();
        }
    
        _.prototype._init = function(){
            var _self = this;
            var _update = function(){
                return _self.positions;
            };
            //实时更新polyline.positions
            this.options.polyline.positions = new Cesium.CallbackProperty(_update,false);
            viewer.entities.add(this.options);
        };
    
        return _;
    })();

    handler.setInputAction(function(movement){
        var cartesian = scene.camera.pickEllipsoid(movement.position,scene.globe.ellipsoid);
        if(positions.length == 0) {
            positions.push(cartesian.clone());
        }
        positions.push(cartesian);
    },Cesium.ScreenSpaceEventType.LEFT_CLICK);
    
    handler.setInputAction(function(movement){
        var cartesian = scene.camera.pickEllipsoid(movement.endPosition,scene.globe.ellipsoid);
        if(positions.length >= 2){
            if (!Cesium.defined(poly)) {
                poly = new PolyLinePrimitive(positions);
            }else{
                positions.pop();
                cartesian.y += (1 + Math.random());
                positions.push(cartesian);
            }
        }
    },Cesium.ScreenSpaceEventType.MOUSE_MOVE);
    
    handler.setInputAction(function(movement){
        handler.destroy();
    },Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);

}

相关文章

网友评论

      本文标题:cesium 添加ployline方法

      本文链接:https://www.haomeiwen.com/subject/sidnvqtx.html