当前位置: 首页 > news >正文

网站dns多久刷新wordpress 自定义主页

网站dns多久刷新,wordpress 自定义主页,台州优化网站,企业网站包括哪些效果图上一章我们成功搭建了 Cesium 开发环境并显示了 3D 地球。本章将学习如何控制地球视图,包括相机操作、视角切换和交互控制等核心功能。1 相机(Camera)基础Cesium 中的相机相当于用户的 "眼睛",控制着我们看到的地…

效果图

上一章我们成功搭建了 Cesium 开发环境并显示了 3D 地球。本章将学习如何控制地球视图,包括相机操作、视角切换和交互控制等核心功能。

1 相机(Camera)基础

Cesium 中的相机相当于用户的 "眼睛",控制着我们看到的地球区域和角度。相机有几个关键参数:

  • 位置(position):相机在 3D 空间中的坐标
  • 方向(orientation):包含 heading(方位角)、pitch(俯仰角)、roll(翻滚角)
  • 视锥体(frustum):控制视野范围和透视效果

2 常用相机操作方法

下面通过示例展示常用的相机控制方法:

<template><div class="cesium-container"><div id="cesiumContainer" class="cesium-viewer"></div><!-- 相机控制按钮 --><div class="control-panel"><button @click="flyToBeijing">飞往北京</button><button @click="zoomIn">放大</button><button @click="zoomOut">缩小</button><button @click="rotateLeft">向左旋转</button><button @click="toggleMode">切换视角模式</button><button @click="resetView">重置视图</button></div></div>
</template><script>
// import Cesium from 'cesium/Cesium';
// import 'cesium/Widgets/widgets.css';export default {name: 'CesiumCamera',data() {return {viewer: null,is3DMode: true, // 当前视角模式};},mounted() {// 设置 TokenCesium.Ion.defaultAccessToken ='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjMGFkODljYy03NDI5LTQ0NDgtYmNmMC1lMjFlMTQ3NmExNjkiLCJpZCI6MzM2MDM0LCJpYXQiOjE3NTYzNDU1NTd9.AkhZoeBAIIPRhFnFDkTRpqERvJYxVpvAG67FJPlaOFI';// 初始化视图this.viewer = new Cesium.Viewer('cesiumContainer', {imageryProvider: new Cesium.ArcGisMapServerImageryProvider({url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer',}),//   terrainProvider: Cesium.Terrain.fromWorldTerrain(),// 保留默认控件,便于对比homeButton: true,sceneModePicker: true,});// 初始定位到中国this.viewer.camera.setView({destination: Cesium.Cartesian3.fromDegrees(105, 35, 5000000),});},methods: {// 飞抵北京(带动画)flyToBeijing() {this.viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(116.404, 39.915, 10000), // 经度、纬度、高度duration: 3, // 飞行时间(秒)orientation: {heading: Cesium.Math.toRadians(0), // 方向角(0表示向北)pitch: Cesium.Math.toRadians(-60), // 俯仰角(-90表示正视下方)roll: 0, // 翻滚角},});},// 放大zoomIn() {// 获取当前相机位置const currentPosition = this.viewer.camera.position;// 计算新位置(向地球方向移动)const newPosition = Cesium.Cartesian3.multiplyByScalar(currentPosition,0.5, // 距离减半(放大)new Cesium.Cartesian3());// 移动相机(无动画)this.viewer.camera.setView({destination: newPosition,});},// 缩小zoomOut() {const currentPosition = this.viewer.camera.position;const newPosition = Cesium.Cartesian3.multiplyByScalar(currentPosition,2.0, // 距离加倍(缩小)new Cesium.Cartesian3());this.viewer.camera.setView({destination: newPosition,});},// 向左旋转rotateLeft() {this.viewer.camera.rotate(Cesium.Cartesian3.UNIT_Y,Cesium.Math.toRadians(10));},// 切换视角模式(3D/2D/哥伦布视图)toggleMode() {this.is3DMode = !this.is3DMode;if (this.is3DMode) {this.viewer.scene.mode = Cesium.SceneMode.SCENE3D;} else {this.viewer.scene.mode = Cesium.SceneMode.SCENE2D;// 切换到2D后调整视角this.viewer.camera.setView({destination: Cesium.Cartesian3.fromDegrees(105, 35, 5000000),});}},// 重置视图resetView() {this.viewer.camera.setView({destination: Cesium.Cartesian3.fromDegrees(105, 35, 5000000),});this.viewer.scene.mode = Cesium.SceneMode.SCENE3D;this.is3DMode = true;},},beforeDestroy() {if (this.viewer) {this.viewer.destroy();}},
};
</script><style scoped>
.cesium-container {width: 100vw;height: 100vh;margin: 0;padding: 0;position: relative;
}.cesium-viewer {width: 100%;height: 100%;
}/* 控制按钮样式 */
.control-panel {position: absolute;bottom: 20px;left: 50%;transform: translateX(-50%);display: flex;gap: 10px;z-index: 10;padding: 10px;background: rgba(255, 255, 255, 0.8);border-radius: 5px;box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}button {padding: 8px 12px;background: #007bff;color: white;border: none;border-radius: 4px;cursor: pointer;font-size: 14px;
}button:hover {background: #0056b3;
}
</style>

