Cesium 随笔(一)

总结一下接触Cesium到现在的一些问题和记录

1.开发

Cesium是用node.js来实现的,然而在实现功能中不会涉及那么多使用nodejs的内容,完全可以当成普通的js来用,但是涉及到一些第三方插件,以及在提高渲染性能的时候需要注意。

使用非常简洁,只需要加载cesium.js就可以,这个文件在Build目录下。

2.对象加载

Cesium里的对象主要就是两种方式添加,第一个是entity,第二个是primitive,他们之间的区别很容易也都能搜索到。Entity封装程度更高,更加适用于简单的操作,比较推荐以这种形式添加各种多边形,文字,线条等等。

3.变换矩阵

Cesium自带矩阵的计算,包括三维和二维的,矩阵功能可以设计点到点,等等,可以进行对象的位置变换。主要函数是matrix4类里的。还要注意的是,Cesium本身自带的坐标系有好几种,需要注意选择的问题。

4.CZML

JSON格式的动态描述,用起来很方便很酷,主要的问题是不容易 修改内部的内容,比较麻烦。

 

Cesium 中加载个矩形(Rectangle)可以通过 `Entity` 或 `Primitive` API 实现。下面使用 **Entity API** 来创建并显示个矩形,这是最简单且常用的方式。 ### 示例:使用 Cesium 加载个矩形 ```javascript // 初始化 Cesium Viewer const viewer = new Cesium.Viewer('cesiumContainer', { terrainProvider: Cesium.createWorldTerrain() }); // 定义矩形的边界(西、南、东、北),单位是弧度 const rectangle = Cesium.Rectangle.fromDegrees( -100.0, // 西经 30.0, // 南纬 -90.0, // 东经 40.0 // 北纬 ); // 添加矩形 Entity 到场景中 const rectangleEntity = viewer.entities.add({ name: 'Rectangle on Surface', rectangle: { coordinates: rectangle, material: Cesium.Color.BLUE.withAlpha(0.5), // 半透明蓝色 outline: true, outlineColor: Cesium.Color.BLACK, outlineWidth: 2 } }); // 可选:调整视角以查看矩形 viewer.zoomTo(viewer.entities); ``` --- ### ✅ 解释: - `Cesium.Viewer`:初始化三维地球场景,`cesiumContainer` 是 HTML 中用于承载 Cesium 的 `<div id="cesiumContainer"></div>`。 - `Cesium.Rectangle.fromDegrees(west, south, east, north)`:创建个地理范围矩形(经纬度输入,自动转为弧度)。 - `viewer.entities.add()`:添加个实体到场景中。 - `rectangle.material`:填充颜色,这里使用带透明度的蓝色。 - `outline`:是否显示边框。 - `viewer.zoomTo()`:自动将相机聚焦到该矩形区域。 --- ### 🌐 效果: 这个矩形会合地球表面显示,位于美国中部区域(由经纬度决定),你可以自由旋转、缩放地球来查看。 --- ### 💡 注意事项: - 矩形必须定义为 `Cesium.Rectangle` 对象。 - 如果你想绘制在某个高度上或有拉伸效果,可以结合 `extrudedHeight` 属性实现立体矩形(墙或柱体)。 - 确保引入了正确的 Cesium JS CSS 文件(推荐使用官方 CDN 或 npm 安装)。 --- ### ✅ 示例 HTML 结构(完整页面) ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Cesium Rectangular Example</title> <script src="https://cesium.com/downloads/cesiumjs/releases/1.114/Build/Cesium/Cesium.js"></script> <link href="https://cesium.com/downloads/cesiumjs/releases/1.114/Build/Cesium/Widgets/widgets.css" rel="stylesheet" /> <style> html, body, #cesiumContainer { width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden; } </style> </head> <body> <div id="cesiumContainer"></div> <script> // 上面的 JavaScript 代码放在这里 </script> </body> </html> ``` --- ### 🔍 常见扩展需求: - 动态修改矩形位置 - 鼠标交互拾取矩形 - 使用 `Primitive` API 提高性能(适用于大量图形) - 添加纹理材质而非纯色 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值