本文目录一览:
- 1、Cesium快速上手3-Billboard Label PointPrimitives图元使用讲解
- 2、cesium如何改变地图gamma某一块区域的透明度
- 3、Cesium的扩展工具包-EarthSDK使用指南1
Cesium快速上手3-Billboard Label PointPrimitives图元使用讲解
面朝屏幕的图片
;label=Development
//链式返回,new Cesium.BillboardCollection() 生成一个对象,这个对象是另一个scene.primitives.add的参数
//position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883)
//position 空间直角坐标系,由经纬度坐标转换而来;这里的经纬度省略了Z的参数
// 可以增加一句 var height = Cesium.defaultValue(444444);
// position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883,height )
sizeInMeters : true, //图像的尺寸被指定成图像实际的尺寸,不随地图的缩放而变换大小
一次创建多个
//scaleByDistance 设置屏幕像素缩放比,150米的时候放大一倍,150000米的时候,缩放到0.5
//Cesium.NearFarScalar四个值,最近的距离,最远的距离,缩放比例范围
translucencyByDistance 改动透明度,地球缩放到很小时,透明度增大
pixelOffset : new Cesium.Cartesian2(0.0, -facilityHeight), //在原位置上偏移,防止叠在一起看不到了
pixelOffsetScaleByDistance : new Cesium.NearFarScalar(1.0e3, 1.0, 1.5e6, 0.0), //随着距离改变偏移量
translucencyByDistance : new Cesium.NearFarScalar(1.0e3, 1.0, 1.5e6, 0.1)//随着距离改变透明度
添加点的公告牌
增加marker的公告牌
在框架体系中增加广告牌,平移旋转缩放,全部围绕着billboards.modelMatrix
平移到某一点后,旋转X轴转到朝东,Y转到朝北,z轴转到正上方。
billboards.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(center);
特点:
始终面朝屏幕,即使旋转也面朝屏幕
注意创建的集群对象 Cesium.BillboardCollection
为什么不能创建单个Billboard?Entity来解决此问题
面朝屏幕的文字
;label=Development
特点:
始终朝向屏幕
注意创建的是集群对象 Cesium.LabelCollection()
Label对象只能用在LabelCollection当中
;label=Development
cesium如何改变地图gamma某一块区域的透明度
场景色调透明度设置。
fxaa确实能够改善文本和图片的清晰度,API文档上fxaa属性的介绍:Whentrue,enablesFastApproximateAnti-aliasingevenwhenorderindependenttranslucencyisunsupported。即开启fxaa能够启用图片抗锯齿的功能,但是不知道为啥会导致图片模糊,关掉之后会清晰很多。
直接用canvas绘制图片或者文本图形比直接调用Cesium接口绘制要清晰很多。
Cesium的扩展工具包-EarthSDK使用指南1
Cesium作为三维GIS和BIM应用的主力引擎,目前已经受到越来越多的开发者的青睐。这两年笔者也一直做Cesium相关的开发工作,真切地感受到Cesium的强大,其丰富的API、丰富的示例为开发三维GIS/BIM应用提供了极大的便利。
为了进一步丰富Cesium的开发生态,我们把之前在Cesium基础上开发的功能,以及大量的改良功能,封装成若干个独立的js包。这样也避免开发者重复造轮子。对于大屏展示、C端替代等直接本地部署Cesium的应用场景,可以直接免费使用我们封装的EarthSDK扩展包。
EarthSDK中主要包括XbsjEarth.js和XbsjCesium.js两个js包。
XbsjCesium.js用来扩展Cesium所不具备的三维可视化功能,例如视频融合、分析工具、模型压平等。
XbsjEarth.js则主要目标在于封装出更加易于使用的API接口,尽可能屏蔽掉前端开发工程师所不熟悉的图形学、GIS相关内容。会在Cesium的基础上封装好一些复杂的交互操作,并提供极其简单的API接口方便调用。
EarthSDK从前端开发者的角度考虑设计API,大部分类的属性都是响应式设计,通过简单操作即可监控相应的属性变化,通过bind方便可以实现属性的相互绑定。特别针对Vue的开发者,实现了和vue的响应式属性的无缝融合。具体可以参考这篇文章的介绍: 三维应用的响应式设计探索 。
之前使用过ECharts的同学可能对ECharts的操作简单印象深刻。ECharts相当于把大量的API转成配置式,真正使用时,只需要通过setOptions来进行一个大JSON对象的配置,即可完成图表的创建。
EarthSDK的API设计也是受ECharts的启发,会尽量减少不需要的API,减轻开发者的记忆负担。只需要通过一个大JSON配置,就可以完成整个场景的搭建。
而且,EarthSDK比ECharts更进一步,可以直接修改相应的属性,即可完成三维场景的动态变化。而ECharts则需要不停地调用setOption来进行配置。以后的文章中会详细说明此特性。
EarthSDK创建场景后,内置viewer和scene对象,用户可以通过viewer或者scene来向场景中添加Cesium的原生对象,和调用所有原生的Cesium API函数。
为了更易于理解EarthSDK的使用,我们开发了一个样例程序 XbsjEarthUI(这个程序也同时集成到了CesiumLab中)。此样例程序已经开源放在Github和Gitee上,基于MIT协议,用户可以任意修改。
XbsjEarthUI在github上的地址:
XbsjEarthUI在gitee上的地址:
EarthSDK可以加载百度地图、高德地图等三十多种地图数据,并可以做到实时纠偏。
交通安防领域需要用到的视频监控、视频融合功能。可以将视频映射到倾斜摄影、BIM模型上(3dtiles模型),视频会覆盖到非平面物体上,不会出现闪烁等现象。
针对模型位置、姿态进行编辑。方便进行多个模型数据组合使用。并且这里的模型位置编辑可以很方便的在全球任意位置拖放。
结合CesiumLab数据生产,使用EarthSDK调整数据后期亮度,可以做出较好的特效。方便进行大屏展示。
可以指定模型数据显示在某一个视口,方便进行方案对比等操作。
Cesium的地面本身不能做到透明显示,我们进行改进,使得透明度可以实时调节。
动态实现视域分析效果。
可以对路径进行编辑,编辑好的路径,可以用于控制相机的漫游,也可以控制物体的移动。
对原始Cesium的标签效果进行改进,并可以使用类似html5标签增加onClick属性,来自动执行自定义操作。