viewer.dataSources.add的参数有哪些
时间: 2023-06-04 18:05:04 浏览: 221
viewer.dataSources.add的参数包括:dataSource (DataSource)、loadingIndicator (Element|string)、showLoadIndicator (boolean)、clampToGround (boolean)、credit (Credit|string)、errorEvent (Event)。
相关问题
// 添加数据源 that.viewer.dataSources.add(dataSource); console.log(dataSource, "dataSource"); // 获取实体对象 var entities = dataSource.entities.values; // 遍历实体对象,设置区域颜色 for (var i = 0; i < entities.length; i++) { var entity = entities[i]; // 设置区块高度 entity.polygon.height = 1000; entity.polygon.material = Cesium.Color.fromRandom({ alpha: 0.5, }); } // 裁剪地图 that.viewer.scene.globe.depthTestAgainstTerrain = true; that.viewer.scene.globe.clippingPlanes = new Cesium.ClippingPlaneCollection({ planes: [ new Cesium.ClippingPlane( new Cesium.Cartesian3(1.0, 0.0, 0.0), 2000.0 ), new Cesium.ClippingPlane( new Cesium.Cartesian3(-1.0, 0.0, 0.0), 2000.0 ), new Cesium.ClippingPlane( new Cesium.Cartesian3(0.0, 1.0, 0.0), 2000.0 ), new Cesium.ClippingPlane( new Cesium.Cartesian3(0.0, -1.0, 0.0), 2000.0 ), ], edgeWidth: 1.0, modelMatrix: Cesium.Matrix4.IDENTITY, }); 在创建实体后,去裁剪实体以外的所有东西,但是没有奏效。帮我解决一下,附上代码
根据你提供的代码,你想要使用裁剪平面来裁剪地球上的部分区域。但是,你需要在每一帧渲染时更新裁剪平面。你可以通过以下方式完成:
1. 创建一个更新裁剪平面的函数,例如:
```
function updateClippingPlanes() {
var clippingPlanes = new Cesium.ClippingPlaneCollection({
planes: [
new Cesium.ClippingPlane(
new Cesium.Cartesian3(1.0, 0.0, 0.0),
2000.0
),
new Cesium.ClippingPlane(
new Cesium.Cartesian3(-1.0, 0.0, 0.0),
2000.0
),
new Cesium.ClippingPlane(
new Cesium.Cartesian3(0.0, 1.0, 0.0),
2000.0
),
new Cesium.ClippingPlane(
new Cesium.Cartesian3(0.0, -1.0, 0.0),
2000.0
),
],
edgeWidth: 1.0,
modelMatrix: Cesium.Matrix4.IDENTITY,
});
viewer.scene.globe.clippingPlanes = clippingPlanes;
}
```
2. 在每一帧渲染时调用该函数,例如:
```
viewer.clock.onTick.addEventListener(function () {
updateClippingPlanes();
});
```
这样,你就可以在每一帧渲染时更新裁剪平面了。另外,你还需要确保地形深度测试开启,例如:
```
viewer.scene.globe.depthTestAgainstTerrain = true;
```
希望这可以帮助你解决问题。
.ige地图怎么用cesium加载
使用 Cesium 加载 .ige 地图的过程如下:
1. 获取 .ige 地图文件,通常为 .json 格式。可以从 iGisMap 官网下载或者从其他来源获取。
2. 在 Cesium 中创建地球实例。
```javascript
var viewer = new Cesium.Viewer('cesiumContainer');
```
3. 创建 IgeJsonDataSource 实例,用于加载 .json 文件。
```javascript
var igeJsonDataSource = new Cesium.IgeJsonDataSource();
```
4. 通过 IgeJsonDataSource 的 load 方法加载 .json 文件。
```javascript
igeJsonDataSource.load('path/to/map.json')
```
5. 将加载的数据源添加到 Cesium 场景中。
```javascript
viewer.dataSources.add(igeJsonDataSource);
```
6. 设置相机位置和视角,调整地图呈现效果。
```javascript
viewer.camera.setView({
destination: new Cesium.Cartesian3.fromDegrees(longitude, latitude, height),
orientation: {
heading: Cesium.Math.toRadians(heading),
pitch: Cesium.Math.toRadians(pitch),
roll: Cesium.Math.toRadians(roll)
}
});
```
其中,longitude、latitude、height、heading、pitch、roll 分别表示经度、纬度、高度、偏航角、俯仰角、翻滚角。
7. 等待数据加载完成后,即可在 Cesium 地球上看到加载的 .ige 地图。
完整的代码示例:
```javascript
var viewer = new Cesium.Viewer('cesiumContainer');
var igeJsonDataSource = new Cesium.IgeJsonDataSource();
igeJsonDataSource.load('path/to/map.json').then(function() {
viewer.dataSources.add(igeJsonDataSource);
viewer.camera.setView({
destination: new Cesium.Cartesian3.fromDegrees(longitude, latitude, height),
orientation: {
heading: Cesium.Math.toRadians(heading),
pitch: Cesium.Math.toRadians(pitch),
roll: Cesium.Math.toRadians(roll)
}
});
});
```