当前位置:   article > 正文

Cesium加载3Dtiles模型-大疆智图

cesium加载3dtiles

Cesium加载3Dtiles模型

Cesium加载3Dtiles模型步骤:
(一)如果您使用的是大疆智图,则该软件可以直接输出3Dtiles格式(B3DM切片)的数据,如图所示:

 

  1. var viewer = new Cesium.Viewer('cesiumContainer', {
  2. //需要进行可视化的数据源的集合
  3. animation: false, //是否显示动画控件
  4. shouldAnimate: true,
  5. homeButton: false, //是否显示Home按钮
  6. fullscreenButton: false, //是否显示全屏按钮
  7. baseLayerPicker: false, //是否显示图层选择控件
  8. geocoder: false, //是否显示地名查找控件
  9. timeline: false, //是否显示时间线控件
  10. sceneModePicker: true, //是否显示投影方式控件
  11. navigationHelpButton: false, //是否显示帮助信息控件
  12. infoBox: false, //是否显示点击要素之后显示的信息
  13. requestRenderMode: true, //启用请求渲染模式
  14. scene3DOnly: false, //每个几何实例将只能以3D渲染以节省GPU内存
  15. sceneMode: 3, //初始场景模式 1 2D模式 2 2D循环模式 3 3D模式 Cesium.SceneMode
  16. fullscreenElement: document.body, //全屏时渲染的HTML元素 暂时没发现用处
  17. //加载天地图影像地图,WebMapTileServiceImageryProvider该接口是加载WMTS服务的接口
  18. imageryProvider: new Cesium.WebMapTileServiceImageryProvider({
  19. url: 'http://t0.tianditu.gov.cn/img_w/wmts?tk=ebf64362215c081f8317203220f133eb',
  20. layer: 'img',
  21. style: 'default',
  22. tileMatrixSetID: 'w',
  23. format: 'tiles',
  24. maximumLevel: 18
  25. })
  26. });
  27. // 如果需要叠加路网与注记矢量则添加以下代码
  28. viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({
  29. url: 'http://t0.tianditu.gov.cn/cia_w/wmts?tk=ebf64362215c081f8317203220f133eb',
  30. layer: 'cia',
  31. style: 'default',
  32. tileMatrixSetID: 'w',
  33. format: 'tiles',
  34. maximumLevel: 18
  35. }))
  36. //加载倾斜示范数据
  37. var palaceTileset = new Cesium.Cesium3DTileset({
  38. url: '../../SampleData/OSGB&3Dtiles/terra_b3dms/tileset.json',
  39. //控制切片视角显示的数量,可调整性能
  40. maximumScreenSpaceError: 2,
  41. maximumNumberOfLoadedTiles: 100000,
  42. })
  43. //添加到场景
  44. viewer.scene.primitives.add(palaceTileset);
  45. //控制模型的位置
  46. palaceTileset.readyPromise.then(function (palaceTileset) {
  47. viewer.scene.primitives.add(palaceTileset);
  48. var heightOffset = 0.0; //可以改变3Dtiles的高度
  49. var boundingSphere = palaceTileset.boundingSphere;
  50. var cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center);
  51. var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
  52. var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, heightOffset);
  53. var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());
  54. palaceTileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
  55. viewer.zoomTo(palaceTileset, new Cesium.HeadingPitchRange(0.5, -0.2, palaceTileset.boundingSphere.radius *
  56. 1.0));
  57. });
  58. //定位到三维模型
  59. viewer.zoomTo(palaceTileset);

(二)如果您使用的是CC(Smart3D),该软件可以输出OSGB格式的数据,我们可以借助:
1.osg2cesiumApp v1.3软件来将我们的OSGB倾斜摄影数据转换成3Dtiles文件进行加载
2.cesiumlab2软件来将我们的OSGB倾斜摄影数据转换成3Dtiles文件进行加载
3.我们可以借助SuperMap的iearth工具来转换
加载效果如图所示:

 

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

闽ICP备14008679号