javascript - 多段线不显示,当切成较小的线时它确实显示

标签 javascript cesiumjs

我试图显示一条线,但是当我像这样启动折线时,什么也没有显示:

var geopositions = [];

for (var i = 0; i < c.geo.length; i++) {
    var g = c.geo[i];
    geopositions.push(parseFloat(g.lon));
    geopositions.push(parseFloat(g.lat));
}

var line = {
    positions: Cesium.Cartesian3.fromDegreesArray(geopositions),
    width: 1,
    id: "C" + c.id,
    material: Cesium.Material.fromType('Color', {
        color: Cesium.Color.fromBytes(255, 0, 0, 255)
    }),
    show: true
}
var coll = new Cesium.PolylineCollection();
coll.add(line);
primitives.add(coll);

所以我想我应该尝试在线条的所有点(c.geo 中的点)之间绘制线条,如下所示:

var collection = new Cesium.PolylineCollection();
var prev = null;
for (var j = 0; j < c.geo.length; j++) {
    var geo = c.geo[j];
    if (prev) {
        collection.add(
            {
                positions: Cesium.Cartesian3.fromDegreesArray([
                    parseFloat(prev.lon), parseFloat(prev.lat),
                    parseFloat(geo.lon), parseFloat(geo.lat)]),
                width: 2,
                material: Cesium.Material.fromType('Color', {
                    color: Cesium.Color.fromBytes(0, 180, 0, 255)
                })
            }
        );
    }
    prev = geo;
}
primitives.add(collection);

出于某种原因,这确实显示了这条线。我找不到出现这种情况的原因,也不明白为什么显示了行列表而没有显示标准折线。有谁知道如何在不将线切成小折线的情况下显示线?

最佳答案

铯应该可以处理你所描述的情况。您很可能遇到某种形式的 this bug ;已通过 this pull request 修复.

关于javascript - 多段线不显示,当切成较小的线时它确实显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26883456/

相关文章:

javascript - 如何让下面的函数返回 true 或 false?

javascript - 树递归: How to get the parent root of the selected tree node

webgl - 使用 puppeteer 截取运行 WebGL 的页面的屏幕截图

javascript - Cesiumjs 缩放到鼠标

Javascript 闭包 : How to add dynamic baselayers to Cesium map

Javascript 不更新 img

javascript - 在我的案例中如何禁用表单提交

javascript - 如何使用 Javascript 链接到外部 <div>?

cesiumjs - CZML 样式路径更细,阴影接地

javascript - 当我按回车键时,无法登录