javascript - 如何在铯中显示折线集合?

标签 javascript cesiumjs

我一定是做错了什么,因为在阅读文档后我不确定如何在 Cesium 中显示折线集合。我没有在文档中明确看到任何方法或教程 here关于显示折线集合。在沙盒中也没有任何我能找到的教程似乎比 this one 更重要。 , 它只显示带有

的单折线
viewer.entites.add(Polyline)

我已经尝试在这个沙盒中使用 PolylineCollection 的添加示例代码(以及迭代然后切换的建议),但没有显示任何内容,也没有显示任何错误:

// Create a polyline collection with two polylines
var polylines = new Cesium.PolylineCollection();
polylines.add({
  positions : Cesium.Cartesian3.fromDegreesArray([
    -75.10, 39.57,
    -77.02, 38.53,
    -80.50, 35.14,
    -80.12, 25.46]),
  width : 2
});

polylines.add({
  positions : Cesium.Cartesian3.fromDegreesArray([
    -73.10, 37.57,
    -75.02, 36.53,
    -78.50, 33.14,
    -78.12, 23.46]),
  width : 4
});
// Toggle the show property of every polyline in the collection
var len = polylines.length;
for (var i = 0; i < len; ++i) {
  var p = polylines.get(i);
  p.show = true;
}

我不确定文档会用什么其他方式指向我来呈现这些内容。感谢您的帮助。

最佳答案

您在这里混合了 Cesium API 层。 Cesium 有 2 个不同的公共(public) API 层,一个“实体”层和一个“原始”层。基元层用于图形基元:整个多段线集合实际上是一个单一的图形基元(在内部,一个单一的“绘图调用”),广告牌的集合是另一个单一的基元,等等。一个“实体”是一个更高层次的- 物体或车辆的概念,例如,单个卡车实体可能有一个广告牌、一个标签和一条多段线,它们都显示了卡车所在的位置和曾经去过的地方。出于图形性能原因,一组单独的实体将共享一组广告牌,以及一组折线等。

通常建议在可能或可行的情况下使用实体层,因为这样可以让您根据真实世界的对象而不是图形基元的集合来思考。但有时,您拥有如此庞大的静态基元集合,以至于直接提交该集合的性能更高。

demo you linked ,那里的代码创建了许多实体,并为每个实体附加一条折线。但是,在您发布的代码中,您正在手动创建 PolylineCollection,并尝试显示它。因此,要修复您的代码,请删除此行:

viewer.entites.add(Polyline)

并添加这一行:

viewer.scene.primitives.add(polylines);

请注意,polylines 已在您的代码中声明,但 Polyline 只是一个类。另请注意,我们将 polylineCollection 添加为 scene.primitive,而不是 entity

根据您实际使用它的目的,在此处废弃您的代码并重新复制您链接到的实体演示代码并改用该表单可能会更好,也可能不会更好。

关于javascript - 如何在铯中显示折线集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41579516/

相关文章:

javascript - 需要使广告牌实体具有可选择的回调功能并且可能弹出信息

event-listener - 删除Cesium的相机移动事件监听器

javascript - 使用 '+' 和 '-' 的键码

label - 铯js。如何绘制将标签绑定(bind)到某个位置的线

javascript - IE Chrome 框架全屏

javascript - 文件元数据未在 Firestore 存储中更新

javascript - Cesium如何将 'drape'多边形或线放到地形表面

javascript - PhoneGap/Cordova 将 appdelegate 变量传递给 JS

javascript - 如何根据原型(prototype)中包含字符串的属性值选择所有元素

javascript - 使翻译功能不再翻译结果