首页 / Cesium / API 文档
Rectangle
先看结论
经纬度矩形,用于裁剪影像、限定相机范围、判断坐标是否落在区域内。
内部一律使用弧度,度与弧度之间的转换由 fromDegrees 完成。
new Cesium.Rectangle(west, south, east, north)
构造参数
| 参数 | 默认 | 说明 |
|---|---|---|
west | 0.0 | 西边界,弧度 |
south | 0.0 | 南边界,弧度 |
east | 0.0 | 东边界,弧度 |
north | 0.0 | 北边界,弧度 |
属性
| 属性 | 说明 |
|---|---|
west / south / east / north | 四条边界,弧度,可直接读写 |
width | 只读,东西跨度,弧度;跨 180° 时自动加 2π |
height | 只读,南北跨度,弧度 |
静态常量
| 常量 | 说明 |
|---|---|
Rectangle.MAX_VALUE | 覆盖全球的矩形,west 为 -π、east 为 π |
常用方法
| 方法 | 返回 | 说明 |
|---|---|---|
Rectangle.fromDegrees(w, s, e, n, result) | Rectangle | 用角度值构造,最常见的入口 |
Rectangle.fromCartographicArray(cartographics, result) | Rectangle | 由一组 Cartographic 求包围矩形 |
Rectangle.contains(rectangle, cartographic) | Boolean | 判断点是否在范围内,边界视为包含 |
Rectangle.center(rectangle, result) | Cartesian3 | 矩形中心点,椭球面上的三维坐标 |
Rectangle.computeWidth(rectangle) | Number | 东西跨度,弧度 |
Rectangle.computeHeight(rectangle) | Number | 南北跨度,弧度 |
rectangle.clone(result) | Rectangle | 复制一份 |
rectangle.equals(other) | Boolean | 逐字段比较 |
裁剪影像与限定视野
var extent = Cesium.Rectangle.fromDegrees(73.0, 18.0, 135.0, 54.0);
// 影像图层只显示中国范围
var layer = viewer.imageryLayers.addImageryProvider(
new Cesium.UrlTemplateImageryProvider({
url: 'https://tile.example.com/{z}/{x}/{y}.png'
})
);
layer.rectangle = extent;
// 相机限制在该范围内
viewer.scene.camera.setView({ destination: extent });
// 判断点是否落在范围内
var carto = Cesium.Cartographic.fromDegrees(116.39, 39.90);
console.log(Cesium.Rectangle.contains(extent, carto));
跨 180° 经线
west 大于 east 时矩形表示跨 180° 经线的区域,
width 会把差值补上 2π。填充范围类几何时,
跨线数据先拆分再提交,否则会出现整片地形被覆盖的情况。
别把度数直接塞进构造函数。new Rectangle(116, 39, 117, 40)
会被当成弧度解释,得到一块几乎不可见的区域。构造函数只接受弧度,
用 fromDegrees 才安全。
经纬志(2026)。《Rectangle》。https://www.jingweizhi.com/cesium/api/rectangle.html(访问日期 2026-11-03)。