добавление поля `name` и` description` для `Caesium PolylineCollection` - PullRequest
0 голосов
/ 27 декабря 2018

На странице cesium sandcastle @ https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=Polyline.html&label=Geometries

enter image description here

Вы можете видеть, когда я нажимаю на фиолетовую линию, я получаю поле (верхний правый угол изображения), указывающий 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 голосов
/ 27 декабря 2018

Имена и описания являются частью высокоуровневого API "Entity" в Cesium.На уровне графического примитива, где PolylineCollection, такого нет.

Нужно ли использовать API более низкого уровня?Как правило, пользователи, которым нужны высокоуровневые функции, такие как зеленый индикатор выбора, информационные поля, имена и описания и т. Д., Должны придерживаться сущностей, а не примитивов.

Тем не менее, есть способ определить, когда примитивы"выбран" мышью, найдите некоторые имена и информацию, и введите в информационное окно обновление вручную.Вся эта логика встроена в слой Entity, поэтому вам следует дважды подумать, прежде чем повторно внедрить ее в собственном приложении.

...