Цезиевый рекламный щит Холст становится черным

Поэтому я динамически создаю и обновляю всплывающие окна в своем приложении Cesium, и оно отлично работает. Однако через некоторое время после запуска приложения рекламные щиты становятся черными и остаются черными, пока я не обновлю страницу. У кого-нибудь есть предложения по исправлению этой ошибки?

Следующий код является основой того, что я делаю, loadPopup() отвечает за создание рекламного щита с холстом в качестве элемента изображения. updatePopup() вызывается синхронно, так как приложение запущено для обновления позиции элемента billboard.

//creates the popup first
function loadPopup(id, type, name, data) {
  viewer.entities.add({
    id : id,
    name : name,
    position : data.position,
    billboard :  {
      image : createPopupCanvas(id, type, name, data),
      verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
      scaleByDistance : new Cesium.NearFarScalar(1500, 2, 80000000, 0.25)
    }
  });  
}

//updates popup synchronously
function updatePopup(id, type, name, data) {
  var newPosition = Cesium.Cartesian3.fromDegrees(data.lon, data.lat, 99999);
  var currPopup = viewer.entities.getById(id);
  
  if (currPopup != undefined) {
    currPopup.position = newPosition;
  }
}

//creates a canvas element to display some stuff from the data table
function createPopupCanvas(id, type, name, data) {
   var canvas = document.createElement('canvas');
   var context = canvas.getContext('2d');
  
   context.fillText(data.stuff1, id, 105, 60);
   context.fillText(data.stuff2, id, 105, 70);
  
  return canvas;
}

0 ответов

Другие вопросы по тегам