cesium之坐标

8次阅读

共计 2140 个字符,预计需要花费 6 分钟才能阅读完成。

1. 几种坐标

cesium 事件

1. 相机事件(移动开始、移动结束等等)viewer.scene.camera.moveEnd.addEventListener(function(){});2. 鼠标事件(单击、移动、右键等)var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(function (movement) {
     // 处理鼠标移动事件
     // 更新鼠标位置
    mousePosition = movement.endPosition;
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

handler.setInputAction(function(click) {
   // 处理鼠标按下事件
   // 获取鼠标当前位置
   mousePosition = click.position;
 }, Cesium.ScreenSpaceEventType.LEFT_DOWN);


3. 渲染事件(实时渲染,很关键的一个事件)
var renderEnd = viewer.scene.postRender.addEventListener(function(){});

> [提示信息][2]

pitch yaw roll 是什么

在航空中,pitch, yaw, roll 如图 2 所示。

pitch 是围绕 X 轴旋转,也叫做俯仰角,如图 3 所示。

yaw 是围绕 Y 轴旋转,也叫偏航角,如图 4 所示。

roll 是围绕 Z 轴旋转,也叫翻滚角,如图 5 所示。

实体(Entity)

model:
    minimumPixelSize 与 maximumScale 组合可以控制模型远近时候的大小
    availability: 代表该实体存在的有效时间,如下所示,availability : new Cesium.TimeIntervalCollection([new Cesium.TimeInterval({
        start : start,
        stop : stop
    })])

图层(viewer.imageryLayers/viewer.scene. imageryLayers)

得到影像图层的集合,将其渲染到球体上,它是一个 ImageryLayerCollection 类型的,可以通过 addImageryProvider()方法(返回值是 ImageryLayer 类型)进行添加, 参数是各个 provider(地图渲染引擎)。viewer.imageryLayers.addImageryProvider(new Cesium.PieMapServerImageryProvider({
       url: '//localhost:8082/service/v1/tile?map=dongsha',
        enablePickFeatures: false
    }));

大气、光照、雾效等环境特效

光照: scene.globe.enableLighting
雾效:scene.fog.enabled
大气:scene.skyAtmosphere

相机控制

Scene.ScreenSpaceCameraController:根据鼠标修改相机的方位,在里面可以选择是否禁用鼠标缩放、旋转等功能

时间控制

获取当前时间 var time = viewer.clock.currentTime;
viewer.clock.onTick.addEventListener(function(clock){
// 回调函数,时间变化就执行(即使停止时间轴仍然会执行。。。。)
});
JulianDate:代表天文朱利安时间,用的是世界协调时,比北京时间晚 8 个小时,它有 clone 方法,可避免时间被修改
var start = Cesium.JulianDate.fromDate(new Date(2015, 2, 25, 16));
var stop = Cesium.JulianDate.addSeconds(start, 360, new Cesium.JulianDate());//360 是秒
viewer.clock.startTime = start.clone();
viewer.clock.stopTime = stop.clone();
viewer.clock.currentTime = start.clone();
viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP;// 待研究
viewer.clock.multiplier = 1.0;// 倍数

关于地形

viewer.scene.globe.depthTestAgainstTerrain = true;
为 true 时,球体会有高程遮挡效果(在没有地形时候也会有高程遮挡效果)。

模型属性设置

对于加入 cesium 中的模型,一般用 entity。如若修改他们的属性,就可根据这两个类型向下寻找属性,不可修改它的私有属性。
获取单个模型,用 entity.getById()

去除版权信息

viewer._cesiumWidget._creditContainer.style.display = “none”;

Cesium 之 Primitive

博客
博客实例

正文完
 0