vue3结合Cesium加载倾斜摄影3dtiles

这篇具有很好参考价值的文章主要介绍了vue3结合Cesium加载倾斜摄影3dtiles。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        这篇文章主要是为了记录加载3dtiles时模型与地形有时候存在一些高度上的差异,为此将解决方法做一个记录,便于其他读者使用。文章来源地址https://www.toymoban.com/news/detail-787677.html

        加载倾斜摄影3dtitle


//加载倾斜摄影图像
function init3Dtiles() {
  const tileSet = new Cesium3DTileset({
    url: "http://127.0.0.1/data/tileset.json",
    maximumMemoryUsage: 100, //不可设置太高,目标机子空闲内存值以内,防止浏览器过于卡
    maximumScreenSpaceError: 32, //用于驱动细节细化级别的最大屏幕空间错误;较高的值可提供更好的性能,但视觉质量较低。
    maximumNumberOfLoadedTiles: 1000, //最大加载瓦片个数
    shadows: false, //是否显示阴影
    skipLevelOfDetail: true, // 确定是否应在遍历期间应用详细级别跳过(默认false)
    baseScreenSpaceError: 1024, //When skipLevelOfDetailis true,在跳过详细级别之前必须达到的屏幕空间错误(默认1024)
    skipScreenSpaceErrorFactor: 16, // 定义要跳过的最小屏幕空间错误的乘数。与 一起使用skipLevels来确定要加载哪些图块(默认16)
    skipLevels: 1, //skipLevelOfDetail是true 一个常量,定义了加载图块时要跳过的最小级别数。为 0 时,不跳过任何级别。与 一起使用skipScreenSpaceErrorFactor来确定要加载哪些图块。(默认1)
    immediatelyLoadDesiredLevelOfDetail: false, //当skipLevelOfDetail是时true,只会下载满足最大屏幕空间错误的图块。忽略跳过因素,只加载所需的图块(默认false)
    loadSiblings: false, // 如果为true则不会在已加载完概况房屋后,自动从中心开始超清化房屋 --- 何时确定在遍历期间skipLevelOfDetail是否true始终下载可见瓦片的兄弟姐妹(默认false)
    cullWithChildrenBounds: true, //是否使用子边界体积的并集来剔除瓦片(默认true)
    dynamicScreenSpaceError: true, //减少距离相机较远的图块的屏幕空间错误(默认false)
    dynamicScreenSpaceErrorDensity: 0.00278, //数值加大,能让周边加载变快 --- 用于调整动态屏幕空间误差的密度,类似于雾密度(默认0.00278)
    dynamicScreenSpaceErrorFactor: 4.0, // 用于增加计算的动态屏幕空间误差的因素(默认4.0)
    dynamicScreenSpaceErrorHeightFalloff: 0.25, //密度开始下降的瓦片集高度的比率(默认0.25)
  });

  viewer.scene.primitives.add(tileSet);
  viewer.zoomTo(tileSet);
}

          调整倾斜摄影高度


//更新倾斜摄影位置
function update3dtilesMaxtrix(tileSet) {
  //调整参数
  let params = {
    tx: 113.06265738392063, //模型中心X轴坐标(经度,单位:十进制度)
    ty: 22.646803971034342, //模型中心Y轴坐标(纬度,单位:十进制度)
    tz: 40, //模型中心Z轴坐标(高程,单位:米)
    rx: 0, //X轴(经度)方向旋转角度(单位:度)
    ry: 0, //Y轴(纬度)方向旋转角度(单位:度)
    rz: 2, //Z轴(高程)方向旋转角度(单位:度)
    scale: 1.3, //缩放比例
  };
  //旋转
  const mx = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(params.rx));
  const my = Cesium.Matrix3.fromRotationY(Cesium.Math.toRadians(params.ry));
  const mz = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(params.rz));
  const rotationX = Cesium.Matrix4.fromRotationTranslation(mx);
  const rotationY = Cesium.Matrix4.fromRotationTranslation(my);
  const rotationZ = Cesium.Matrix4.fromRotationTranslation(mz);
  //平移
  const position = Cesium.Cartesian3.fromDegrees(
    params.tx,
    params.ty,
    params.tz
  );
  const m = Cesium.Transforms.eastNorthUpToFixedFrame(position);
  //旋转、平移矩阵相乘
  Cesium.Matrix4.multiply(m, rotationX, m);
  Cesium.Matrix4.multiply(m, rotationY, m);
  Cesium.Matrix4.multiply(m, rotationZ, m);
  //比例缩放
  const scale = Cesium.Matrix4.fromUniformScale(params.scale);
  Cesium.Matrix4.multiply(m, scale, m);
  console.log("矩阵m:", m);
  //赋值给tileset
  tileSet._root.transform = m;
}

        调用方式:


//加载倾斜摄影图像
function init3Dtiles() {
  const tileSet = new Cesium3DTileset({
    url: "http://127.0.0.1/data/tileset.json",
    //...代码省略,同上
  });

  viewer.scene.primitives.add(tileSet);
  viewer.zoomTo(tileSet);

  //调用方法
  //加载后调整倾斜摄影的位置、角度等参数
  tileSet.readyPromise.then((tileset) => {
    update3dtilesMaxtrix(tileset);
  });
}

