在cesium sandcastle
页上,{@ {3}}
https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=Polyline.html&label=Geometries
您可以看到,当我单击紫色线时,出现一个框(图像的右上角),指示name
Cesium
中[Polyline][2]
为"Purple straight arrow at height"
。如何为name box
添加相同的[PolylineCollection][2]
(下面的代码中的第5行)?
这是代码
var viewer = new Cesium.Viewer('cesiumContainer');
var lineCollection = new Cesium.PolylineCollection(); // line no 5
lineCollection.add({
name : "Hi",
description : "Hi description",
positions : Cesium.Cartesian3.fromDegreesArrayHeights([-75, 53, 500000,
-125, 53, 500000]),
width : 10,
followSurface : false
});
viewer.scene.primitives.add(lineCollection);
var purpleArrow = viewer.entities.add({
name : 'Purple straight arrow at height',
polyline : {
positions : Cesium.Cartesian3.fromDegreesArrayHeights([-75, 43, 500000,
-125, 43, 500000]),
width : 10,
followSurface : false,
material : new Cesium.PolylineArrowMaterialProperty(Cesium.Color.PURPLE)
}
});
viewer.zoomTo(viewer.entities);
答案 0 :(得分:0)
名称和描述是Cesium中更高级别的“实体” API的一部分。在图形基元级别PolylineCollection
所在的位置,没有这样的东西。
您是否需要使用较低级别的API?通常,想要高级功能(例如绿色选择指示器,信息框,名称和描述等)的用户应该坚持使用实体,而不是原始体。
也就是说,有一种方法可以检测鼠标何时“拾取”了基元,并查找了一些名称和信息,并命令信息框手动更新。但是,所有这些逻辑都是内置在Entity层中的,因此在您自己的应用中重新实现它之前,您应该三思。