Cesium加载模型两种方式
Cesium加载模型两种方式
代码如下
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>加载离线arcgis卫星、天地图标签、风机模型</title><link rel="stylesheet" href="../Build/Widgets/widgets.css" /><script src="../Build/Cesium.js"></script></head><body><div id="cesiumContainer" style="width: 100%;height: 900px;background-color: rosybrown;"></div></body><script>var viewer = new Cesium.Viewer('cesiumContainer',{ //需要进行可视化的数据源的集合animation: false, //是否显示动画控件shouldAnimate : true,homeButton: false, //是否显示Home按钮fullscreenButton: false, //是否显示全屏按钮baseLayerPicker: false, //是否显示图层选择控件geocoder: false, //是否显示地名查找控件timeline: false, //是否显示时间线控件sceneModePicker: true, //是否显示投影方式控件navigationHelpButton: false, //是否显示帮助信息控件infoBox: false, //是否显示点击要素之后显示的信息requestRenderMode: true, //启用请求渲染模式scene3DOnly: false, //每个几何实例将只能以3D渲染以节省GPU内存sceneMode: 3, //初始场景模式 1 2D模式 2 2D循环模式 3 3D模式 Cesium.SceneModefullscreenElement: document.body, //全屏时渲染的HTML元素 暂时没发现用处imageryProvider : new Cesium.WebMapTileServiceImageryProvider({url: 'http://t0.tianditu.com/img_w/wmts?',layer: 'img',style: 'default',format: 'tiles',tileMatrixSetID: 'w',credit: new Cesium.Credit('天地图全球影像服务'),})});// 启用地球照明//viewer.scene.globe.enableLighting = true;//全球影像中文注记服务viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({url: "http://t0.tianditu.com/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg",layer: "tdtAnnoLayer",style: "default",format: "image/jpeg",tileMatrixSetID: "GoogleMapsCompatible",maximumLevel: 13,minimumLevel: 1,show: false}));//飞行定位viewer.scene.camera.flyTo({destination: new Cesium.Cartesian3.fromDegrees(109,34,3000),orientation: {heading : Cesium.Math.toRadians(20.0), // 方向pitch : Cesium.Math.toRadians(-90.0),// 倾斜角度roll : 0},duration:1});/*** 删除所有实体模型*/viewer.entities.removeAll();var position=Cesium.Cartesian3.fromDegrees(109,34, 0);addFengjiModel(position);addFengjiModel2();function addFengjiModel(position){var hpRoll = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(180), 0, 0);var orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpRoll);var color=Cesium.Color.LIME ;// 添加模型var model = viewer.entities.add({// 模型id// id:'model',// 模型位置position: position,// 模型方向orientation: orientation,// 模型资源model: {// 模型路径uri: '../model/fengji.gltf',// 模型最小刻度minimumPixelSize: 128,
// // 模型最大刻度maximumSize: 128,//设置模型最大放大大小maximumScale : 200,// 模型是否可见show: true,// 模型轮廓颜色silhouetteColor:Cesium.Color.WHITE,// 模型颜色 ,这里可以设置颜色的变化color: color ,// 仅用于调试,显示魔仙绘制时的线框debugWireframe : false,// 仅用于调试。显示模型绘制时的边界球。debugShowBoundingVolume : false,scale:10,runAnimations:true //是否运行模型中的动画效果},// 添加描述description: '风机模型'});// 视角切换到模型//viewer.trackedEntity = model;}function addFengjiModel2(){var position = Cesium.Cartesian3.fromDegrees(109.02,34.02,0);// 设置模型方向var hpRoll = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(45), 0, 0);// 生成一个函数,该函数从以提供的原点为中心的参考帧到提供的椭圆体的固定参考帧计算4x4变换矩阵。var fixedFrame = Cesium.Transforms.localFrameToFixedFrameGenerator('north','west');var scene = viewer.scene;scene.primitives.add(Cesium.Model.fromGltf({// 资源路径url: '../model/fengji.gltf',// 模型矩阵modelMatrix: Cesium.Transforms.headingPitchRollToFixedFrame(position, hpRoll, Cesium.Ellipsoid.WGS84, fixedFrame, position),// 模型最小刻度minimumPixelSize: 128,// 模型标尺scale : 2.0,// 模型最大刻度maximumScale: 20000,// 仅用于调试。显示模型绘制时的边界球。debugShowBoundingVolume : false,// 仅用于调试,显示魔仙绘制时的线框debugWireframe : false}));}</script>
</html>
Cesium加载模型两种方式相关推荐
- jsp页面数据加载的两种方式
JSP数据加载的两种方式 第一种: 三层架构写在controller的页面跳转前面,set到request域中 request.setAttribute("name", list) ...
- Android实现资源动态加载的两种方式
这是Android Apk源加载机制原理分析以及动态加载实现系列文章 的最后一篇.经过前两篇的介绍之后,相关基础都讲的差不多了,现在要实现自己项目中的资源加载框架,这里提供两种方式,区别在于由谁来加载 ...
- vue路由懒加载的两种方式
1.当一个vue项目很大的时候,对于一些"暂时"用不到的组件,我们可以不进行加载,等到用到次组件时再加载.这样可以优化spa应用首次加载白屏情况,也给用户更好的体验.这样就是vue ...
- servlet加载资源两种方式-内外(初始化参数).properties文件
在servlet中加载资源很方便,通过servletContext,这个是web服务器加载完web项目返回的参数之一,还有servletConfig,得到web项目一些配置信息,request和res ...
- xib加载的两种方式
•Xib文件的加载 Ø方法1 NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"AppView" owner:nil op ...
- 百度地图测加载的两种 方式 直接加载和异步加载
1.直接加载 <html> <head><meta http-equiv="Content-Type" content="text/html ...
- swift 中加载nib两种方式
1, 2,
- 页面加载的几种方式和区别
目录 页面加载的几种方式 DOM文档加载步骤 原生JS的 ready阶段 执行方法怎么写? 全部方式的演示代码 window和document的区别 页面加载的几种方式(原生JS和jQuery) 1. ...
- 静态链接库(LIB)和动态链接库(DLL),DLL的静态加载和动态加载,两种LIB文件。
静态链接库(LIB)和动态链接库(DLL),DLL的静态加载和动态加载,两种LIB文件. 一. 静态链接库(LIB,也简称"静态库")与动态链接库(DLL,也简称"动态库 ...
最新文章
- oracle技术之Oracle 跟踪事件(一)
- Oracle必知基础总结
- 从Spring-Session源码看Session机制的实现细节
- Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式
- Python实现行转列?!超简单,赶快get起来
- 谷歌地图添加点击事件 Google Maps API V3: Add click event listener to all (multiple) marker
- python编写dll_python调用c/c++写的dll
- Android ListView常用用法(二)
- Vijos P1571 笨笨的导弹攻击【最长上升子序列+DP】
- 类和对象的基本理解与使用
- VS2015 fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “stdafx.h”
- word多个文档标签显示在一个窗口
- 澜沧江某水电站下坝址坝址初步设计
- 调手表(蓝桥杯2018年B组真题)
- 一点点读懂cpufreq(二)
- 2014阿里实习生面试题——mysql如何实现索引的
- Docker 启动Redis
- 关于使用Intellij Idea时java系统找不到指定文件的解决方案
- oracle数字转换成人民币大写
- 做好数据战略规划,激活数据价值