前言

cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材。

内容概览

1.基于cesium 实现 3d-tiles 平移旋转贴地
2.源代码 demo 下载

本篇实现 3d-tiles 平移旋转贴地,效果图如下:

实现思路:核心就是根据旋转、平移矩阵相乘来改变调整 3d-tiles 模型,利用 cesium 函数 Cesium.Matrix3.fromRotationX、Cesium.Matrix3.fromRotationY、Cesium.Matrix3.fromRotationZ、Cesium.Matrix4.fromRotationTranslation、Cesium.Matrix4.multiply等等

  • 界面滑条动态调整模型位置:
  • var buttonx1 = document.getElementById('buttonx-');
  • var buttonx2 = document.getElementById('buttonx+');
  • var buttonx3 = document.getElementById('buttony-');
  • var buttonx4 = document.getElementById('buttony+');
  • var sliderx = document.getElementById('slider-x');
  • var sliderValuex = document.getElementById('slider-value-x');
  • var slidery = document.getElementById('slider-y');
  • var sliderValuey = document.getElementById('slider-value-y');
  • var sliderHeight = document.getElementById('slider-Height');
  • var sliderValueHeight = document.getElementById('slider-value-Height');
  • var sliderRotateX = document.getElementById('slider-RotateX');
  • var sliderValueRotateX = document.getElementById('slider-value-RotateX');
  • var sliderRotateY = document.getElementById('slider-RotateY');
  • var sliderValueRotateY = document.getElementById('slider-value-RotateY');
  • var sliderRotateZ = document.getElementById('slider-RotateZ');
  • var sliderValueRotateZ = document.getElementById('slider-value-RotateZ');
  • window.onload = function (){
  • buttonx1.addEventListener('click', function(e) {
  • params.tx = params.tx - 0.0001;
  • if (isNaN(params.tx)) {
  • return;
  • }
  • sliderValuex.textContent = params.tx;
  • update3dtilesMaxtrix(tileset);
  • });
  • buttonx2.addEventListener('click', function(e) {
  • params.tx = params.tx + 0.0001;
  • if (isNaN(params.tx)) {
  • return;
  • }
  • sliderValuex.textContent = params.tx;
  • update3dtilesMaxtrix(tileset);
  • });
  • sliderx.addEventListener('input', function(e) {
  • sliderValuex.textContent = e.target.value;
  • params.tx = Number(e.target.value);
  • if (isNaN(params.tx)) {
  • return;
  • }
  • update3dtilesMaxtrix(tileset);
  • });
  •  
  • buttonx3.addEventListener('click', function(e) {
  • params.ty = params.ty - 0.0001;
  • if (isNaN(params.ty)) {
  • return;
  • }
  • sliderValuey.textContent = params.ty;
  • update3dtilesMaxtrix(tileset);
  • });
  • buttonx4.addEventListener('click', function(e) {
  • params.ty = params.ty + 0.0001;
  • if (isNaN(params.ty)) {
  • return;
  • }
  • sliderValuey.textContent = params.ty;
  • update3dtilesMaxtrix(tileset);
  • });
  • slidery.addEventListener('input', function(e) {
  • sliderValuey.textContent = e.target.value;
  • params.ty = Number(e.target.value);
  • if (isNaN(params.ty)) {
  • return;
  • }
  • update3dtilesMaxtrix(tileset);
  • });
  •  
  • sliderHeight.addEventListener('input', function(e) {
  • sliderValueHeight.textContent = e.target.value;
  • params.tz = Number(e.target.value);
  • if (isNaN(params.tz)) {
  • return;
  • }
  • update3dtilesMaxtrix(tileset);
  • });
  •  
  • sliderRotateX.addEventListener('input', function(e) {
  • sliderValueRotateX.textContent = e.target.value;
  • params.rx = Number(e.target.value);
  • if (isNaN(params.rx)) {
  • return;
  • }
  • update3dtilesMaxtrix(tileset);
  • });
  •  
  • sliderRotateY.addEventListener('input', function(e) {
  • sliderValueRotateY.textContent = e.target.value;
  • params.ry = Number(e.target.value);
  • if (isNaN(params.ry)) {
  • return;
  • }
  • update3dtilesMaxtrix(tileset);
  • });
  •  
  • sliderRotateZ.addEventListener('input', function(e) {
  • sliderValueRotateZ.textContent = e.target.value;
  • params.rz = Number(e.target.value);
  • if (isNaN(params.rz)) {
  • return;
  • }
  • update3dtilesMaxtrix(tileset);
  • });
  • }
  • 核心函数:

