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 获取鼠标点击坐标及世界坐标与弧度(经纬度)转换的主要内容,如果未能解决你的问题,请参考以下文章