Проблема в том, что Cesium.CzmlDataSource.load
не возвращает Cesium.CzmlDataSource
. Он возвращает Promise
для асинхронного go получения CzmlDataSource
, и это совсем не одно и то же. Ваш код пытается показать или скрыть обещание, но это не то, что отображается.
var dataSourcePromise = Cesium.CzmlDataSource.load( ... );
var dataSource = null;
dataSourcePromise.then(function(d) { dataSource = d; });
Обратите внимание, что после запуска приведенного выше кода в течение некоторого времени dataSource будет null
, пока браузер ожидает ответ сервера на окончательную загрузку sh. Как только функция обратного вызова сработает, источник данных будет готов.
function onClick() {
if (dataSource !== null) {
dataSource.show = !dataSource.show;
}
}
Вы можете подключить обработчик щелчка для кнопки переключения, подобной этой. Но переключатель не будет ничего делать, пока источник данных не будет загружен и готов.