Cesium 相机控制示例

3 代码解析

  1. 相机定位方法

    • flyTo():带动画的飞行定位,适合用户交互
    • setView():直接跳转定位,无动画,适合初始化
  2. 坐标转换

    • Cesium.Cartesian3.fromDegrees(longitude, latitude, height):将经纬度坐标转换为 Cesium 内部使用的笛卡尔坐标
  3. 视角模式

    • SCENE3D:3D 模式,可看到地形起伏
    • SCENE2D:2D 模式,类似传统平面地图
    • COLUMBUS_VIEW:哥伦布视图,介于 2D 和 3D 之间的透视模式
  4. 相机方向参数

    • heading:方位角,0 表示向北,增加为顺时针旋转
    • pitch:俯仰角,0 表示水平,负值表示向下看,正值表示向上看
    • roll:翻滚角,0 表示水平,正值表示向右翻滚

4 交互控制

Cesium 提供了默认的鼠标交互:

  • 左键拖动:旋转地球
  • 右键拖动:缩放
  • 中键拖动:平移
  • 滚轮:缩放
  • 双击:放大到点击位置

如果需要自定义交互,可以通过 ScreenSpaceEventHandler 实现:

// 示例:禁用默认的左键拖动旋转
this.viewer.scene.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DRAG
);// 添加自定义左键点击事件
this.viewer.scene.screenSpaceEventHandler.setInputAction((event) => {// 获取点击位置的经纬度const position = this.viewer.scene.pickPosition(event.position);if (position) {const cartographic = Cesium.Cartographic.fromCartesian(position);const longitude = Cesium.Math.toDegrees(cartographic.longitude);const latitude = Cesium.Math.toDegrees(cartographic.latitude);console.log(`点击位置: 经度 ${longitude.toFixed(2)}, 纬度 ${latitude.toFixed(2)}`);}},Cesium.ScreenSpaceEventType.LEFT_CLICK
);

小结

本文讲解了:

  • Cesium 相机的基本概念和参数
  • 常用的相机控制方法(定位、缩放、旋转)
  • 视角模式切换(3D/2D / 哥伦布视图)
  • 基础交互控制和自定义事件
http://www.dtcms.com/a/489731.html

相关文章:

  • 息县网站建设公司中国万网商城
  • 如何做个人网站私域运营
  • 建设网站破解版东莞市住房和城乡建设局网
  • 凡科网做网站怎么样闵行网络推广公司
  • 重庆工厂网站建设seo技术教学视频
  • 网站建设高度成都网站建设外包业务
  • flash 网站制作常州网站建设市场
  • espcms易思企业网站管理系统破解想做跨境电商怎么入门
  • 外贸网站搭建推广深圳做棋牌网站建设有哪些公司
  • 如何搭建 seo网站华强北附近网站建设
  • 网站开发要计入无形资产吗网站推广属于什么行业
  • 陌上香坊是做盗版的网站吗网络设备主要用于网站局域网建设
  • 做网站人搜索数据
  • H5网站整站如何屏蔽百度广告推广
  • 语言做网站搭建网站需要什么
  • 网站建设做哪个科目长沙seo代理
  • 企业网站优化推广公司做网站的有哪些学校
  • 西安的商城网站什么是seo站内优化
  • 做网站要写代码吗灯饰模板网站
  • 自己做网站 发布视频教程临沂网站建设设计公司
  • 网站建设技术招聘杭州百度首页优化
  • 网站建设论证方案手机百度建设网站
  • 阿里网站怎么做厦门物流网站建设
  • 怎么做网站主kali做钓鱼网站
  • 设计网站私单价格专业网站建设服务公司哪家好
  • seo 网站描述长度WordPress搬家emlog
  • 上海企业建设网站价格定制衣服的app叫什么
  • 企业网站建设费用的预算万能影视免费观看app
  • 扬州公司做网站photoshop官网
  • 帮忙做简历的网站做 爱 网站小视频下载