把这段代码改成在POINT(114.385660699 34.731041583) POINT(114.27387879 34.786476669)两个位置加载glb模型:try { // 加载 GeoJSON 数据 const dataSource = await Cesium.GeoJsonDataSource.load('./bengzhan/bengzhan.geojson'); viewer.dataSources.add(dataSource); // 遍历要素添加模型 dataSource.entities.values.forEach(entity => { const position = entity.position.getValue(Cesium.JulianDate.now()); viewer.entities.add({ position: position, model: { uri: './bengzhan/pump.glb', scale: 10.0, minimumPixelSize: 64, heightReference: Cesium.HeightReference.CLAMP_TO_GROUND } }); }); } catch (error) { console.error('加载失败:', error); }
时间: 2025-03-28 22:15:59 浏览: 33
为了在这两个指定的位置 `POINT(114.385660699 34.731041583)` 和 `POINT(114.27387879 34.786476669)` 加载 `.glb` 模型,我们不需要依赖于 GeoJSON 文件中的数据源,而是可以直接通过硬编码的方式将这两个点作为实体添加到 Cesium 的场景中。
以下是修改后的代码示例:
```javascript
// 定义需要加载模型的坐标点
const positions = [
{ longitude: 114.385660699, latitude: 34.731041583 },
{ longitude: 114.27387879, latitude: 34.786476669 }
];
try {
// 遍历每个位置并加载 glb 模型
positions.forEach(({ longitude, latitude }) => {
const position = Cesium.Cartesian3.fromDegrees(longitude, latitude); // 转换为笛卡尔坐标
viewer.entities.add({
position: position, // 设置模型位置
model: {
uri: './bengzhan/pump.glb', // 指定 GLB 模型路径
scale: 10.0, // 缩放比例
minimumPixelSize: 64, // 最小像素大小
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND // 自动贴地效果
}
});
});
} catch (error) {
console.error('加载失败:', error);
}
```
### 修改说明:
1. **直接定义了目标坐标**:我们将要加载模型的目标经纬度存储在一个数组 `positions` 中。
2. **遍历数组创建实体**:对每一个目标点,将其转换为三维笛卡尔坐标,并通过 `viewer.entities.add()` 添加新的模型实体。
3. **移除了 GeoJSON 相关部分**:因为我们不再从外部文件读取地理信息,因此去掉了与 GeoJSON 数据相关的代码片段。
此改动简化了流程,仅针对特定位置加载所需的 .glb 格式模型。
---
阅读全文
相关推荐














