当前位置: 首页> 房产> 政策 > 四川建设厅证件查询_电商该怎么做起_奶茶的营销推广软文_营销策略包括哪些方面

四川建设厅证件查询_电商该怎么做起_奶茶的营销推广软文_营销策略包括哪些方面

时间:2025/8/15 10:41:56来源:https://blog.csdn.net/m0_72030584/article/details/147575074 浏览次数:0次
四川建设厅证件查询_电商该怎么做起_奶茶的营销推广软文_营销策略包括哪些方面

🌏 趣味学习Cesium坐标转换 🚀

📍 坐标系统的"平行宇宙"

想象一下,Cesium中的坐标系就像不同的平行宇宙,每个宇宙都用自己的"语言"来描述同一个位置:

穿越门户
穿越门户
穿越门户
穿越门户
地球
WGS84宇宙 (经纬度)
笛卡尔宇宙 (XYZ)
屏幕宇宙 (屏幕像素)

⭐ 重点: Cesium中存在3种主要坐标系统,需要在它们之间自由转换

🗺️ 坐标系统的"身份证"

坐标系统说明形式应用场景
🌐 WGS84地球的"经纬度语言"(经度,纬度,高度)定位、导航、地理信息
📊 笛卡尔坐标3D空间的"数学语言"(x,y,z)三维计算、动画、渲染
🖥️ 屏幕坐标屏幕的"像素语言"(x,y)交互、UI显示、鼠标事件

🔄 坐标转换"魔法咒语"

1️⃣ 从WGS84到笛卡尔的魔法 🧙‍♂️

fromDegrees()
经纬度坐标
(lon, lat, height)
笛卡尔坐标
(x, y, z)

魔法咒语:

// 单点转换
const position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);// 多点转换
const positions = Cesium.Cartesian3.fromDegreesArray([lon1, lat1, lon2, lat2]);

2️⃣ 从笛卡尔到WGS84的魔法 🔮

cartesianToCartographic()
toDegrees()
笛卡尔坐标
(x, y, z)
弧度坐标
(rad_lon, rad_lat, h)
经纬度坐标
(lon, lat, height)

魔法咒语:

const cartographic = viewer.scene.globe.ellipsoid.cartesianToCartographic(cartesian);
const longitude = Cesium.Math.toDegrees(cartographic.longitude);
const latitude = Cesium.Math.toDegrees(cartographic.latitude);
const height = cartographic.height;

3️⃣ 屏幕与世界的穿越 🌌

pickPosition()
worldToWindowCoordinates()
屏幕坐标
(x, y)
世界坐标
(x, y, z)
世界坐标
(x, y, z)
屏幕坐标
(x, y)

魔法咒语:

// 屏幕→世界
const worldPosition = viewer.scene.pickPosition(new Cesium.Cartesian2(x, y));// 世界→屏幕
const windowPosition = Cesium.SceneTransforms.worldToWindowCoordinates(scene, position);

🎮 坐标转换冒险游戏

想象你是一名空间魔法师,要完成以下任务:

任务1:📱 触摸屏幕获取地理位置

// 1. 获取屏幕点击位置
const screenPosition = new Cesium.Cartesian2(clickX, clickY);// 2. 转换为世界坐标
const worldPosition = viewer.scene.pickPosition(screenPosition);// 3. 世界坐标转为地理坐标
const geographicPosition = Cesium.Cartographic.fromCartesian(worldPosition);
const longitude = Cesium.Math.toDegrees(geographicPosition.longitude);
const latitude = Cesium.Math.toDegrees(geographicPosition.latitude);// 恭喜!你找到了宝藏的位置:(longitude, latitude)

任务2:📏 测量两点距离

// 1. 将两个经纬度点转为笛卡尔坐标
const position1 = Cesium.Cartesian3.fromDegrees(lon1, lat1, height1);
const position2 = Cesium.Cartesian3.fromDegrees(lon2, lat2, height2);// 2. 计算两点间距离
const distance = Cesium.Cartesian3.distance(position1, position2);// 恭喜!两点间距离为:distance 米

📝 实用坐标转换"食谱"

🍳 "经纬度转笛卡尔"食谱

function 经纬度转笛卡尔(经度, 纬度, 高度=0) {return Cesium.Cartesian3.fromDegrees(经度, 纬度, 高度);
}

🥘 "笛卡尔转经纬度"食谱

function 笛卡尔转经纬度(cartesian) {// 1. 获取弧度形式的坐标const cartographic = Cesium.Cartographic.fromCartesian(cartesian);// 2. 转换为角度return {经度: Cesium.Math.toDegrees(cartographic.longitude),纬度: Cesium.Math.toDegrees(cartographic.latitude),高度: cartographic.height};
}

🍲 "屏幕转地理位置"食谱

function 屏幕点击转地理位置(屏幕X, 屏幕Y) {// 1. 屏幕坐标→射线const ray = viewer.camera.getPickRay(new Cesium.Cartesian2(屏幕X, 屏幕Y));// 2. 射线与地球相交const position = viewer.scene.globe.pick(ray, viewer.scene);// 3. 转为经纬度return 笛卡尔转经纬度(position);
}

💡 坐标转换的"过三关"

WGS84
笛卡尔
屏幕
WGS84
笛卡尔
屏幕
起点
第一关: 确定坐标系
使用经纬度
使用XYZ
使用像素坐标
第二关: 确定目标坐标系
cartesianToCartographic\ntoDegrees
fromDegrees\nfromRadians
worldToWindowCoordinates
第三关: 应用

⭐ 重点提示:

  1. 坐标转换的核心是明确起始坐标系和目标坐标系
  2. 笛卡尔坐标是Cesium内部计算的基础
  3. 所有从屏幕到真实世界的交互都需要坐标转换

🎭 坐标系角色扮演

想象三个坐标系是三种不同的人:

  • WGS84: 一位地理学家,喜欢用"东经120度,北纬30度"这样的方式描述位置
  • 笛卡尔: 一位数学家,总是用"X=100, Y=200, Z=300"的方式思考
  • 屏幕坐标: 一位像素艺术家,只认识"左边500像素,顶部300像素"的语言

要让这三个人相互理解,你需要不断进行"翻译"——这就是坐标转换!

📚 学习小贴士

  1. 先理解概念,再记忆API
  2. 画出坐标转换关系图,帮助记忆
  3. 编写工具函数,简化常用转换
  4. 从实际项目中学习现有的转换方法

记住:坐标转换就像语言翻译,掌握了它,你就能在Cesium的不同"国度"间自由旅行!🚀

关键字:四川建设厅证件查询_电商该怎么做起_奶茶的营销推广软文_营销策略包括哪些方面

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: