cesium 漫游飞行_cesium 飞行后保持视角

本文介绍了一种实现Cesium地图漫游飞行时保持视角的方法:获取当前相机位置,屏幕中心点位置,计算经度差和纬度差,并调整飞行目标。注意,当飞行引起高度变化时,需另外计算比例。
摘要由CSDN通过智能技术生成

思路:

1、获取当前相机位置  P1

2、获取屏幕中心点位置 P2

3、计算亮点的经度差和纬度差

4、飞行的目标减去dx、dy

注: 当飞行前后高度变化时,此方法不适用,需另外计算比例。

var p = viewer.camera._positionCartographic

var left = $('#cesiumContainer').offset().left

var top = $('#cesiumContainer').offset().top

var width = parseFloat($('#cesiumContainer').css('width').split('px')[0])

var height = parseFloat($('#cesiumContainer').css('height').split('px')[0])

var x = left + width / 2

var y = top + height / 2

var _center = new Cesium.Cartesian2(x, y);

var __center = viewer.scene.globe.pick(viewer.camera.getPickRay(_center), viewer.scene);

var center = viewer.scene.globe.ellipsoid.cartesianToCartographic(__center);

dx = (center.longitude - p.longitude) / Math.PI * 180

dy = (center.latitude - p.latitude) / Math.PI * 180

var heading = viewer.camera.heading

var pitch = viewer.camera.pitch

var height = p.height

viewer.camera.flyTo({

destination: Cesium.Cartesian3.fromDegrees(116.4997625442 - dx, 39.9843650681 - dy, height ),

orientation: {

heading: heading ,

pitch: pitch

}

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值