cesium基础知识汇总

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SummaryofbasicknowledgeofcesiumCesium基础知识汇总Cesium介绍••Cesium的目标是动态数据可视化的虚拟地球领导者,尽一切可能去优化性能、精度、效果,易用性、平台支撑、内容。Cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎。用来渲染3D地球,2D区域地图,和多种GIS要素。不需要安装任何插件就能在支持最新HTML5标准的浏览器上运行。支持WebGL硬件加速,非常适合动态数据在GIS图层上的展示,是一个跨平台,开源,非常有前途的webgis表现层库。Cesium是基于Apache2.0许可的开源程序。它可以免费的用于商业和非商业用途。1.Cesiumjs源自AnalyticalGraphics,Inc.(AGI)公司为他们客户开发一个虚拟地球项目,后来将cesium项目贡献给开源社区并一直活跃开发中。(AGI开发的STKTerrainServer是一种针对Cesium-应用的流式高分辨率服务器)另一个公司级的贡献者是NICTA(NationalICTAustralia)澳大利亚最大的信息与通讯技术中心,NICTA的员工们贡献了瓦片地图服务、地形处理等cesium的核心功能。并一直使用cesium开发环境监测分析、交通基础设施建模仿真优化等领域的应用。3.Cesium中支持载入3D模型,不过只支持gltf格式。gltf是khronos组织(起草OpenGL标准的哪个组织)定义的一种交换格式,用于互联网或移动设备上展现3d内容,充分支持opengl,webgl,opengles图形加速标准。gltf目前可以由collada格式转换而来,官网上也提供了一个转换工具。5.相对来说Cesium是比较适合webgis的,只要浏览器支持webgl就可以无需下载任何插件运行,目前大多数主流浏览器都支持webgl,包括很多手机自带的浏览器也逐渐开始支持webgl,因此webgl的普及也必定是大势所趋。Cesium功能通过Cesium提供的JSAPI,可以实现以下功能:•使用3dtiles格式流加载各种不同的3d数据,包含倾斜摄影、人工模型、三维建筑物、CAD、BIM,点云数据等。并支持样式配置和用户交互操作。并支持样式配置和用户交互操作•全球高精度地形数据可视化,支持夸张效果、以及可编程实现的等高线和坡度分析效果。•支持多种资源的图像层,包括WMS,TMS,WMTS以及时序图像。支持透明度叠加,亮度、对比度、GAMMA、色调、饱和度都可以动态调整。支持图像的卷帘对比。•支持标准的矢量格式KML、GeoJSON、TopoJSON,以及矢量的贴地效果。•三维模型支持gltf2.0标准的PBR材质、动画蒙皮和和变形效果。贴地以及高亮•使用CZML支持动态时序数据的展示。•支持各种几何体:点、线、面、标注、公告牌、立方球、椭球体、圆柱走廊(corridors)、管径、墙体•可视化效果包括:基于太阳位置的阴影、自身阴影,柔和阴影。•大气、雾、太阳、阳光、月亮、星星、水面。•粒子特效:烟、火花。•地形、模型3dtiles模型的面裁剪。•对象点选和地形点选。•支持鼠标和触摸操作的缩放、渲染、惯性平移、飞行、任意视角、地形碰撞检测。•支持3d地球、2d地图、2.5d哥伦布模式。3d视图可以使用透视和正视两种投影方式。•支持点、标注公告牌的聚集效果。Cesium坐标系统cesium坐标系统简介Cesium中常用的坐标系主要有两种:WGS84坐标系和笛卡尔空间直角坐标系。平时我们常见的某个点的经纬度就是在WGS84坐标系下某个点的坐标,它的坐标原点在椭球的质心;而笛卡尔坐标系主要是用来做空间位置的变化如平移、旋转和缩放等等,它的坐标原点在椭球的中心。除此之外,还有不常用的坐标系:1、平面坐标系(Cartesian2);2、笛卡尔空间直角坐标系(Cartesian3);3、Cartesian4(unknown,在应用中几乎用不到)4、Cartographic(地理坐标系下经纬度的弧度表示),通常情况下通过它和WGS84坐标系之间互转。Cesium在项目中的定位Cesium知识体系Cesium是一个跨界SDK,涉及三个知识领域:•Web前端、•计算机图形学•地理信息系统(GIS)Cesium开发准备准备你的页面在开始写代码之前,你需要完成以下几个步骤来准备你的页面,在官方网站下载Cesium包,拷贝里面的/Build/Cesium目录到自己的网站中(例如下面示例的lib/Cesium):•在页面的head标签中添加以下代码来引入CSS和JavaScript文件:linkhref==stylesheettype=text/css/scriptsrc==text/javascript/script•将id为cesiumContainer的div标签放到地图显示的地方,如body中:divid=cesiumContainer/div【可选】确保地图容器有定义好的高度,例如在css文件中添加如下代码:html,body,#cesiumContainer{height:100%;width:100%;margin:0;padding:0;overflow:hidden;}设置三维地球让我们创建一个使用本地瓦片地图的三维地图。首先,我们初始化地图,并添加底图图层:varurl==s&x={x}&y={y}&z={z};viewer=newCesium.Viewer(cesiumContainer,{animation:false,//是否创建动画小器件,左下角仪表timeline:false,//是否显示时间线控件fullscreenButton:false,//右下角全屏按钮geocoder:false,//是否显示地名查找控件baseLayerPicker:false,//是否显示图层选择控件imageryProvider:newCesium.UrlTemplateImageryProvider({url:url})});//去cesiumlogo水印viewer.cesiumWidget.creditContainer.style.display=none;现在你已经学会使用Cesium创建一个三维地图应用。如果想要继续开发更多功能,请查看详细的API文档和示例。Cesium学习路线Cesium_glTF数据glTF是WebGL、OpenGLES和OpenGL.运行时的asset格式。用于通过应用程序有效地传输和加载3D场景和模型。glTF使3D资产的大小以及拆包和使用这些资产所需的运行时处理最小化。glTF为3D内容工具和服务定义了一种可扩展的通用发布格式,该格式简化了创作工作流程,并可以在整个行业中互操作使用内容。Cesium_glTF模型Cesium_支持数据格式3Dtiles数据3DTiles是•Open(开放)•Optimizedforstreamingandrendering(针对流和渲染进行了优化)•Designedfor3D(专为3D设计)•Interactive(交互式互动)•Styleable(设置样式)•Adaptable(适应性强)•Flexible(灵活)•Heterogeneous(异构的)•Precise(精确)•Temporal(时间动态)3DTiles的主要目的是改善大规模异构数据集的流和渲染性能。3DTiles的基础是一种空间数据结构,它支持层次结构细节级别(HLOD),因此只有可见的图块才会被流式传输-并且只有那些对于给定3D视图最重要的图块。平铺有效载荷可以是二进制和上下文感知压缩的,例如,使用Open3DGC或oct编码。Cesium_3dtiles白模、BIM、倾斜摄影测量数据矢量数据3DTiles生态Cesium特效Cesium开发方向分类•Web前端方向:Cesium与webpack(裁剪以及压缩),Cesium与vue(框架设计,嵌入复杂业务系统),Cesium的UI(UI设计,定制可复用的Cesium交互界面)•图形学方向:WebGL深入,基于Cesium的可视化定制(视阈、水淹、水面、热力图,流场图、飞线图、扫描图•数据预处理方向:投影变换,空间索引,LOD,3dtile生成,数据存储,数据分发服务,解决超大空间数据如何在Cesium上流畅可视化的问题。THANKYOU感谢聆听,批评指导

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功