为Cesium PolylineCollection添加“名称”和“描述”框

时间:2018-12-27 10:41:01

标签: javascript opengl opengl-3 cesium

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);

1 个答案:

答案 0 :(得分:0)

名称和描述是Cesium中更高级别的“实体” API的一部分。在图形基元级别PolylineCollection所在的位置,没有这样的东西。

您是否需要使用较低级别的API?通常,想要高级功能(例如绿色选择指示器,信息框,名称和描述等)的用户应该坚持使用实体,而不是原始体。

也就是说,有一种方法可以检测鼠标何时“拾取”了基元,并查找了一些名称和信息,并命令信息框手动更新。但是,所有这些逻辑都是内置在Entity层中的,因此在您自己的应用中重新实现它之前,您应该三思。