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

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

Summary

Methods:
fromArray

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

fromString

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

clone

复制一个新Extent对象,这个副本相对于正本,独立存在

containsCoord

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

containsExtent

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

equals

判断两个地理范围是否相等。在允许的容差范围以内,四至相同就可以认为相等,否则不相等。

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

地理范围对象的数组表现形式。返回的数组[l,b,r,t]分别表示[左边界,下边界,右边界、上边界]等几个坐标值。

toString

将当前地理范围转化成字符串形式。

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个可以转换为数值的数字组成,例: "83,42,10,45"。 不符合规范的字符串将发生解析异常。

Throws:

当转换后得到的数值,不等于4时,抛出异常

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}

复制一个新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

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

Returns:
Boolean -

包含返回true;不包含返回false,如果参数不合法,直接返回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 extentOut = new hmap.basetype.Extent(120.1,30.01,120.7,30.3);
let extentIn  = new hmap.basetype.Extent(120.1,30.01,120.3,30.2);
let result = extentOut.containsExtent(extentIn);//result=true

equals(extent, tolerance) → {Boolean}

判断两个地理范围是否相等。在允许的容差范围以内,四至相同就可以认为相等,否则不相等。

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

需要对比的地理范围

tolerance Number 0

容差。Extent四至的单位相同

Returns:
Boolean -

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

Example
let newExtent = new hmap.basetype.Extent(121.1,30.01,120.7,30.3);
let result = extent.equals(newExtent, 0.1);

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

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

Parameters:
Name Type Description
extent module:basetype~Extent

需要扩展的地理范围

Returns:
module:basetype~Extent -

返回扩展后的地理范围

Example
let extent  = new hmap.basetype.Extent(120.1,30.01,120.7,30.3);
let extent2 = new hmap.basetype.Extent(121.1,31.07,122.7,32.3);
let result = extent.extendExtent(extent2);//result=new hmap.basetype.Extent(120.1,30.01,122.7,32.3);

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

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

Parameters:
Name Type Description
coord module:basetype~Coordinate

给定的一个坐标

Returns:
module:basetype~Extent -

返回包含给定坐标的地理位置

Example
let coord = new hmap.basetype.Coordinate(120.3,30.6);
let extent = new hmap.basetype.Extent(110.1,20.01,130.3,40.2);
let result = extent.extendXY(coord);// result = new hmap.basetype.Extent(110.1,20.01,130.3,40.2);

getArea() → {Number}

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

Returns:
Number -

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

Example
let area = extent.getArea();

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 height = extent.getHeight();

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

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

Parameters:
Name Type Description
extent module:basetype~Extent

地理范围

Returns:
module:basetype~Extent -

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

Example
let extent2 = new hmap.basetype.Extent(120.1,30.01,122.7,32.3);
let interstExtent = extent.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 size = extent.getSize();

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

边界有重合的情况。如果为true,那么当发生全部或部分边界重合时,按相交计算。否则不按相交计算。

Returns:
Boolean -

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

Example
let extent1 = new hmap.basetype.Extent(120.1,30.01,120.7,30.3);
let extent2 = new hmap.basetype.Extent(120.1,31.07,122.7,32.3);
let result = extent1.intersects(extent2,true);//result=false

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不是数值类型时,抛出异常。

Returns:
module:basetype~Extent -

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

Example
let newExtent = extent.scale(2);

setBottom(bottom) → {Extent}

设置下边界纬线值

Parameters:
Name Type Description
bottom Number

需要设置的下边界纬线值

Throws:

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

Returns:
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>}

地理范围对象的数组表现形式。返回的数组[l,b,r,t]分别表示[左边界,下边界,右边界、上边界]等几个坐标值。

Returns:
Array.<Number> -

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

Example
let arr = extent.toArray();

toString() → {String}

将当前地理范围转化成字符串形式。

Returns:
String -

返回“left,bottom,right,top”的字符串形式

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