到了这里,关于vue3结合Cesium加载倾斜摄影3dtiles的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Three.js开发神器-结合3DTiles插件加载倾斜摄影模型

    首先我们通过链接和图片来看看效果 演示Demo链接地址:https://n3gis.github.io/exportToThree(3.0).html?scene=Demo_4 使用到的软件(软件大家到Unity商城上搜索,Unity商城地址:https://assetstore.unity.com) Unity3D 3DTiles(Unity3D插件,用于加载OSGB格式的倾斜摄影数据) Export To Three.js(Unity3D插件,

    2023年04月20日
    浏览(29)
  • Vue2加载倾斜摄影

    WebGIS学习交流群461555818,欢迎大家。 vue3项目加载倾斜摄影的教程可见此人的教程,亲测可用 https://blog.csdn.net/qq_37750030/article/details/124680036 可是为什么到了vue2的老项目里面用不了呢? 原因在于这几个库,全是ts的! 而在vue2里面是不支持ts的,当然现在的新项目用脚手架创建

    2024年02月02日
    浏览(38)
  • cesium添加倾斜摄影

    在2023年7月的版本更新中上述写法已经不能用了,话说cesium的版本更新太快了,7月改了好多好多东西,注意留意官网变动消息吧

    2024年02月12日
    浏览(25)
  • Cesium 实战教程 - 调整 3dtiles 倾斜摄影大小

    之前由于误解遇到一个特殊的需求: 想要把三维球上叠加倾斜摄影进行自由放大缩小,跟随地图的缩放进行缩放。 后来经过搜索、尝试,终于实现了需求。 但是,后来发现是误解需求了,甲方只是需要放大缩小地图,不需要改变倾斜摄影的比例。 不过也算是学习了一个功能

    2024年02月12日
    浏览(30)
  • Unity倾斜摄影开发-Unity加载3DTiles格式的倾斜摄影模型

    首先看看Unity加载3DTiles格式的效果 首先使用上一章节生成的osgb格式的倾斜摄影模型,上节地址:Unity倾斜摄影开发-航拍图片生成3mx和OSGB模型_虚拟现实(微尘)的博客-CSDN博客 使用软件  Unity3d 3DTiles(Unity3d插件,大家可以到Unity商城中下载,下载地址:3DTiles | Modeling | Unity A

    2024年02月03日
    浏览(37)
  • vue结合Cesium加载gltf模型

    Cesium支持什么格式?         Cesium支持的格式包括:3D模型格式(如COLLADA、gITF、OBJ)、影像格式(如JPEG、PNG、GeoTIFF)、地形格式(如STL、Heightmap)、矢量数据格式(如GeoJSON、KMZ)、时间动态数据格式(如CZML),以及其他各种数据格式。此外,Cesium还通过插件支持其他特

    2024年02月01日
    浏览(29)
  • threejs加载3dtiles(倾斜摄影)数据

    使用npm 安装  或者去官网下载都行 GitHub - NASA-AMMOS/3DTilesRendererJS: Renderer for 3D Tiles in Javascript using three.js 首先引入,在填入3dtiles数据的地址,可以是文件路径也可以是网站路径 const tilesRenderer = new TilesRenderer( \\\'./path/to/tileset.json\\\' ); const tilesRenderer = new TilesRenderer( \\\'http://192.168.1.

    2024年02月16日
    浏览(30)
  • Unity加载3dTile倾斜摄影数据(WebGL)

    1.支持.b3dm(3dtile)格式倾斜摄影数据加载,支持osgb格式倾斜摄影数据加载 2.支持编辑器下加载预览,方便进行场景编辑 3.支持海量的数据量加载 4.多线程LOD算法动态加载卸载 5.支持urp,hdrp等渲染管线 6.支持PC,WebGL,Android平台发布 qq交流:1749568798 +VX : huazaikv 相关视频: unity

    2024年02月11日
    浏览(35)
  • mapbox+deck.gl加载倾斜摄影模型3dtiles

    做三维WebGIS开发的朋友们都知道,我们加载倾斜摄影模型,一般使用cesium加载3dtiles格式的数据很简单,官网和网上都有很多例子,这里也不再详细赘述。但是在使用cesium场景中我们会遇到这样一个问题,在加载整个球的时候其实是影响了性能的,在加载局部小场景的时候我们

    2024年02月02日
    浏览(49)
  • 【vue3.2+cesium】加载三维天地图

            使用Vite+Vue3.2+Cesium。Vite需要Node.js版本14.18+及以上版本。Vite命令创建的工程会自动生成vite.config.js文件,来配置一些相关的参数。 1、使用Vite创建vue3项目 #  npm npm init vite@latest cesium-app -- --template vue #  yarn  yarn create vite cesium-app --template vue #  pnpm  pnpm create vite cesium

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包