Cesium 获取鼠标点击坐标及世界坐标与弧度(经纬度)转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cesium 获取鼠标点击坐标及世界坐标与弧度(经纬度)转换相关的知识,希望对你有一定的参考价值。

参考技术A 获取鼠标点击坐标:

世界坐标与弧度(经纬度)转换

参考文章:https://blog.csdn.net/qq_34149805/article/details/78393540

https://www.e-learn.cn/topic/2611634

cesium 常用坐标

参考技术A 1.屏幕坐标(像素值)

2.笛卡尔平面坐标    new Cesium.Cartesian2(x,y)

3.笛卡尔空间直角坐标  new Cesium.Cartesian3(x,y,z)

4.地理坐标(默认为弧度值)new Cesium.Cartographic(longitude,latitude,height)

1.获取鼠标单击后在屏幕中的坐标

var hander=new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);

hander.setInputAction(function(event)      //绑定鼠标左点击事件

var windowPosition=event.position;            //鼠标点的windowPosition

,Cesium.ScreenSpaceEventType.LEFT_CLICK);

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

//三维模式下

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

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

//二维模式下

var cartesian=scene.camera.pickEllipsoid(position,scene.globe.ellipsoid);

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

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

4.笛卡尔空间直角坐标转换为地理坐标(弧度制)

var cartographic=Cesium.Cartographic.fromCartesian(cartesian)

5.地理坐标(弧度制)转换为笛卡尔空间直角坐标

var position =Cesium.Cartesian3.fromRadians(lng,lat,height)

6.笛卡尔空间直角坐标转化为  地理坐标(经纬度)

var cartographic=Cesium.Cartographic.fromCartesian(cartesian);

var lat=Cesium.Math.toDegrees(cartographic.latitude);

var lng =Cesium.Math.toDegrees(cartographic.longitude);

var height=cartographic.height;

(经纬度度数与弧度互转)

Cesium.Math.toRadians(degrees);

Cesium.Math.toDegrees(radians);

7.地理坐标(经纬度)转换为 笛卡尔空间直角坐标

var position =Cesium.Cartesian3.fromDegrees(long,lat,height);

以上是关于Cesium 获取鼠标点击坐标及世界坐标与弧度(经纬度)转换的主要内容,如果未能解决你的问题,请参考以下文章

cesium-坐标转换

Cesium坐标系及转换

Unity2D中让角色旋转朝向鼠标

Cesium三维地图入门教程

cesium常用方法汇集(工具篇)

cesium获取entity的坐标及高程