cesium样例 网站
时间: 2023-08-10 12:08:47 浏览: 163
回答:有一个非常简单且nice的Cesium样例网站是Mars3D。Mars3D是一个案例平台,提供了各种案例展示和源码开源。它可以用于显示三维地球和地图,支持显示海量的三维模型数据、影像数据、地形高程数据以及矢量数据等等。三维模型格式支持gltf,三维瓦片模型格式支持3d tiles,矢量数据支持geojson和topojson格式,影像数据支持wmts,高程数据支持STK格式。感谢火星科技提供这个方便简单的Cesium样例网站。
相关问题
Cesium的ViewToolbar样例代码
以下是一个基本的Cesium ViewToolbar的样例代码:
```javascript
var viewer = new Cesium.Viewer('cesiumContainer');
var toolbar = document.getElementById('toolbar');
var homeButton = document.createElement('button');
homeButton.innerHTML = 'Home';
toolbar.appendChild(homeButton);
homeButton.addEventListener('click', function() {
viewer.camera.flyHome(1.5);
});
var zoomInButton = document.createElement('button');
zoomInButton.innerHTML = 'Zoom In';
toolbar.appendChild(zoomInButton);
zoomInButton.addEventListener('click', function() {
var camera = viewer.camera;
var factor = 1.5;
var direction = camera.direction;
var mag = Cesium.Cartesian3.magnitude(direction);
var movement = Cesium.Cartesian3.multiplyByScalar(direction, factor / mag, new Cesium.Cartesian3());
camera.move(movement);
});
var zoomOutButton = document.createElement('button');
zoomOutButton.innerHTML = 'Zoom Out';
toolbar.appendChild(zoomOutButton);
zoomOutButton.addEventListener('click', function() {
var camera = viewer.camera;
var factor = 1.5;
var direction = camera.direction;
var mag = Cesium.Cartesian3.magnitude(direction);
var movement = Cesium.Cartesian3.multiplyByScalar(direction, -factor / mag, new Cesium.Cartesian3());
camera.move(movement);
});
```
此代码将在Cesium Viewer上创建一个视图工具栏,其中包含Home,Zoom In和Zoom Out按钮。单击Home按钮将使相机飞回到初始位置和方向。单击Zoom In和Zoom Out按钮将按比例缩放相机。您可以根据自己的需要添加更多按钮并添加更多功能。
能够使用Cesium开发一个多线程加载3DTiles模型的样例程序么?
是的,Cesium 支持多线程加载 3DTiles 模型。Cesium 使用 Web Worker API 实现多线程加载。下面是一个使用 Cesium 开发多线程加载 3DTiles 模型的样例程序:
```javascript
// 创建 Cesium 场景
var viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider : new Cesium.CesiumTerrainProvider({
url : 'https://assets.agi.com/stk-terrain/world'
}),
});
// 创建一个 Web Worker,用于加载 3DTiles 模型
var worker = new Worker('worker.js');
// 当 Web Worker 加载完 3DTiles 模型后,将模型添加到 Cesium 场景中
worker.onmessage = function(event) {
viewer.scene.primitives.add(event.data.tileset);
};
// 向 Web Worker 发送消息,请求加载 3DTiles 模型
worker.postMessage({
url: 'http://localhost/myTileset.json'
});
```
在这个样例中,我们使用 Web Worker API 创建了一个名为 `worker` 的 Web Worker,并使用 `worker.postMessage()` 方法向其发送消息,请求加载 3DTiles 模型。Web Worker 会在加载完模型后,使用 `worker.onmessage` 事件处理函数将模型发送回主线程,并使用 `viewer.scene.primitives.add()` 方法将模型添加到 Cesium 场景中。
注意:Web Worker 只能加载本地文件,如果要加载远程文件,需要使用服务器代理。
希望这个样例能帮到你。
阅读全文