У меня есть несколько объектов, у которых позиции задаются с помощью функции CallbackProperty.Обновление объектов в цезие
cesium.renderPolygon = function(mapContext, polygon, existingEntity) {
var p;
if (existingEntity) {
p = existingEntity;
} else {
var polOpts = getStyleOptions(polygon.style);
// function for getting location
polygon.getHierarachy = new Cesium.CallbackProperty(function(time, result) {
var hierarchy = [];
for (var i = 0; i < polygon.coordinates.length; i++) {
var coordinate = polygon.coordinates[i];
hierarchy.push(Cesium.Cartesian3.fromDegrees(coordinate.longitude, coordinate.latitude, coordinate.altitude));
}
return hierarchy;
}, false);
polOpts.hierarchy = polygon.getHierarachy;
p = mapContext.entities.add({
name: polygon.name,
polygon: polOpts
});
}
return p;
};
Если я добавлю единое целое, он, похоже, отлично работает. Поскольку я добавляю больше, есть задержка (1-3 секунды), и тогда все сущности не обновляются красиво. Это выглядит очень плохо.
Есть ли способ ограничить количество раз, когда это обновляет объекты. Я читал документацию Цези, но ничего не могу найти по этому поводу.
Или есть лучший способ динамически и последовательно обновлять объекты?
Вы не указали достаточную информацию и код, чтобы указать, в чем проблема. Действительно ли ваша реализация CallbackProperty проста? Откуда берутся долгота/широта/высота и как они обновляются? Какую визуализацию вы делаете (рекламный щит/модель/и т. Д.)? Как выглядит ваше обновление? Вы должны передавать результат как 4-й параметр fromDegrees, но это, вероятно, не основная проблема (хотя это определенно повлияет на производительность). –
Я добавил более полный образец кода. Что означает «4-й параметр toDegrees»? – Zac
https://cesiumjs.org/Cesium/Build/Documentation/Cartesian3.html - 4-й параметр - это эллипсоид, на котором находится позиция (Ellipsoid.fromCartesian3 Ellipsoid.WGS84 или Ellipsoid.UNIT_SPHERE) –