basetype~Extent(left, bottom, right, top)

在X-Y平面内,由最小、最大地理坐标合围起来的一个矩形地理范围。Extent通常用来表示地理边界或范围,不包含高程信息,也可称之为边界盒。

Summary

Methods:
fromArray

通过一个数组来构建地理范围。

fromString

从字符串中解析出地理范围实例。

clone

克隆一个新的地理范围对象

containsCoord

检测某个地理坐标是否被包含在当前地理范围之内。

containsExtent

检测一个地理范围是否包含了另外一个地理范围(含边界共用的情况)。

equals

判断两个地理范围是否相等。在允许的容差范围以内,四至(左边界,下边界,右边界,上边界)相同则认为相等,否则不相等。

expand

将地理范围的长和宽扩展为原来的指定倍数。

extendDistance

地理范围向四周扩展指定距离。

extendExtent

扩展地理范围,使之包含参数指定的地理范围,并返回扩展后的地理范围。

extendXY

扩展地理范围,使其包含给定的坐标,并返回扩展后的地理范围。坐标中的Z值对地理范围的扩展无效。

getArea

获取地理范围的面积。地理坐标系下计算结果仅表示一个近似值。

getBottom

获取下边界纬线值

getBottomLeft

获取地理范围的左下角坐标

getBottomRight

获取地理范围的右下角坐标

getCenter

获取地理范围的中心点坐标

getHeight

计算当前地理范围在纬线方向的跨度

getIntersection

计算两个地理范围相交的部分。

getLeft

获取左边界经线值

getRight

获取右边界经线值

getSize

返回当前地理范围尺寸

getTop

获取上边界纬线值

getTopLeft

获取地理范围的左上角坐标

getTopRight

获取地理范围的右上角坐标

getWidth

计算当前地理范围在经线方向的跨度

intersects

判断两个地理范围是否相交。

isEmpty

判断当前地理范围是否为空

offset

根据给出的水平与垂直方向的平移量,对当前地理范围的四至(左边界,下边界,右边界,上边界)整体平移。

scale

以坐标系原点为中心,缩放当前地理范围。

setBottom

设置下边界纬线值

setLeft

设置左边界经线值

setRight

设置右边界经线值

setTop

设置上边界纬线值

toArray

将当前地理范围转化为数组形式。返回的数组[left,bottom,right,top]分别表示[左边界,下边界,右边界,上边界]等几个坐标值。

toString

将当前地理范围转化成字符串形式。返回的字符串"left,bottom,right,top"分别表示"左边界,下边界,右边界,上边界"等几个坐标值。

Constructor

new Extent(left, bottom, right, top)

Parameters:
Name Type Description
left Number

左边界坐标值

bottom Number

下边界坐标值

right Number

右边界坐标值

top Number

上边界坐标值

Throws:

当传入的参数非数值型变量时,抛出异常
当左边界left大于右边界right或者下边界bottom大于上边界top时,抛出异常。

Example
let extent = new hmap.basetype.Extent(120.1,30.01,120.7,30.3);

Methods

static fromArray(arr) → {module:basetype~Extent}

通过一个数组来构建地理范围。

Parameters:
Name Type Description
arr Array.<Number>

由左下角坐标与右上角坐标组成的数组。

Throws:

当参数arr不是由4个数值型元素组成的数组时,抛出异常。

Returns:
module:basetype~Extent -

地理范围对象。

Example
let newExtent = hmap.basetype.Extent.fromArray([120,30,120.2,30.3]);

static fromString(str) → {module:basetype~Extent}

从字符串中解析出地理范围实例。

Parameters:
Name Type Description
str String

由逗号分割的4个数值构成的字符串,例:"118,30,120,31"。不符合规范的字符串将发生解析异常。

Throws:

不符合规范的字符串将发生解析异常。

Returns:
module:basetype~Extent -

地理范围实例。

Example
let result = hmap.basetype.Extent.fromString("118,30,120,31");
//result=new hmap.basetype.Extent(118,30,120,31);

clone() → {module:basetype~Extent}

克隆一个新的地理范围对象

Returns:
module:basetype~Extent -

返回新的地理范围对象

Example
let newExtent = extent.clone();

containsCoord(coordinate, inclusive) → {Boolean}

检测某个地理坐标是否被包含在当前地理范围之内。

Parameters:
Name Type Default Description
coordinate module:basetype~Coordinate

地理坐标。

inclusive Boolean true

考虑地理坐标落在地理范围边界上的情况:inclusive为true时,表示即使地理坐标落在地理范围的边界上,也按坐标在地理范围以内计算;否则按不在地理范围以内计算。默认为true。

