diff --git a/Apps/Sandcastle/gallery/3D Tiles Adjust Height.html b/Apps/Sandcastle/gallery/3D Tiles Adjust Height.html
index c8e8f6c139ac..31de2f9fcbd1 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Adjust Height.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Adjust Height.html
@@ -60,8 +60,6 @@
shadows: true,
});
- viewer.scene.globe.depthTestAgainstTerrain = true;
-
const viewModel = {
height: 0,
};
@@ -71,31 +69,30 @@
const toolbar = document.getElementById("toolbar");
Cesium.knockout.applyBindings(viewModel, toolbar);
- const tileset = new Cesium.Cesium3DTileset({
- url: "../../SampleData/Cesium3DTiles/Tilesets/Tileset/tileset.json",
- });
-
- tileset.readyPromise
- .then(function (tileset) {
- viewer.scene.primitives.add(tileset);
- viewer.zoomTo(
- tileset,
- new Cesium.HeadingPitchRange(
- 0.0,
- -0.5,
- tileset.boundingSphere.radius * 2.0
- )
- );
- })
- .catch(function (error) {
- console.log(error);
- });
+ let tileset;
+ try {
+ tileset = await Cesium.Cesium3DTileset.fromUrl(
+ "../../SampleData/Cesium3DTiles/Tilesets/Tileset/tileset.json"
+ );
+ viewer.scene.primitives.add(tileset);
+ viewer.scene.globe.depthTestAgainstTerrain = true;
+ viewer.zoomTo(
+ tileset,
+ new Cesium.HeadingPitchRange(
+ 0.0,
+ -0.5,
+ tileset.boundingSphere.radius * 2.0
+ )
+ );
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
Cesium.knockout
.getObservable(viewModel, "height")
.subscribe(function (height) {
height = Number(height);
- if (isNaN(height)) {
+ if (isNaN(height) || !Cesium.defined(tileset)) {
return;
}
diff --git a/Apps/Sandcastle/gallery/3D Tiles BIM.html b/Apps/Sandcastle/gallery/3D Tiles BIM.html
index 2f403e730916..542878ac3053 100644
--- a/Apps/Sandcastle/gallery/3D Tiles BIM.html
+++ b/Apps/Sandcastle/gallery/3D Tiles BIM.html
@@ -43,29 +43,6 @@
"2022-08-01T00:00:00Z"
);
- const tileset = scene.primitives.add(
- new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(1240402),
- })
- );
-
- tileset.readyPromise
- .then(function (tileset) {
- viewer.zoomTo(
- tileset,
- new Cesium.HeadingPitchRange(
- 0.5,
- -0.2,
- tileset.boundingSphere.radius * 4.0
- )
- );
- })
- .catch(function (error) {
- console.log(error);
- });
-
- tileset.colorBlendMode = Cesium.Cesium3DTileColorBlendMode.REPLACE;
-
let selectedFeature;
let picking = false;
@@ -209,14 +186,30 @@
}
}
- tileset.tileLoad.addEventListener(function (tile) {
- processTileFeatures(tile, loadFeature);
- });
+ try {
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(1240402);
+ scene.primitives.add(tileset);
+
+ viewer.zoomTo(
+ tileset,
+ new Cesium.HeadingPitchRange(
+ 0.5,
+ -0.2,
+ tileset.boundingSphere.radius * 4.0
+ )
+ );
+
+ tileset.colorBlendMode = Cesium.Cesium3DTileColorBlendMode.REPLACE;
+ tileset.tileLoad.addEventListener(function (tile) {
+ processTileFeatures(tile, loadFeature);
+ });
- tileset.tileUnload.addEventListener(function (tile) {
- processTileFeatures(tile, unloadFeature);
- });
- //Sandcastle_End
+ tileset.tileUnload.addEventListener(function (tile) {
+ processTileFeatures(tile, unloadFeature);
+ });
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ } //Sandcastle_End
};
if (typeof Cesium !== "undefined") {
window.startupCalled = true;
diff --git a/Apps/Sandcastle/gallery/3D Tiles Batch Table Hierarchy.html b/Apps/Sandcastle/gallery/3D Tiles Batch Table Hierarchy.html
index de0497ca1f44..5e7a1731d76d 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Batch Table Hierarchy.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Batch Table Hierarchy.html
@@ -95,13 +95,27 @@
const viewer = new Cesium.Viewer("cesiumContainer");
viewer.clock.currentTime = new Cesium.JulianDate(2457522.154792);
- const tileset = new Cesium.Cesium3DTileset({
- url:
- "../../SampleData/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tileset.json",
- });
+ let tileset;
+ try {
+ tileset = await Cesium.Cesium3DTileset.fromUrl(
+ "../../SampleData/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tileset.json"
+ );
+
+ viewer.scene.primitives.add(tileset);
+ viewer.zoomTo(tileset, new Cesium.HeadingPitchRange(0.0, -0.3, 0.0));
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
- viewer.scene.primitives.add(tileset);
- viewer.zoomTo(tileset, new Cesium.HeadingPitchRange(0.0, -0.3, 0.0));
+ function setStyle(style) {
+ return function () {
+ if (!Cesium.defined(tileset)) {
+ return;
+ }
+
+ tileset.style = new Cesium.Cesium3DTileStyle(style);
+ };
+ }
const styles = [];
function addStyle(name, style) {
@@ -167,12 +181,6 @@
},
});
- function setStyle(style) {
- return function () {
- tileset.style = new Cesium.Cesium3DTileStyle(style);
- };
- }
-
const styleOptions = [];
for (let i = 0; i < styles.length; ++i) {
const style = styles[i];
diff --git a/Apps/Sandcastle/gallery/3D Tiles Clipping Planes.html b/Apps/Sandcastle/gallery/3D Tiles Clipping Planes.html
index 9547272431fa..7df0fc46db18 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Clipping Planes.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Clipping Planes.html
@@ -142,7 +142,9 @@
}
let tileset;
- function loadTileset(url) {
+ async function loadTileset(resource, modelMatrix) {
+ const currentExampleType = viewModel.currentExampleType;
+
clippingPlanes = new Cesium.ClippingPlaneCollection({
planes: [
new Cesium.ClippingPlane(
@@ -153,77 +155,81 @@
edgeWidth: viewModel.edgeStylingEnabled ? 1.0 : 0.0,
});
- tileset = viewer.scene.primitives.add(
- new Cesium.Cesium3DTileset({
- url: url,
+ try {
+ const url = await Promise.resolve(resource);
+ tileset = await Cesium.Cesium3DTileset.fromUrl(url, {
clippingPlanes: clippingPlanes,
- })
- );
+ });
- tileset.debugShowBoundingVolume =
- viewModel.debugBoundingVolumesEnabled;
- return tileset.readyPromise
- .then(function () {
- const boundingSphere = tileset.boundingSphere;
- const radius = boundingSphere.radius;
+ if (currentExampleType !== viewModel.currentExampleType) {
+ // Another tileset was loaded, discard the current result
+ return;
+ }
- viewer.zoomTo(
- tileset,
- new Cesium.HeadingPitchRange(0.5, -0.2, radius * 4.0)
+ if (Cesium.defined(modelMatrix)) {
+ tileset.modelMatrix = modelMatrix;
+ }
+
+ viewer.scene.primitives.add(tileset);
+
+ tileset.debugShowBoundingVolume =
+ viewModel.debugBoundingVolumesEnabled;
+ const boundingSphere = tileset.boundingSphere;
+ const radius = boundingSphere.radius;
+
+ viewer.zoomTo(
+ tileset,
+ new Cesium.HeadingPitchRange(0.5, -0.2, radius * 4.0)
+ );
+
+ if (
+ !Cesium.Matrix4.equals(
+ tileset.root.transform,
+ Cesium.Matrix4.IDENTITY
+ )
+ ) {
+ // The clipping plane is initially positioned at the tileset's root transform.
+ // Apply an additional matrix to center the clipping plane on the bounding sphere center.
+ const transformCenter = Cesium.Matrix4.getTranslation(
+ tileset.root.transform,
+ new Cesium.Cartesian3()
+ );
+ const transformCartographic = Cesium.Cartographic.fromCartesian(
+ transformCenter
+ );
+ const boundingSphereCartographic = Cesium.Cartographic.fromCartesian(
+ tileset.boundingSphere.center
+ );
+ const height =
+ boundingSphereCartographic.height -
+ transformCartographic.height;
+ clippingPlanes.modelMatrix = Cesium.Matrix4.fromTranslation(
+ new Cesium.Cartesian3(0.0, 0.0, height)
);
+ }
- if (
- !Cesium.Matrix4.equals(
- tileset.root.transform,
- Cesium.Matrix4.IDENTITY
- )
- ) {
- // The clipping plane is initially positioned at the tileset's root transform.
- // Apply an additional matrix to center the clipping plane on the bounding sphere center.
- const transformCenter = Cesium.Matrix4.getTranslation(
- tileset.root.transform,
- new Cesium.Cartesian3()
- );
- const transformCartographic = Cesium.Cartographic.fromCartesian(
- transformCenter
- );
- const boundingSphereCartographic = Cesium.Cartographic.fromCartesian(
- tileset.boundingSphere.center
- );
- const height =
- boundingSphereCartographic.height -
- transformCartographic.height;
- clippingPlanes.modelMatrix = Cesium.Matrix4.fromTranslation(
- new Cesium.Cartesian3(0.0, 0.0, height)
- );
- }
-
- for (let i = 0; i < clippingPlanes.length; ++i) {
- const plane = clippingPlanes.get(i);
- const planeEntity = viewer.entities.add({
- position: boundingSphere.center,
- plane: {
- dimensions: new Cesium.Cartesian2(
- radius * 2.5,
- radius * 2.5
- ),
- material: Cesium.Color.WHITE.withAlpha(0.1),
- plane: new Cesium.CallbackProperty(
- createPlaneUpdateFunction(plane),
- false
- ),
- outline: true,
- outlineColor: Cesium.Color.WHITE,
- },
- });
-
- planeEntities.push(planeEntity);
- }
- return tileset;
- })
- .catch(function (error) {
- console.log(error);
- });
+ for (let i = 0; i < clippingPlanes.length; ++i) {
+ const plane = clippingPlanes.get(i);
+ const planeEntity = viewer.entities.add({
+ position: boundingSphere.center,
+ plane: {
+ dimensions: new Cesium.Cartesian2(radius * 2.5, radius * 2.5),
+ material: Cesium.Color.WHITE.withAlpha(0.1),
+ plane: new Cesium.CallbackProperty(
+ createPlaneUpdateFunction(plane),
+ false
+ ),
+ outline: true,
+ outlineColor: Cesium.Color.WHITE,
+ },
+ });
+
+ planeEntities.push(planeEntity);
+ }
+ return tileset;
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
}
function loadModel(url) {
@@ -308,10 +314,12 @@
} else if (newValue === clipObjects[1]) {
loadTileset(pointCloudUrl);
} else if (newValue === clipObjects[2]) {
- loadTileset(instancedUrl);
// Position the instanced tileset above terrain
- tileset.modelMatrix = new Cesium.Matrix4.fromTranslation(
- new Cesium.Cartesian3(15.0, -58.6, 50.825)
+ loadTileset(
+ instancedUrl,
+ Cesium.Matrix4.fromTranslation(
+ new Cesium.Cartesian3(15.0, -58.6, 50.825)
+ )
);
} else {
loadModel(modelUrl);
@@ -336,7 +344,10 @@
function reset() {
viewer.entities.removeAll();
- viewer.scene.primitives.remove(tileset);
+ if (Cesium.defined(tileset)) {
+ viewer.scene.primitives.remove(tileset);
+ }
+
planeEntities = [];
targetY = 0.0;
tileset = undefined;
diff --git a/Apps/Sandcastle/gallery/3D Tiles Compare.html b/Apps/Sandcastle/gallery/3D Tiles Compare.html
index 5f494f9abe77..6e209e819f00 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Compare.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Compare.html
@@ -54,18 +54,19 @@
//Sandcastle_Begin
const viewer = new Cesium.Viewer("cesiumContainer");
- const left = viewer.scene.primitives.add(
- new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(69380),
- })
- );
+ try {
+ const left = await Cesium.Cesium3DTileset.fromIonAssetId(69380);
+ viewer.scene.primitives.add(left);
+ left.splitDirection = Cesium.SplitDirection.LEFT;
- left.splitDirection = Cesium.SplitDirection.LEFT;
+ viewer.zoomTo(left);
- const right = viewer.scene.primitives.add(Cesium.createOsmBuildings());
- right.splitDirection = Cesium.SplitDirection.RIGHT;
-
- viewer.zoomTo(left);
+ const right = await Cesium.createOsmBuildingsAsync();
+ viewer.scene.primitives.add(right);
+ right.splitDirection = Cesium.SplitDirection.RIGHT;
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
// Sync the position of the slider with the split position
const slider = document.getElementById("slider");
diff --git a/Apps/Sandcastle/gallery/3D Tiles Feature Picking.html b/Apps/Sandcastle/gallery/3D Tiles Feature Picking.html
index fb6814bd8286..9689573ff0b4 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Feature Picking.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Feature Picking.html
@@ -60,10 +60,12 @@
});
// Load the NYC buildings tileset
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(75343),
- });
- viewer.scene.primitives.add(tileset);
+ try {
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(75343);
+ viewer.scene.primitives.add(tileset);
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
// HTML overlay for showing feature name on mouseover
const nameOverlay = document.createElement("div");
diff --git a/Apps/Sandcastle/gallery/3D Tiles Feature Styling.html b/Apps/Sandcastle/gallery/3D Tiles Feature Styling.html
index c9fe5b050ebd..ddadf3af6590 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Feature Styling.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Feature Styling.html
@@ -61,7 +61,7 @@
Loading...
const handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
// Add Cesium OSM buildings to the scene as our example 3D Tileset.
- const osmBuildingsTileset = Cesium.createOsmBuildings();
+ const osmBuildingsTileset = await Cesium.createOsmBuildingsAsync();
viewer.scene.primitives.add(osmBuildingsTileset);
// Set the initial camera to look at Seattle
diff --git a/Apps/Sandcastle/gallery/3D Tiles Formats.html b/Apps/Sandcastle/gallery/3D Tiles Formats.html
index e141b25e538e..7c7d1fb50cf8 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Formats.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Formats.html
@@ -140,59 +140,62 @@
viewer.shadows = enabled;
});
+ let resourceToLoad;
Cesium.knockout
.getObservable(viewModel, "selectedTileset")
- .subscribe(function (options) {
+ .subscribe(async function (options) {
if (Cesium.defined(tileset)) {
scene.primitives.remove(tileset);
}
if (!Cesium.defined(options)) {
inspectorViewModel.tileset = undefined;
+ resourceToLoad = undefined;
return;
}
- tileset = viewer.scene.primitives.add(
- new Cesium.Cesium3DTileset({
- url: options.resource,
+ resourceToLoad = options.resource;
+ try {
+ tileset = await Cesium.Cesium3DTileset.fromUrl(resourceToLoad, {
enableDebugWireframe: true,
- })
- );
+ });
+ if (options.resource !== resourceToLoad) {
+ // Another tileset was loaded. Discard the result.
+ return;
+ }
+ viewer.scene.primitives.add(tileset);
- tileset.readyPromise
- .then(function () {
- inspectorViewModel.tileset = tileset;
- viewer.zoomTo(
- tileset,
- new Cesium.HeadingPitchRange(
- 0,
- -2.0,
- Math.max(100.0 - tileset.boundingSphere.radius, 0.0)
- )
- );
+ inspectorViewModel.tileset = tileset;
+ viewer.zoomTo(
+ tileset,
+ new Cesium.HeadingPitchRange(
+ 0,
+ -2.0,
+ Math.max(100.0 - tileset.boundingSphere.radius, 0.0)
+ )
+ );
- const properties = tileset.properties;
- if (
- Cesium.defined(properties) &&
- Cesium.defined(properties.Height)
- ) {
- tileset.style = new Cesium.Cesium3DTileStyle({
- color: {
- conditions: [
- ["${Height} >= 83", "color('purple', 0.5)"],
- ["${Height} >= 80", "color('red')"],
- ["${Height} >= 70", "color('orange')"],
- ["${Height} >= 12", "color('yellow')"],
- ["${Height} >= 7", "color('lime')"],
- ["${Height} >= 1", "color('cyan')"],
- ["true", "color('blue')"],
- ],
- },
- });
- }
- })
- .catch(function (error) {
- throw error;
- });
+ const properties = tileset.properties;
+ if (
+ Cesium.defined(properties) &&
+ Cesium.defined(properties.Height)
+ ) {
+ tileset.style = new Cesium.Cesium3DTileStyle({
+ color: {
+ conditions: [
+ ["${Height} >= 83", "color('purple', 0.5)"],
+ ["${Height} >= 80", "color('red')"],
+ ["${Height} >= 70", "color('orange')"],
+ ["${Height} >= 12", "color('yellow')"],
+ ["${Height} >= 7", "color('lime')"],
+ ["${Height} >= 1", "color('cyan')"],
+ ["true", "color('blue')"],
+ ],
+ },
+ });
+ }
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
});
viewModel.selectedTileset = viewModel.tilesets[0];
diff --git a/Apps/Sandcastle/gallery/3D Tiles Inspector.html b/Apps/Sandcastle/gallery/3D Tiles Inspector.html
index 736bde4e8f3d..1ad857bd51a8 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Inspector.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Inspector.html
@@ -46,22 +46,23 @@
viewer.extend(Cesium.viewerCesium3DTilesInspectorMixin);
const inspectorViewModel = viewer.cesium3DTilesInspector.viewModel;
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(75343),
- enableDebugWireframe: true,
- });
- viewer.scene.primitives.add(tileset);
-
- await tileset.readyPromise;
+ try {
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(75343, {
+ enableDebugWireframe: true,
+ });
+ viewer.scene.primitives.add(tileset);
- viewer.zoomTo(
- tileset,
- new Cesium.HeadingPitchRange(
- 0.0,
- -0.5,
- tileset.boundingSphere.radius / 4.0
- )
- ); //Sandcastle_End
+ viewer.zoomTo(
+ tileset,
+ new Cesium.HeadingPitchRange(
+ 0.0,
+ -0.5,
+ tileset.boundingSphere.radius / 4.0
+ )
+ );
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ } //Sandcastle_End
};
if (typeof Cesium !== "undefined") {
window.startupCalled = true;
diff --git a/Apps/Sandcastle/gallery/3D Tiles Interactivity.html b/Apps/Sandcastle/gallery/3D Tiles Interactivity.html
index 30426497ff74..a55fae14eb18 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Interactivity.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Interactivity.html
@@ -114,16 +114,20 @@
endTransform: Cesium.Matrix4.IDENTITY,
});
+ let style;
// Load the NYC buildings tileset.
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(75343),
- });
- scene.primitives.add(tileset);
- tileset.style = new Cesium.Cesium3DTileStyle({
- meta: {
- description: "'Building ${BIN} has height ${Height}.'",
- },
- });
+ try {
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(75343);
+ scene.primitives.add(tileset);
+ style = new Cesium.Cesium3DTileStyle({
+ meta: {
+ description: "'Building ${BIN} has height ${Height}.'",
+ },
+ });
+ tileset.style = style;
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
const handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
@@ -185,8 +189,11 @@
}
// Evaluate feature description
+ if (!Cesium.defined(style)) {
+ return;
+ }
console.log(
- `Description : ${tileset.style.meta.description.evaluate(feature)}`
+ `Description : ${style.meta.description.evaluate(feature)}`
);
}
diff --git a/Apps/Sandcastle/gallery/3D Tiles Interior.html b/Apps/Sandcastle/gallery/3D Tiles Interior.html
index 3fc2975278f8..38c63747e69e 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Interior.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Interior.html
@@ -39,10 +39,12 @@
// San Miguel model created by Guillermo M. Leal Llaguno. Cleaned up and hosted by Morgan McGuire: http://graphics.cs.williams.edu/data/meshes.xml
const viewer = new Cesium.Viewer("cesiumContainer");
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(125737),
- });
- viewer.scene.primitives.add(tileset);
+ try {
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(125737);
+ viewer.scene.primitives.add(tileset);
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
const initialPosition = new Cesium.Cartesian3(
-1111583.3721328347,
diff --git a/Apps/Sandcastle/gallery/3D Tiles Next CDB Yemen.html b/Apps/Sandcastle/gallery/3D Tiles Next CDB Yemen.html
index 515f30909f29..1c17a7059da7 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Next CDB Yemen.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Next CDB Yemen.html
@@ -52,19 +52,6 @@
const scene = viewer.scene;
scene.light.intensity = 7.0;
- // 3D Tiles Next converted from CDB of Aden, Yemen (CDB provided by Presagis)
- const terrainTileset = viewer.scene.primitives.add(
- new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(667809),
- })
- );
- const buildingsTileset = viewer.scene.primitives.add(
- new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(666747),
- maximumScreenSpaceError: 12,
- })
- );
-
const cameraTransforms = {
tileset: {
destination: new Cesium.Cartesian3(
@@ -149,19 +136,6 @@
});
}
- buildingsTileset.readyPromise.then(function (tileset) {
- const center = Cesium.Cartesian3.fromDegrees(
- 45.04192,
- 12.753525,
- 2000
- );
- const heading = Cesium.Math.toRadians(50.0);
- const pitch = Cesium.Math.toRadians(-20.0);
- const range = 5000.0;
-
- flyCameraTo(cameraTransforms.tileset);
- });
-
// --- Style ---
const buildingStyle = new Cesium.Cesium3DTileStyle({
@@ -408,34 +382,58 @@
}
}
- const modes = [
- {
- text: "No style",
- onselect: function () {
- resetHighlight();
- buildingsTileset.style = undefined;
- terrainTileset.style = undefined;
+ try {
+ // 3D Tiles Next converted from CDB of Aden, Yemen (CDB provided by Presagis)
+ const terrainTileset = await Cesium.Cesium3DTileset.fromIonAssetId(
+ 667809
+ );
+ viewer.scene.primitives.add(terrainTileset);
+ const buildingsTileset = await Cesium.Cesium3DTileset.fromIonAssetId(
+ 666747,
+ {
+ maximumScreenSpaceError: 12,
+ }
+ );
+ viewer.scene.primitives.add(buildingsTileset);
+ const center = Cesium.Cartesian3.fromDegrees(
+ 45.04192,
+ 12.753525,
+ 2000
+ );
+
+ flyCameraTo(cameraTransforms.tileset);
+
+ const modes = [
+ {
+ text: "No style",
+ onselect: function () {
+ resetHighlight();
+ buildingsTileset.style = undefined;
+ terrainTileset.style = undefined;
+ },
},
- },
- {
- text: "Style buildings based on height",
- onselect: function () {
- resetHighlight();
- buildingsTileset.style = buildingStyle;
- terrainTileset.style = undefined;
+ {
+ text: "Style buildings based on height",
+ onselect: function () {
+ resetHighlight();
+ buildingsTileset.style = buildingStyle;
+ terrainTileset.style = undefined;
+ },
},
- },
- {
- text: "Style terrain based on materials",
- onselect: function () {
- buildingsTileset.style = undefined;
- terrainTileset.style = terrainStyle;
+ {
+ text: "Style terrain based on materials",
+ onselect: function () {
+ buildingsTileset.style = undefined;
+ terrainTileset.style = terrainStyle;
+ },
},
- },
- ];
+ ];
+ Sandcastle.addToolbarMenu(modes);
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
Sandcastle.addToolbarMenu(locations);
- Sandcastle.addToolbarMenu(modes);
Sandcastle.addToggleButton(
"Enable terrain picking",
enablePicking,
diff --git a/Apps/Sandcastle/gallery/3D Tiles Next Photogrammetry Classification.html b/Apps/Sandcastle/gallery/3D Tiles Next Photogrammetry Classification.html
index 97f23ac0aba5..1f024d001d33 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Next Photogrammetry Classification.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Next Photogrammetry Classification.html
@@ -48,24 +48,6 @@
const scene = viewer.scene;
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(775877),
- });
-
- const translation = new Cesium.Cartesian3(
- -1.398521324920626,
- 0.7823052871729486,
- 0.7015244410592609
- );
- tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
-
- tileset.maximumScreenSpaceError = 8.0;
- scene.pickTranslucentDepth = true;
- scene.light.intensity = 7.0;
-
- viewer.scene.primitives.add(tileset);
- viewer.zoomTo(tileset);
-
// Fly to a nice overview of the city.
viewer.camera.flyTo({
destination: new Cesium.Cartesian3(
@@ -80,6 +62,26 @@
),
});
+ let tileset;
+ try {
+ tileset = await Cesium.Cesium3DTileset.fromIonAssetId(775877);
+
+ const translation = new Cesium.Cartesian3(
+ -1.398521324920626,
+ 0.7823052871729486,
+ 0.7015244410592609
+ );
+ tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
+
+ tileset.maximumScreenSpaceError = 8.0;
+ scene.pickTranslucentDepth = true;
+ scene.light.intensity = 7.0;
+
+ viewer.scene.primitives.add(tileset);
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
+
// Styles =============================================================================
const classificationStyle = new Cesium.Cesium3DTileStyle({
diff --git a/Apps/Sandcastle/gallery/3D Tiles Next S2 Globe.html b/Apps/Sandcastle/gallery/3D Tiles Next S2 Globe.html
index f1d18063448a..28f1198ab04b 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Next S2 Globe.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Next S2 Globe.html
@@ -74,13 +74,16 @@
easingFunction: Cesium.EasingFunction.QUADRATIC_IN_OUT,
});
- // MAXAR OWT WFF 1.2 Base Globe
- const tileset = viewer.scene.primitives.add(
- new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(691510),
+ let tileset;
+ try {
+ // MAXAR OWT WFF 1.2 Base Globe
+ tileset = await Cesium.Cesium3DTileset.fromIonAssetId(691510, {
maximumScreenSpaceError: 4,
- })
- );
+ });
+ scene.primitives.add(tileset);
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
// --- Style ---
diff --git a/Apps/Sandcastle/gallery/3D Tiles Photogrammetry Classification.html b/Apps/Sandcastle/gallery/3D Tiles Photogrammetry Classification.html
index f59d6b688333..d2cff77c2412 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Photogrammetry Classification.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Photogrammetry Classification.html
@@ -41,41 +41,47 @@
terrain: Cesium.Terrain.fromWorldTerrain(),
});
- // A normal b3dm tileset containing photogrammetry
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(40866),
- });
- viewer.scene.primitives.add(tileset);
- viewer.zoomTo(tileset);
+ try {
+ // A normal b3dm tileset containing photogrammetry
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(40866);
+ viewer.scene.primitives.add(tileset);
+ viewer.zoomTo(tileset);
- const classificationTilesetUrl =
- "../../SampleData/Cesium3DTiles/Classification/Photogrammetry/tileset.json";
- // A b3dm tileset used to classify the photogrammetry tileset
- const classificationTileset = new Cesium.Cesium3DTileset({
- url: classificationTilesetUrl,
- classificationType: Cesium.ClassificationType.CESIUM_3D_TILE,
- });
- classificationTileset.style = new Cesium.Cesium3DTileStyle({
- color: "rgba(255, 0, 0, 0.5)",
- });
- viewer.scene.primitives.add(classificationTileset);
+ const classificationTilesetUrl =
+ "../../SampleData/Cesium3DTiles/Classification/Photogrammetry/tileset.json";
+ // A b3dm tileset used to classify the photogrammetry tileset
+ const classificationTileset = await Cesium.Cesium3DTileset.fromUrl(
+ classificationTilesetUrl,
+ {
+ classificationType: Cesium.ClassificationType.CESIUM_3D_TILE,
+ }
+ );
+ classificationTileset.style = new Cesium.Cesium3DTileStyle({
+ color: "rgba(255, 0, 0, 0.5)",
+ });
+ viewer.scene.primitives.add(classificationTileset);
- // The same b3dm tileset used for classification, but rendered normally for comparison.
- const nonClassificationTileset = new Cesium.Cesium3DTileset({
- url: classificationTilesetUrl,
- show: false,
- });
- nonClassificationTileset.style = new Cesium.Cesium3DTileStyle({
- color: "rgba(255, 0, 0, 0.5)",
- });
- viewer.scene.primitives.add(nonClassificationTileset);
+ // The same b3dm tileset used for classification, but rendered normally for comparison.
+ const nonClassificationTileset = await Cesium.Cesium3DTileset.fromUrl(
+ classificationTilesetUrl,
+ {
+ show: false,
+ }
+ );
+ nonClassificationTileset.style = new Cesium.Cesium3DTileStyle({
+ color: "rgba(255, 0, 0, 0.5)",
+ });
+ viewer.scene.primitives.add(nonClassificationTileset);
- Sandcastle.addToggleButton("Show classification", true, function (
- checked
- ) {
- classificationTileset.show = checked;
- nonClassificationTileset.show = !checked;
- }); //Sandcastle_End
+ Sandcastle.addToggleButton("Show classification", true, function (
+ checked
+ ) {
+ classificationTileset.show = checked;
+ nonClassificationTileset.show = !checked;
+ });
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ } //Sandcastle_End
};
if (typeof Cesium !== "undefined") {
window.startupCalled = true;
diff --git a/Apps/Sandcastle/gallery/3D Tiles Photogrammetry.html b/Apps/Sandcastle/gallery/3D Tiles Photogrammetry.html
index ca2b82815209..7bfde7dcc8f4 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Photogrammetry.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Photogrammetry.html
@@ -40,12 +40,13 @@
terrain: Cesium.Terrain.fromWorldTerrain(),
});
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(40866),
- });
-
- viewer.scene.primitives.add(tileset);
- viewer.zoomTo(tileset); //Sandcastle_End
+ try {
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(40866);
+ viewer.scene.primitives.add(tileset);
+ viewer.zoomTo(tileset);
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ } //Sandcastle_End
};
if (typeof Cesium !== "undefined") {
window.startupCalled = true;
diff --git a/Apps/Sandcastle/gallery/3D Tiles Point Cloud Classification.html b/Apps/Sandcastle/gallery/3D Tiles Point Cloud Classification.html
index d07104ec5859..9b4728381221 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Point Cloud Classification.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Point Cloud Classification.html
@@ -41,35 +41,38 @@
terrain: Cesium.Terrain.fromWorldTerrain(),
});
- //Point Cloud by Prof. Peter Allen, Columbia University Robotics Lab. Scanning by Alejandro Troccoli and Matei Ciocarlie.
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(16421),
- });
- viewer.scene.primitives.add(tileset);
+ try {
+ // Point Cloud by Prof. Peter Allen, Columbia University Robotics Lab. Scanning by Alejandro Troccoli and Matei Ciocarlie.
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(16421);
+ viewer.scene.primitives.add(tileset);
- // Geometry Tiles are experimental and the format is subject to change in the future.
- // For more details, see:
- // https://github.com/CesiumGS/3d-tiles/tree/vctr/TileFormats/Geometry
- const classificationTileset = new Cesium.Cesium3DTileset({
- url:
+ // Geometry Tiles are experimental and the format is subject to change in the future.
+ // For more details, see:
+ // https://github.com/CesiumGS/3d-tiles/tree/vctr/TileFormats/Geometry
+ const classificationTileset = await Cesium.Cesium3DTileset.fromUrl(
"../../SampleData/Cesium3DTiles/Classification/PointCloud/tileset.json",
- classificationType: Cesium.ClassificationType.CESIUM_3D_TILE,
- });
- viewer.scene.primitives.add(classificationTileset);
+ {
+ classificationType: Cesium.ClassificationType.CESIUM_3D_TILE,
+ }
+ );
+ viewer.scene.primitives.add(classificationTileset);
- classificationTileset.style = new Cesium.Cesium3DTileStyle({
- color: {
- conditions: [
- ["${id} === 'roof1'", "color('#004FFF', 0.5)"],
- ["${id} === 'towerBottom1'", "color('#33BB66', 0.5)"],
- ["${id} === 'towerTop1'", "color('#0099AA', 0.5)"],
- ["${id} === 'roof2'", "color('#004FFF', 0.5)"],
- ["${id} === 'tower3'", "color('#FF8833', 0.5)"],
- ["${id} === 'tower4'", "color('#FFAA22', 0.5)"],
- ["true", "color('#FFFF00', 0.5)"],
- ],
- },
- });
+ classificationTileset.style = new Cesium.Cesium3DTileStyle({
+ color: {
+ conditions: [
+ ["${id} === 'roof1'", "color('#004FFF', 0.5)"],
+ ["${id} === 'towerBottom1'", "color('#33BB66', 0.5)"],
+ ["${id} === 'towerTop1'", "color('#0099AA', 0.5)"],
+ ["${id} === 'roof2'", "color('#004FFF', 0.5)"],
+ ["${id} === 'tower3'", "color('#FF8833', 0.5)"],
+ ["${id} === 'tower4'", "color('#FFAA22', 0.5)"],
+ ["true", "color('#FFFF00', 0.5)"],
+ ],
+ },
+ });
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
viewer.scene.camera.setView({
destination: new Cesium.Cartesian3(
diff --git a/Apps/Sandcastle/gallery/3D Tiles Point Cloud Shading.html b/Apps/Sandcastle/gallery/3D Tiles Point Cloud Shading.html
index cdc3ed6fc5d7..1beeba7bff99 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Point Cloud Shading.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Point Cloud Shading.html
@@ -207,71 +207,83 @@
pointCloudShading.eyeDomeLightingRadius;
}
- function loadStHelens() {
- // Set the initial camera view to look at Mt. St. Helens
- const initialPosition = Cesium.Cartesian3.fromRadians(
- -2.1344873183780484,
- 0.8071380277370774,
- 5743.394497982162
- );
- const initialOrientation = new Cesium.HeadingPitchRoll.fromDegrees(
- 112.99596671210358,
- -21.34390550872461,
- 0.0716951918898415
- );
- viewer.scene.camera.setView({
- destination: initialPosition,
- orientation: initialOrientation,
- endTransform: Cesium.Matrix4.IDENTITY,
- });
+ async function loadStHelens() {
+ try {
+ // Set the initial camera view to look at Mt. St. Helens
+ const initialPosition = Cesium.Cartesian3.fromRadians(
+ -2.1344873183780484,
+ 0.8071380277370774,
+ 5743.394497982162
+ );
+ const initialOrientation = new Cesium.HeadingPitchRoll.fromDegrees(
+ 112.99596671210358,
+ -21.34390550872461,
+ 0.0716951918898415
+ );
+ viewer.scene.camera.setView({
+ destination: initialPosition,
+ orientation: initialOrientation,
+ endTransform: Cesium.Matrix4.IDENTITY,
+ });
- // Mt. St. Helens 3D Tileset generated from LAS provided by https://www.liblas.org/samples/
- // This tileset uses replacement refinement and has geometric error approximately equal to
- // the average interpoint distance in each tile.
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(5713),
- });
- viewer.scene.primitives.add(tileset);
+ // Mt. St. Helens 3D Tileset generated from LAS provided by https://www.liblas.org/samples/
+ // This tileset uses replacement refinement and has geometric error approximately equal to
+ // the average interpoint distance in each tile.
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(5713);
+ if (viewModel.currentExampleType !== pointClouds[0]) {
+ // Scenario has changes. Discards the result.
+ return;
+ }
+ viewer.scene.primitives.add(tileset);
- tileset.maximumScreenSpaceError = 16.0;
- tileset.pointCloudShading.maximumAttenuation = undefined; // Will be based on maximumScreenSpaceError instead
- tileset.pointCloudShading.baseResolution = undefined;
- tileset.pointCloudShading.geometricErrorScale = 1.0;
- tileset.pointCloudShading.attenuation = true;
- tileset.pointCloudShading.eyeDomeLighting = true;
+ tileset.maximumScreenSpaceError = 16.0;
+ tileset.pointCloudShading.maximumAttenuation = undefined; // Will be based on maximumScreenSpaceError instead
+ tileset.pointCloudShading.baseResolution = undefined;
+ tileset.pointCloudShading.geometricErrorScale = 1.0;
+ tileset.pointCloudShading.attenuation = true;
+ tileset.pointCloudShading.eyeDomeLighting = true;
- tilesetToViewModel(tileset);
+ tilesetToViewModel(tileset);
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
}
- function loadChurch() {
- // Point Cloud by Prof. Peter Allen, Columbia University Robotics Lab. Scanning by Alejandro Troccoli and Matei Ciocarlie.
- // This tileset uses additive refinement and has geometric error based on the bounding box size for each tile.
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(16421),
- });
- viewer.scene.primitives.add(tileset);
+ async function loadChurch() {
+ try {
+ // Point Cloud by Prof. Peter Allen, Columbia University Robotics Lab. Scanning by Alejandro Troccoli and Matei Ciocarlie.
+ // This tileset uses additive refinement and has geometric error based on the bounding box size for each tile.
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(16421);
+ if (viewModel.currentExampleType !== pointClouds[1]) {
+ // Scenario has changes. Discards the result.
+ return;
+ }
+ viewer.scene.primitives.add(tileset);
- tileset.maximumScreenSpaceError = 16.0;
- tileset.pointCloudShading.maximumAttenuation = 4.0; // Don't allow points larger than 4 pixels.
- tileset.pointCloudShading.baseResolution = 0.05; // Assume an original capture resolution of 5 centimeters between neighboring points.
- tileset.pointCloudShading.geometricErrorScale = 0.5; // Applies to both geometric error and the base resolution.
- tileset.pointCloudShading.attenuation = true;
- tileset.pointCloudShading.eyeDomeLighting = true;
+ tileset.maximumScreenSpaceError = 16.0;
+ tileset.pointCloudShading.maximumAttenuation = 4.0; // Don't allow points larger than 4 pixels.
+ tileset.pointCloudShading.baseResolution = 0.05; // Assume an original capture resolution of 5 centimeters between neighboring points.
+ tileset.pointCloudShading.geometricErrorScale = 0.5; // Applies to both geometric error and the base resolution.
+ tileset.pointCloudShading.attenuation = true;
+ tileset.pointCloudShading.eyeDomeLighting = true;
- viewer.scene.camera.setView({
- destination: new Cesium.Cartesian3(
- 4401744.644145314,
- 225051.41078911052,
- 4595420.374784433
- ),
- orientation: new Cesium.HeadingPitchRoll(
- 5.646733805039757,
- -0.276607153839886,
- 6.281110875400085
- ),
- });
+ viewer.scene.camera.setView({
+ destination: new Cesium.Cartesian3(
+ 4401744.644145314,
+ 225051.41078911052,
+ 4595420.374784433
+ ),
+ orientation: new Cesium.HeadingPitchRoll(
+ 5.646733805039757,
+ -0.276607153839886,
+ 6.281110875400085
+ ),
+ });
- tilesetToViewModel(tileset);
+ tilesetToViewModel(tileset);
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
}
function checkZero(newValue) {
diff --git a/Apps/Sandcastle/gallery/3D Tiles Point Cloud Styling.html b/Apps/Sandcastle/gallery/3D Tiles Point Cloud Styling.html
index c0d8b25038f1..0b9882c09485 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Point Cloud Styling.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Point Cloud Styling.html
@@ -42,12 +42,16 @@
const viewer = new Cesium.Viewer("cesiumContainer");
viewer.clock.currentTime = new Cesium.JulianDate(2457522.154792);
- const tileset = new Cesium.Cesium3DTileset({
- url:
- "../../SampleData/Cesium3DTiles/PointCloud/PointCloudWithPerPointProperties/tileset.json",
- });
- viewer.scene.primitives.add(tileset);
- viewer.zoomTo(tileset, new Cesium.HeadingPitchRange(0.0, -1.0, 50.0));
+ let tileset;
+ try {
+ tileset = await Cesium.Cesium3DTileset.fromUrl(
+ "../../SampleData/Cesium3DTiles/PointCloud/PointCloudWithPerPointProperties/tileset.json"
+ );
+ viewer.scene.primitives.add(tileset);
+ viewer.zoomTo(tileset, new Cesium.HeadingPitchRange(0.0, -1.0, 50.0));
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
const styles = [];
function addStyle(name, style) {
@@ -219,6 +223,9 @@
function setStyle(style) {
return function () {
+ if (!Cesium.defined(tileset)) {
+ return;
+ }
tileset.style = new Cesium.Cesium3DTileStyle(style);
};
}
diff --git a/Apps/Sandcastle/gallery/3D Tiles Point Cloud.html b/Apps/Sandcastle/gallery/3D Tiles Point Cloud.html
index 2d5fa1d21e64..10c52266ef4c 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Point Cloud.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Point Cloud.html
@@ -41,11 +41,6 @@
terrain: Cesium.Terrain.fromWorldTerrain(),
});
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(16421),
- });
- viewer.scene.primitives.add(tileset);
-
viewer.scene.camera.setView({
destination: new Cesium.Cartesian3(
4401744.644145314,
@@ -57,7 +52,14 @@
-0.276607153839886,
6.281110875400085
),
- }); //Sandcastle_End
+ });
+
+ try {
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(16421);
+ viewer.scene.primitives.add(tileset);
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ } //Sandcastle_End
};
if (typeof Cesium !== "undefined") {
window.startupCalled = true;
diff --git a/Apps/Sandcastle/gallery/3D Tiles Terrain Classification.html b/Apps/Sandcastle/gallery/3D Tiles Terrain Classification.html
index ef9ea1301f15..086aeaba8e03 100644
--- a/Apps/Sandcastle/gallery/3D Tiles Terrain Classification.html
+++ b/Apps/Sandcastle/gallery/3D Tiles Terrain Classification.html
@@ -45,17 +45,19 @@
geocoder.flightDuration = 0.0;
geocoder.search();
- // Vector 3D Tiles are experimental and the format is subject to change in the future.
- // For more details, see:
- // https://github.com/CesiumGS/3d-tiles/tree/vctr/TileFormats/VectorData
- const tileset = new Cesium.Cesium3DTileset({
- url: Cesium.IonResource.fromAssetId(5737),
- });
- viewer.scene.primitives.add(tileset);
+ try {
+ // Vector 3D Tiles are experimental and the format is subject to change in the future.
+ // For more details, see:
+ // https://github.com/CesiumGS/3d-tiles/tree/vctr/TileFormats/VectorData
+ const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(5737);
+ viewer.scene.primitives.add(tileset);
- tileset.style = new Cesium.Cesium3DTileStyle({
- color: "rgba(255, 255, 255, 0.5)",
- });
+ tileset.style = new Cesium.Cesium3DTileStyle({
+ color: "rgba(255, 255, 255, 0.5)",
+ });
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`);
+ }
// Information about the currently highlighted feature
const highlighted = {
diff --git a/Apps/Sandcastle/gallery/Aerometrex San Francisco.html b/Apps/Sandcastle/gallery/Aerometrex San Francisco.html
index ad722934e5ed..c90af96ea9eb 100755
--- a/Apps/Sandcastle/gallery/Aerometrex San Francisco.html
+++ b/Apps/Sandcastle/gallery/Aerometrex San Francisco.html
@@ -32,20 +32,18 @@
Loading...