首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cesium.PolylineGeometry不工作。Cesium.SimplePolylineGeometry做的

Cesium.PolylineGeometry不工作。Cesium.SimplePolylineGeometry做的
EN

Stack Overflow用户
提问于 2016-06-01 14:56:47
回答 1查看 378关注 0票数 2

我以这样的方式创建Cesium.Primitive:

代码语言:javascript
复制
    _createPrimitive: function (linesNumber) {
        var instances = [];
        for (var i = 0; i < linesNumber; i++) {
            var lon = _.random(-90, 90);
            var lat = _.random(-180, 180);
            var polyline = new Cesium.SimplePolylineGeometry({
                positions: Cesium.Cartesian3.fromDegreesArrayHeights([
                    lat, lon, 0,
                    lat, lon, 2000000])
            });
            var geometry = Cesium.SimplePolylineGeometry.createGeometry(polyline);
            instances.push(new Cesium.GeometryInstance({
                geometry: geometry,
                attributes: {
                    color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.fromRandom({alpha: 1}))
                }
            }));
        }
        return new Cesium.Primitive({
            geometryInstances: instances,
            appearance: new Cesium.PerInstanceColorAppearance()
        });
    },

然后再添加到场景中:

scene.primitives.add(this._createPrimitive(20000));

它如预期的那样工作。我想改变polyline的宽度。我将Cesium.SimplePolylineGeometry更改为Cesium.PolylineGeometry,并在Cesium.PolylineGeometry构造函数调用中添加width param:

代码语言:javascript
复制
    _createPrimitive: function (linesNumber) {
        var instances = [];
        for (var i = 0; i < linesNumber; i++) {
            var lon = _.random(-90, 90);
            var lat = _.random(-180, 180);
            var polyline = new Cesium.PolylineGeometry({
                positions: Cesium.Cartesian3.fromDegreesArrayHeights([
                    lat, lon, 0,
                    lat, lon, 2000000]),
                width: 4
            });
            var geometry = Cesium.PolylineGeometry.createGeometry(polyline);
            instances.push(new Cesium.GeometryInstance({
                geometry: geometry,
                attributes: {
                    color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.fromRandom({alpha: 1}))
                }
            }));
        }
        return new Cesium.Primitive({
            geometryInstances: instances,
            appearance: new Cesium.PerInstanceColorAppearance()
        });
    },

地球是空的!我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-02 08:50:17

问题是,我使用了不适当的appearanceCesium.PolylineColorAppearance,例如,工作得很好:

代码语言:javascript
复制
    return new Cesium.Primitive({
        geometryInstances: instances,
        appearance: new Cesium.PolylineColorAppearance()
    });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37572246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档