2015-09-18 75 views
2

我正在繪製一個實體,它使用從數據庫提供的位置數據。Cesium:動態改變實體位置

我目前使用

viewer.entities.removeAll(); 

刪除我每次從數據庫中獲取結果的時間所有的實體。

由於實體目前是3D模型,因此導致瀏覽器中漫長而繁重的過程。

是否有更好的數據更新方式,例如實體數組。或者一種方法來緩存我可以改變數據的實體。

最終的結果是這樣我就可以改變在飛行中的位置,然後在顯示器上看到的實體更新

我使用

viewer.entities.add({ 
      name : name, 
      position : position, 
      orientation : orientation, 
      model : { 
       uri : url, 
       minimumPixelSize : 50 
      } 
     }); 

添加實體

回答

5

取查看Picking Demo,您可以看到它在實時編輯器窗口的第26行周圍分配了新的Cartesian3值到entity.position。更新實體將比破壞它並創建一個新實體要快得多。另外,如果您的數據庫知道實體的位置隨時間而改變,您可以通過SampledPositionProperty提供該位置,並允許Cesium隨着時間推移沿着路徑移動的實體。

+0

太棒了,問題是,我似乎無法找到我在渲染模型後創建的實際實體。 – Beshman88

+0

你可以發佈創建實體的代碼嗎?如果您調用'viewer.entities.add',它應該返回對新創建的實體的引用。你也可以給實體一個唯一的ID來查找它。 – emackey

+0

請參閱更新後的問題 – Beshman88