更多详情见下面链接文章

GIS之家小专栏此文章

文章提供源码,对本专栏感兴趣的话,可以关注一波

cesium 实现 3d-tiles 平移旋转贴地(附源码下载)的更多相关文章

  1. Cesium专栏-空间分析之坡度分析(附源码下载)

    Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...

  2. Cesium专栏-空间分析之地形等高线(附源码下载)

    Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...

  3. cesium 之地图切换展示效果篇(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  4. cesium 之加载地形图 Terrain 篇(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  5. 使用 CSS3 实现 3D 图片滑块效果【附源码下载】

    使用 CSS3 的3D变换特性,我们可以通过让元素在三维空间中变换来实现一些新奇的效果. 这篇文章分享的这款 jQuery 立体图片滑块插件,利用了 3D transforms(变换)属性来实现多种不 ...

  6. Cesium专栏-雷达遮罩动态扫描(附源码下载)

    Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以 ...

  7. Cesium专栏-地形开挖2-任意多边形开挖(附源码下载)

    “任意多边形地形开挖” 是“地形开挖”的补充篇,在这节里,我们介绍关于如何使用任意多边形对地形进行开挖,同时,由于有不少小伙伴也咨询了关于“地形开挖”篇后序内容中的填充地形的效果,之前没放出来,是想让 ...

  8. cesium 实现风场图效果(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  9. Cesium专栏-填挖方分析(附源码下载)

    Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以 ...

随机推荐

  1. 新手小白的Linux学习之路

    大家好,我是一个零基础的新手小白,在此和大家分享一下新手小白的学习之路.欢迎各位大神指教!谢谢 Linux简介: Linux操作系统诞生于1991年10月,由芬兰赫尔辛基大学的在校生Linus Tor ...

  2. Weblogic 12c 的 Apache HTTP Server 整合插件(Plug-In)下载地址

    资料来源:到哪里下载Weblogic 12c 的Plug-In 为 Apache HTTP Server 摘录如下: 最新的Weblogic 12c不再为 Apache HTTP Server提供缺省 ...

  3. SqlServer2005 查询 第七讲 order by

    今天我们来讲sql命令中的参数order by的用法 order by order by:可以理解成[以某个字段排序] order by a,b // a和b都按升序 order by a,b des ...

  4. [笔记]IDEA使用笔记

    1.IDEA的目录结构 2.所有的源文件都必须写在src文件夹下, 3.输入psvm再按回车,就会生成主函数: 4.输入sout就会生成输出语句的格式: 5.ALT+4   调出上次运行的结果出来看看 ...

  5. [LC] 112题 路径总和(在二叉树里判断是否有哪条路径之和等于某个值)

    ①题目 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum ...

  6. [Git]Git常用命令速查手册

    看的别人的文章,来源:https://mp.weixin.qq.com/s/SGRcE9EPOu4Tph65tzPzQw

  7. java编程思想第四版第十三章字符串 习题

    fas 第二题 package net.mindview.strings; import java.util.ArrayList; import java.util.List; /** * 无限循环 ...

  8. ZeroC ICE的协议

  9. 解构ffmpeg(二)

    通过比较DirectShow和ffmpeg两者的FilterGraph,分析ffmpeg的FilterGraph运作. 首先FilterGraph是一个图,图由点和边构成.在FilterGraph中的 ...

  10. 【NServiceBus】什么是Saga,Saga能做什么

    前言           Saga单词翻译过来是指尤指古代挪威或冰岛讲述冒险经历和英雄业绩的长篇故事,对,这里强调长篇故事.许多系统都存在长时间运行的业务流程,NServiceBus使用基于事件驱动的 ...