cesium绘制不同颜色的多段线(SimplePolylineGeometry)

记录一下用SimplePolylineGeometry绘制不同颜色的多段线,代码看下面

//创建多段线和每段颜色
const positions = [];
const colors = [];
for (let j = 0; j <= 50; j += 5) {
    positions.push(
        Cesium.Cartesian3.fromDegrees(-124.0 + j, 40, 50000.0 * (j % 10))
    );
    colors.push(Cesium.Color.fromRandom({ alpha: 1.0 }));
}
//设置线段的位置和颜色,一一对应,arcType为ArcType.NONE
const perSegmentPolyline = new Cesium.GeometryInstance({
     geometry: new Cesium.SimplePolylineGeometry({
         positions: positions,
         colors: colors,
         arcType: Cesium.ArcType.NONE,
     }),
 });
//使用逐顶点着色绘制多段线
//对于逐顶点着色,将colorsPerVertex选项设置为true,并为colors选项提供长度等于位置数的颜色数组
const perVertexPolyline = new Cesium.GeometryInstance({
	geometry: new Cesium.SimplePolylineGeometry({
	    positions: Cesium.Cartesian3.fromDegreesArray([-100, 40, -80, 30]),
	    colors: [Cesium.Color.RED, Cesium.Color.BLUE],
	    colorsPerVertex: true,
	}),
});
//添加多段线instances到primitives
scene.primitives.add(
    new Cesium.Primitive({
        geometryInstances: [perSegmentPolyline, perVertexPolyline],
        appearance: new Cesium.PerInstanceColorAppearance({
            flat: true,
            renderState: {
                lineWidth: Math.min(2.0, scene.maximumAliasedLineWidth),
            },
        }),
    })
);

结果
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值