Lucho por cargar mi archivo czml sin copiar su contenido dentro de mi script JS en Cesium. Me gustaría cargar el archivo usando su url pero no logro hacerlo.
var czml = "test_trace.czml"; var viewer = new Cesium.Viewer("cesiumContainer", {terrainProvider: Cesium.createWorldTerrain(), baseLayerPicker: false, shouldAnimate: true,}); viewer.dataSources.add(Cesium.CzmlDataSource.load(czml)).then(function (ds) { viewer.trackedEntity = ds.entities.getById("path"); });donde czml no es el contenido del archivo sino el archivo en sí. Alguna idea ?
Muchas gracias
EDITAR : se agregó un fragmento de código a la pregunta original que contiene un pequeño error. La cláusula .then requiere una promesa, que .load devuelve pero .load no .add . Recomiendo esta frase en su lugar:
Cesium.CzmlDataSource.load(czml).then(function (ds) { viewer.dataSources.add(ds); viewer.trackedEntity = ds.entities.getById("path"); }); En lo anterior, .load devuelve la promesa y .then espera a que se resuelva la promesa. Luego, el origen de datos resuelto se agrega al visor y se elige una entidad rastreada. Aquí hay una demostración en vivo con seguimiento .
Respuesta original :
Asegúrese de que czml sea una cadena que contenga la URL. Además, el origen de datos resultante debe agregarse al visor para que sea visible. Verifique la consola en busca de errores para ver si la URL no es válida o no es accesible para la aplicación.
Aquí hay una demostración en vivo .
Las líneas críticas en esta demostración son:
var viewer = new Cesium.Viewer("cesiumContainer", { shouldAnimate: true, }); viewer.dataSources.add( Cesium.CzmlDataSource.load("../SampleData/simple.czml") );En este caso, el servidor web ofrece un archivo CZML en la URL relativa enumerada.