Cesium常用坐标系统和转换

Cesium常用坐标系统

1. 笛卡尔平面坐标(Cartesian2)

new Cesium.Cartesian2(x, y)

2. 笛卡尔空间直角坐标(Cartesian3)

new Cesium.Cartesian3(x, y, z)

3. 地理坐标(Cartographic)

注:默认弧度

new Cesium.Cartographic(longitude, latitude, height)

4. 屏幕坐标

项目实践过程中的坐标转换

这里是根据自己在项目中获取坐标的顺序来展示基本的坐标转换

1. 获取鼠标点在屏幕中的坐标

// 获取画布
var canvas = viewer.scene.canvas;

var mouseHander = new Cesium.ScreenSpaceEventHandler(canvas);

// 绑定鼠标左点击事件
mouseHander.setInputAction(function (event){
	// 获取鼠标点的windowPosition
	var windowPosition = event.position;
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);)

2. 屏幕坐标转换为笛卡尔空间直角坐标

var ray = viewer.camera.getPickRay(windowPosition);

var cartesian = viewer.scene.globe.pick(ray, viewer.scene);

3. 三维笛卡尔空间直角坐标转换为地理坐标

3.1 三维笛卡尔空间直角坐标转换为地理坐标(弧度)

var ellipsoid=viewer.scene.globe.ellipsoid;

var cartographic=ellipsoid.cartesianToCartographic(cartesian);

3.2三维笛卡尔空间直角坐标转换为地理坐标(经纬度)

var ellipsoid=viewer.scene.globe.ellipsoid;

var cartographic=ellipsoid.cartesianToCartographic(cartesian);

var lat=Cesium.Math.toDegrees(cartographic.latitude);
var lng=Cesium.Math.toDegrees(cartographic.longitude);
var alt=cartographic.height;

4.上述坐标转换的反向转换

4.1 经纬度转换为笛卡尔空间直角坐标

  • 直接转换
# Cesium.Cartesian3.fromDegrees(longitude, latitude, height, ellipsoid, result)
var position = Cesium.Cartesian3.fromDegrees(-115.0, 37.0);
  • 先转换为弧度,再进行转换
var ellipsoid=viewer.scene.globe.ellipsoid;
var cartographic=Cesium.Cartographic.fromDegrees(lng, lat, alt);
var cartesian = ellipsoid.cartographicToCartesian(cartographic);

4.2 笛卡尔空间直角坐标转换为屏幕坐标

var pick = Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene, cartesian);

常见的其他转换

此处仅举几个例子,详细内容大家可以参照各个坐标系统的API

1. 三维笛卡尔坐标转换为二维笛卡尔坐标

Cesium.Cartesian2.fromCartesian3(cartesian, result)

2. 弧度与经纬度的相互转换

  • 经纬度转换为弧度
Cesium.CesiumMath.toRadians(degrees) 
  • 弧度转换为经纬度
Cesium.CesiumMath.toDegrees(radians)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值