cesium 常用坐标

如题所述

第1个回答  2022-07-30
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);
相似回答