function Map3d() {
|
tiles3dLayer = new mars3d.layer.TilesetLayer({
|
name: "石化工厂", // 图层名称,用于标识该图层
|
url: "/hxzkuwb/Home/demo/titles/tileset.json", // 3D Tiles 数据的 URL 地址,指向 JSON 文件
|
position: { lng: 104.348246, lat: 31.244458, alt: 486 }, // 图层的初始位置,包含经度、纬度和高度
|
maximumScreenSpaceError: 5, // 最大屏幕空间误差,控制模型的细节渲染级别,值越高性能越好但视觉效果可能下降
|
shadows: Cesium.ShadowMode.DISABLED, // 设置阴影模式,禁用阴影以提高性能,若需要可设置为 ENABLED 启用阴影
|
skipLevelOfDetail: true, // 跳过细节层级,减少渲染时的计算负担,提升性能
|
loadSiblings: true, // 加载兄弟节点,确保在需要时快速加载周围节点,提高流畅性
|
cullRequestsWhileMoving: true, // 在移动时进行剔除,减少不必要的渲染计算,提高性能
|
cullRequestsWhileMovingMultiplier: 15, // 在移动时的剔除请求倍数,设置为 10 表示在移动时增加剔除请求,进一步提升性能
|
preferLeaves: true, // 优先加载叶子节点,优化加载顺序,提升用户体验,特别是在复杂场景中
|
preloadWhenHidden: true, // 在模型隐藏时进行预加载,减少下次显示时的延迟
|
});
|
map.addLayer(tiles3dLayer)
|
|
// map.on(mars3d.EventType.terrainChange, function (event) {
|
// if (map.hasTerrain) {
|
// tiles3dLayer.alt = 11.5
|
// } else {
|
// tiles3dLayer.alt = -118.5
|
// }
|
// })
|
|
tiles3dLayer.readyPromise.then(function (layer) {
|
|
// tiles3dLayer.tileset 是 Cesium3DTileset,支持绑定所有Cesium原生事件
|
// 参考API http://mars3d.cn/api/cesium/Cesium3DTileset.html
|
tiles3dLayer.tileset.loadProgress.addEventListener(function (numberOfPendingRequests, numberOfTilesProcessing) {
|
if (numberOfPendingRequests === 0 && numberOfTilesProcessing === 0) {
|
|
return
|
}
|
|
})
|
})
|
// 加载的事件 只执行一次
|
tiles3dLayer.on(mars3d.EventType.initialTilesLoaded, function (event) {
|
|
})
|
|
// 会执行多次,重新加载一次完成后都会回调
|
tiles3dLayer.on(mars3d.EventType.allTilesLoaded, function (event) {
|
console.log("触发allTilesLoaded事件", event)
|
})
|
}
|