// 鼠标点击监听位置
function initPosition(){
var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(function (movement) {
// 屏幕坐标(二维坐标)
var twoSpace = movement.position;
console.log("屏幕坐标(二维坐标)", twoSpace);
// 二维坐标转世界坐标
var worldSpace = viewer.scene.camera.pickEllipsoid(movement.position, viewer.scene.globe.ellipsoid);
console.log("二维坐标——》世界坐标", worldSpace);
// 世界坐标转地理坐标(弧度)
var geographySpace = viewer.scene.globe.ellipsoid.cartesianToCartographic(worldSpace);
console.log("世界坐标——》地理坐标(弧度)", geographySpace);
var geographySpace = Cesium.Cartographic.fromCartesian(worldSpace);
console.log("世界坐标——》地理坐标(弧度)", geographySpace);
// 世界坐标转屏幕坐标
var twoSpace = Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene, worldSpace);
console.log("世界坐标——》屏幕坐标", twoSpace);
// 二维屏幕坐标系到三维坐标系的转换
var threeSpace = viewer.scene.globe.pick(viewer.camera.getPickRay(twoSpace), viewer.scene);
console.log("二维坐标——》三维坐标", threeSpace);
// 三维坐标到地理坐标的转换
var geographySpace = viewer.scene.globe.ellipsoid.cartesianToCartographic(threeSpace);
console.log("三维坐标——》地标坐标(弧度)", geographySpace);
var geographySpace = Cesium.Cartographic.fromCartesian(threeSpace)
console.log("三维坐标——》地标坐标(弧度)", geographySpace);
// 地理坐标到经纬度坐标的转换
var longitudeAndLatitude = [geographySpace.longitude / Math.PI * 180, geographySpace.latitude / Math.PI * 180, geographySpace.height];
console.log("地标坐标(弧度)——》经纬度坐标", longitudeAndLatitude);
var longitude = Cesium.Math.toDegrees(geographySpace.longitude);
var latitude = Cesium.Math.toDegrees(geographySpace.latitude);
var height = geographySpace.height;
console.log("地标坐标(弧度)——》经纬度坐标:经度",longitude,"| 纬度",latitude,"| 高度",height);
console.log("地标坐标(弧度)——》经纬度坐标:经度",longitude.toFixed(3),"| 纬度",latitude.toFixed(3),"| 高度",height.toFixed(1));
// 经纬度坐标转地理坐标(弧度)
var geographySpace = Cesium.Cartographic.fromDegrees(longitude, latitude, height);//单位:度,度,米
console.log("经纬度坐标——》地理坐标(弧度)", geographySpace);
// 经纬度坐标转世界坐标(先转换成弧度再转换)
var geographySpace = Cesium.Cartographic.fromDegrees(longitude, latitude, height);
var worldSpace = viewer.scene.globe.ellipsoid.cartographicToCartesian(geographySpace);
console.log("经纬度坐标——》世界坐标", worldSpace);
// 经纬度转三维坐标
var threeSpace = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);
console.log("经纬度坐标——》三维坐标", threeSpace);
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
}
Cesium零散知识点(一):鼠标点击监听位置及坐标转换
猜你喜欢
转载自blog.csdn.net/zy123698745/article/details/91046500
今日推荐
周排行