Bounds 类
此类表示地理坐标的矩形区域。
构造函数
| 构造函数 | 描述 |
|---|---|
| Bounds(sw: Point, ne: Point) | 创建一个包含所有给定点坐标的矩形区域。其中 sw 表示矩形区域的西南角,参数 ne 表示矩形区域的东北角 |
方法
| 方法 | 返回值 | 描述 |
|---|---|---|
| equals(other: Bounds) | Boolean | 当且仅当此矩形中的两点参数都等于其他矩形的两点参数时,返回 true |
| containsPoint(point: Point) | Boolean | 如果点的地理坐标位于此矩形内,则返回 true |
| containsBounds(bounds: Bounds) | Boolean | 传入的矩形区域完全包含于此矩形区域中,则返回 true |
| intersects(other: Bounds) | Bounds | 计算与另一矩形的交集区域 |
| extend(point: Point) | none | 放大此矩形,使其包含给定的点 |
| getCenter() | Point | 返回矩形的中心点 |
| isEmpty() | Boolean | 如果矩形为空,则返回 true |
| getSouthWest() | Point | 返回矩形区域的西南角 |
| getNorthEast() | Point | 返回矩形区域的东北角 |
| toSpan() | Point | 返回矩形区域的跨度 |
示例
javascript
// 创建矩形区域
var sw = new BMapGL.Point(116.404, 39.915); // 西南角点
var ne = new BMapGL.Point(116.414, 39.925); // 东北角点
var bounds = new BMapGL.Bounds(sw, ne);
// 检查点是否在矩形内
var point = new BMapGL.Point(116.409, 39.920);
var isContained = bounds.containsPoint(point); // true
// 获取矩形中心点
var center = bounds.getCenter();
console.log('中心点坐标:', center.lng, center.lat);
// 扩展矩形区域
var newPoint = new BMapGL.Point(116.420, 39.930);
bounds.extend(newPoint);
// 获取矩形的范围信息
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var span = bounds.toSpan(); // 获取经纬度跨度常见用途
- 视野范围控制
javascript
// 设置地图视野到指定矩形范围
map.setBounds(bounds);- 区域判断
javascript
// 判断两个区域是否相交
var intersection = bounds1.intersects(bounds2);
// 判断一个区域是否包含另一个区域
var isContained = bounds1.containsBounds(bounds2);- 动态扩展区域
javascript
// 扩展区域以包含新的点
points.forEach(function(point) {
bounds.extend(point);
});注意事项
- 创建 Bounds 时,西南角和东北角的坐标必须合理(西南角的经纬度应小于东北角)
extend方法会改变原有的矩形范围toSpan返回的是矩形区域在经纬度上的跨度- 使用
isEmpty方法可以判断矩形是否有效 - 在进行区域计算时,建议使用提供的方法而不是直接操作坐标值
