经纬志
首页 / Cesium / API 文档

Rectangle

先看结论

经纬度矩形,用于裁剪影像、限定相机范围、判断坐标是否落在区域内。 内部一律使用弧度,度与弧度之间的转换由 fromDegrees 完成。

最后验证 2026-11-03 · CesiumJS 1.121 · 更新 2026-10-29 · 引用本文
new Cesium.Rectangle(west, south, east, north)

构造参数

参数默认说明
west0.0西边界,弧度
south0.0南边界,弧度
east0.0东边界,弧度
north0.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)。