How to use CesiumJS to visualize data from a Session: Difference between revisions

From Tygron Support wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
<code>
<pre>
// variables
// variables
const dim = 128;
const dim = 128;
Line 34: Line 34:
}
}
}));
}));
</code>
</pre>


{{article end
{{article end

Revision as of 12:53, 1 March 2024

		// variables
		const dim = 128;
		const minLevel = 6;
		const maxLevel = 19;
		const tilepx = 512;

		// Construct the default list of terrain sources.
		var terrainModels = [];
		terrainModels.push(new Cesium.ProviderViewModel({
			name: "Project Terrain",
			category: "Terrain",
			iconUrl: Cesium.buildModuleUrl('Widgets/Images/TerrainProviders/Ellipsoid.png'),
			creationFunction: function () {
				return new Cesium.CustomHeightmapTerrainProvider({
					width: dim,
					height: dim,
					maximumLevel: maxLevel,
					callback: function (x, y, level) {
						if (level <= 10) { // ignore zoom levels 10 and lower
							return new Float32Array(dim * dim); // all zeros
						}
						const test = Cesium.Resource.fetchArrayBuffer('terrain/' + level + '/' + x + '/' + y + '.bin?worlddatum=true&token=$TOKEN&width=' + dim + '&height=' + dim);
						return test.then(function (buffer) {
							const array = new Float32Array(dim * dim); // all zeros
							const view = new DataView(buffer);
							for (let i = 0; i < dim * dim; i++) {
								array[i] = view.getFloat32(i * 4);
							}
							return array;
						});
					},
				});
			}
		}));