Returns:
Boolean -

包含返回true;不包含返回false。

Example
let extent = new hmap.basetype.Extent(120.1,30.01,120.7,30.3);
let coord = new hmap.basetype.Coordinate(120.3,30.2);
let result = extent.containsCoord(coord,true);//result=true

containsExtent(extent) → {Boolean}

检测一个地理范围是否包含了另外一个地理范围(含边界共用的情况)。

Parameters:
Name Type Description
extent module:basetype~Extent

指定的另外一个地理范围。

Returns:
Boolean -

包含返回true;不包含返回false。

Example
let result = extent1.containsExtent(extent2);//result=true

equals(extent, tolerance) → {Boolean}

判断两个地理范围是否相等。在允许的容差范围以内,四至(左边界,下边界,右边界,上边界)相同则认为相等,否则不相等。

Parameters:
Name Type Default Description
extent module:basetype~Extent

需要对比的地理范围

tolerance Number 0

容差,与地理范围的四至的单位相同,默认值为0。

Returns:
Boolean -

地理范围相等返回true;不相等返回false。

Example
let result = extent.equals(newExtent, 0.1);

expand(factor) → {module:basetype~Extent}

将地理范围的长和宽扩展为原来的指定倍数。

Parameters:
Name Type Description
factor Number

扩展的倍数。

Returns:
module:basetype~Extent -

扩展后的地理范围。

Example
let result = extent.expand(value);

extendDistance(distance) → {module:basetype~Extent}

地理范围向四周扩展指定距离。

Parameters:
Name Type Description
distance Number

扩展的距离,单位同地图单位。

Returns:
module:basetype~Extent -

返回对象本身,不创建新的对象。

extendExtent(extent) → {module:basetype~Extent}

扩展地理范围,使之包含参数指定的地理范围,并返回扩展后的地理范围。

Parameters:
Name Type Description
extent module:basetype~Extent

指定的另外一个地理范围。

Returns:
module:basetype~Extent -

返回扩展后的地理范围。

Example
let result = extent.extendExtent(extent2);

extendXY(coord) → {module:basetype~Extent}

扩展地理范围,使其包含给定的坐标,并返回扩展后的地理范围。坐标中的Z值对地理范围的扩展无效。

Parameters:
Name Type Description
coord module:basetype~Coordinate

给定的一个坐标

Returns:
module:basetype~Extent -

返回包含给定坐标的地理范围

Example
let result = extent.extendXY(coord);

getArea() → {Number}

获取地理范围的面积。地理坐标系下计算结果仅表示一个近似值。

Returns:
Number -

面积,单位取决于地图单位,如平方米。

Example
let extent = new hmap.basetype.Extent(120.0,30.01,120.7,30.3);
let area = extent.getArea();//area=0.203

getBottom() → {Number}

获取下边界纬线值

Returns:
Number -

下边界纬线值

Example
let bottom = extent.getBottom();

getBottomLeft() → {module:basetype~Coordinate}

获取地理范围的左下角坐标

Returns:
module:basetype~Coordinate -

地理范围的左下角坐标

Example
let coordinate = extent.getBottomLeft();

getBottomRight() → {module:basetype~Coordinate}

获取地理范围的右下角坐标

Returns:
module:basetype~Coordinate -

地理范围的右下角坐标

Example
let coordinate = extent.getBottomRight();

getCenter() → {module:basetype~Coordinate}

获取地理范围的中心点坐标

Returns:
module:basetype~Coordinate -

地理范围的中心点坐标。

Example
let centerCoord = extent.getCenter();

getHeight() → {Number}

计算当前地理范围在纬线方向的跨度

Returns:
Number -

返回纬线方向的跨度

Example
let extent = new hmap.basetype.Extent(120.0,30.01,120.7,30.3);
let height = extent.getHeight();//height=0.29

getIntersection(extent) → {module:basetype~Extent}

计算两个地理范围相交的部分。

Parameters:
Name Type Description
extent module:basetype~Extent

地理范围。

Returns:
module:basetype~Extent -

相交的范围,如果不相交,则返回null。

Example
let interstExtent = extent1.getIntersection(extent2);

getLeft() → {Number}

获取左边界经线值

Returns:
Number -

左边界经线值

Example
let left = extent.getLeft();

getRight() → {Number}

获取右边界经线值

Returns:
Number -

右边界经线值

Example
let right = extent.getRight();

getSize() → {module:basetype~Size}

返回当前地理范围尺寸

