Cesium的屏幕坐标、世界坐标、WGS84坐标

5 篇文章 0 订阅
Cesium的坐标系

Cesium中常用的坐标系主要有两种:WGS84坐标系和笛卡尔空间直角坐标系。平时我们常见的某个点的经纬度就是在WGS84坐标系下某个点的坐标,它的坐标原点在椭球的质心;而笛卡尔坐标系主要是用来做空间位置的变化如平移、旋转和缩放等等,它的坐标原点在椭球的中心

  1. 笛卡尔平面坐标(Cartesian2)
new Cesium.Cartesian2(x, y)
  1. 笛卡尔空间直角坐标(Cartesian3)
new Cesium.Cartesian3(x, y, z)
  1. 地理坐标(Cartographic) lng,lat,height的单位为弧度
new Cesium.Cartographic(longitude, latitude, height)
单位说明

Cartesian3的单位为:米/米/米
Cartographic的单位为:弧度/弧度/米
使用是注意经纬伟度的单位:使用Cesium.Math.toDegrees({弧度}) 方法可将弧度输出为度

1.获取屏幕上的坐标
// 获取画布
var canvas = viewer.scene.canvas;
var mouseHander = new Cesium.ScreenSpaceEventHandler(canvas);

// 绑定鼠标左点击事件
mouseHander.setInputAction(function (event){
	// 获取鼠标点的windowPosition
	var windowPosition = event.position;
	console.log(windowPosition)
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);)
2.屏幕坐标转换为Cartesian3
var ray = viewer.camera.getPickRay(windowPosition);
var cartesian = viewer.scene.globe.pick(ray, viewer.scene);
console.log(cartesian )
3.Cartesian3转屏幕坐标
var windowPos = Cesium.SceneTransforms.wgs84ToWindowCoordinates(scene, Cartesian3);
console.log(windowPos );

4.Cartesian3转Cartesian2

Cesium.Cartesian2.fromCartesian3(cartesian, result)

5.WGS84转Cartesian3

Cesium.Cartesian3.fromDegrees(longitude, latitude, height, ellipsoid, result)
6.Cartesian3转WGS84坐标
var ellipsoid = viewer.scene.globe.ellipsoid;
var xyz = new Cesium.Cartesian3(x, y, z);
var wgs84 = ellipsoid.cartesianToCartographic(xyz);
// 这时输出的wgs84为弧度单位,需要转为度可参考如下代码
// Cesium.Math.toDegrees(wgs84.longitude)
// Cesium.Math.toDegrees(wgs84.latitude)
// Cesium.Math.toDegrees(wgs84.height)
7. WGS84度转弧度
var coord_wgs84 = Cesium.Cartographic.fromDegrees(lng, lat, alt)
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值