gpt4 book ai didi

javascript - 将 billboardCollection 添加到 Cesium 中的实体中

转载 作者:行者123 更新时间:2023-11-27 23:49:04 27 4
gpt4 key购买 nike

我需要在Cesium JS中创建一个billboardCollection并将其放入entity中。

我创建了两个广告牌,并尝试将其添加到 billboardCollection 中,然后在创建 entity 时使用它,但只显示标签...没有广告牌出现。

这是我到目前为止的代码:

var pos = Cesium.Cartesian3.fromDegrees(-75.1641667, 39.9522222);
var pinBuilder = new Cesium.PinBuilder();

var pointBillboard = {
image: pinBuilder.fromColor(Cesium.Color.SALMON, 48),
verticalOrigin: Cesium.VerticalOrigin.BOTTOM
};

var lineBillboard = {
color: Cesium.Color.WHITE,
image: "img/white.png",
pixelOffset: new Cesium.Cartesian2(0, 0),
position: pos
};

var billboards = scene.primitives.add(new Cesium.BillboardCollection());

billboards.add(pointBillboard);
billboards.add(lineBillboard);

this.entity = mapa.getViewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(-75.1641667, 39.9522222),
billboard: billboards,
label: {
text: ' Ponto',
verticalOrigin: Cesium.VerticalOrigin.TOP,
horizontalOrigin: Cesium.HorizontalOrigin.RIGHT,
font: '11px Helvetica',
fillColor: Cesium.Color.WHITE,
outlineWidth: 1,
style: Cesium.LabelStyle.FILL
}
});

有没有办法在实体中插入billboardCollection

非常感谢!

最佳答案

不,抱歉,您在这里混合了 API 的两个不同层。 billboardCollection 是图形基元层的一部分,实体构建在其之上,但不以这种方式直接包含基元。

我注意到您已经在 billboardCollection 上调用了 scene.primitives.add,因此它已经在场景中了。该图钉未显示,因为您忘记将 position: pos 添加到 pointBillboard 定义中。该集合中的广告牌可以完全独立于场景中的任何实体而存在。

场景中的每个实体都只允许有一个广告牌,而不是一个集合。在幕后,许多实体将他们的广告牌集中到一个集合中。该集合与您在自己的代码中构造的集合是分开的。

在文档中,请注意 entity.billboard需要 BillboardGraphics这本质上是对单个广告牌的定义如何随时间变化的描述。它不需要实际的原始广告牌或 billboardCollection。

通常,如果您只有“数千”个广告牌,则每个广告牌可以使用一个实体。但如果您拥有的内容远不止于此,您可能必须放弃高级实体并直接构建您自己的 billboardCollection,就像您在此处所做的那样。

关于javascript - 将 billboardCollection 添加到 Cesium 中的实体中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32872168/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com