Returns:
module:basetype~Size -

尺寸,由经线跨度与纬线跨度组成。

Example
let extent = new hmap.basetype.Extent(120.0,30.01,120.7,30.3);
let size = extent.getSize();//size=new hmap.basetype.Size(0.7,0.29)

getTop() → {Number}

获取上边界纬线值

Returns:
Number -

上边界纬线值

Example
let top = extent.getTop();

getTopLeft() → {module:basetype~Coordinate}

获取地理范围的左上角坐标

Returns:
module:basetype~Coordinate -

地理范围的左上角坐标

Example
let coordinate = extent.getTopLeft();

getTopRight() → {module:basetype~Coordinate}

获取地理范围的右上角坐标

Returns:
module:basetype~Coordinate -

地理范围的右上角坐标

Example
let coordinate = extent.getTopRight();

getWidth() → {Number}

计算当前地理范围在经线方向的跨度

Returns:
Number -

返回经线方向的跨度。

Example
let width = extent.getWidth();

intersects(extent, inclusive) → {Boolean}

判断两个地理范围是否相交。

Parameters:
Name Type Default Description
extent module:basetype~Extent

指定的另一个地理范围

inclusive Boolean true

考虑地理范围的边界有重合的情况:inclusive为true时,两个地理范围的边界重合,按相交计算;否则不按相交计算。

Returns:
Boolean -

相交返回true,不相交返回false。

Example
let result = extent1.intersects(extent2,true);

isEmpty() → {Boolean}

判断当前地理范围是否为空

Returns:
Boolean -

为true时表示当前对象是一个空的地理范围,否则表示一个正常的地理范围。

Example
let result = extent.isEmpty();

offset(deltaX, deltaY) → {module:basetype~Extent}

根据给出的水平与垂直方向的平移量,对当前地理范围的四至(左边界,下边界,右边界,上边界)整体平移。

Parameters:
Name Type Description
deltaX Number

水平方向的平移量

deltaY Number

垂直方向的平移量

Throws:

当参数deltaX或者参数deltaY不是数值类型时,抛出异常

Returns:
module:basetype~Extent -

平移后的地理范围

Example
let newExtent = extent.offset(2, 3);

scale(ratio) → {module:basetype~Extent}

以坐标系原点为中心,缩放当前地理范围。

Parameters:
Name Type Description
ratio Number

缩放倍率,需为大于等于0的数值。

Throws:

当参数ratio不是大于等于0的数值时,抛出异常。

Returns:
module:basetype~Extent -

缩放后的地理范围,如果ratio=0则范围变成0;如果0<ratio<1,为缩小;若ratio>1,则为放大。

Example
let newExtent = extent.scale(0.5);

setBottom(bottom) → {module:basetype~Extent}

设置下边界纬线值

Parameters:
Name Type Description
bottom Number

需要设置的下边界纬线值

Throws:

当参数大于地理范围的上边界纬线值时,抛出异常

Returns:
module:basetype~Extent -

设置后的地理范围

Example
extent.setBottom(-80);

setLeft(left) → {module:basetype~Extent}

设置左边界经线值

Parameters:
Name Type Description
left Number

需要设置的左边界经线值

Throws:

当参数大于地理范围的右边界经线值,抛出异常

Returns:
module:basetype~Extent -

设置后的地理范围

Example
extent.setLeft(-170);

setRight(right) → {module:basetype~Extent}

设置右边界经线值

Parameters:
Name Type Description
right Number

需要设置的右边界经线值

Throws:

当参数小于地理范围的左边界经线值时,抛出异常

Returns:
module:basetype~Extent -

设置后的地理范围

Example
extent.setRight(170);

setTop(top) → {module:basetype~Extent}

设置上边界纬线值

Parameters:
Name Type Description
top Number

需要设置的上边界纬线值

Throws:

当参数小于地理范围的下边界纬线值时,抛出异常

Returns:
module:basetype~Extent -

设置后的地理范围

Example
extent.setTop(80);

toArray() → {Array.<Number>}

将当前地理范围转化为数组形式。返回的数组[left,bottom,right,top]分别表示[左边界,下边界,右边界,上边界]等几个坐标值。

Returns:
Array.<Number> -

按照left、bottom、right、top顺序组成的数组。

Example
let result = extent.toArray();

toString() → {String}

将当前地理范围转化成字符串形式。返回的字符串"left,bottom,right,top"分别表示"左边界,下边界,右边界,上边界"等几个坐标值。

Returns:
String -

按照left、bottom、right、top顺序组成的字符串。

Example
let result = extent.toString();