当前位置:   article > 正文

Cesium 加载实景三维模型 优化建议_cesium天地图加快加载速度

cesium天地图加快加载速度

关于通过谷歌浏览器通过Cesium底层添加实景三维都会存在,谷歌浏览器内存回收机制,这个问题官方一直没有解决了。我可以根据一些参数进行调整一下,我这套方案,本人亲测有效,加载模型速度快,而且当你相机视角达到某个高度的时候或者移走的时候,他会自动回收,一点不占内存

建议用异步方式和设置一些官方参数加载模型:

  1. var tileset = new Cesium.Cesium3DTileset({
  2. url:url,
  3. skipLevelOfDetail: true,
  4. baseScreenSpaceError: 1024,
  5. maximumScreenSpaceError: 256, // 数值加大,能让最终成像变模糊
  6. skipScreenSpaceErrorFactor: 16,
  7. skipLevels: 1,
  8. immediatelyLoadDesiredLevelOfDetail: false,
  9. loadSiblings: true, // 如果为true则不会在已加载完概况房屋后,自动从中心开始超清化房屋
  10. cullWithChildrenBounds: true,
  11. cullRequestsWhileMoving: true,
  12. cullRequestsWhileMovingMultiplier: 10, // 值越小能够更快的剔除
  13. preloadWhenHidden: true,
  14. preferLeaves: true,
  15. maximumMemoryUsage: 128, // 内存分配变小有利于倾斜摄影数据回收,提升性能体验
  16. progressiveResolutionHeightFraction: 0.5, // 数值偏于0能够让初始加载变得模糊
  17. dynamicScreenSpaceErrorDensity: 0.5, // 数值加大,能让周边加载变快
  18. dynamicScreenSpaceErrorFactor: 1, // 不知道起了什么作用没,反正放着吧先
  19. dynamicScreenSpaceError: true, // 根据测试,有了这个后,会在真正的全屏加载完之后才清晰化房屋
  20. });
  21. tileset.readyPromise.then(function (tileset) {
  22. //笛卡尔转换为弧度
  23. var cartographic = Cesium.Cartographic.fromCartesian(
  24. tileset.boundingSphere.center
  25. );
  26. var lng = Cesium.Math.toDegrees(cartographic.longitude); //使用经纬度和弧度的转换,将WGS84弧度坐标系转换到目标值,弧度转度
  27. var lat = Cesium.Math.toDegrees(cartographic.latitude);
  28. //计算中心点位置的地表坐标
  29. var surface = Cesium.Cartesian3.fromDegrees(lng, lat, 0);
  30. //偏移后的坐标
  31. var offset = Cesium.Cartesian3.fromDegrees(lng, lat, 5);
  32. var translation = Cesium.Cartesian3.subtract(
  33. offset,
  34. surface,
  35. new Cesium.Cartesian3()
  36. );
  37. tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
  38. });
  39. viewer.flyTo(tileset);
  40. window.viewer.scene.primitives.add(tileset);
  41. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/545402
推荐阅读
相关标签
  

闽ICP备14008679号