Summary
Methods:
| fromArray |
根据二维数据生成坐标序列对象 |
| addCoord |
在当前坐标序列的指定索引位置,插入一个新的坐标对象。 |
| clone |
克隆坐标序列实例 |
| concat |
合并两个坐标序列,指定的坐标序列追加到当前坐标序列之后。合并操作不影响原来的坐标序列。 |
| containsCoord |
判断指定的坐标对象在坐标序列中的索引位置。 |
| destroy |
销毁对象 |
| encloseRing |
使坐标序列成为一个闭环。1.坐标序列中的点数量需大于等于3,否则抛异常;2.如果当前坐标序列已经是一个闭环,那么直接返回;3.如果当前坐标序列不是闭环,追加序列中的第一个点到末尾,使其成为闭环。 |
| equals |
检测两个坐标序列是否相等。 |
| extractCoords |
从指定索引处开始提取n个坐标,如果n大于坐标数量,返回从索引位置开始的所有坐标。 |
| getCoordCount |
获取坐标序列长度,即当前坐标序列中所包含的坐标个数。 |
| getCoordinate |
获取坐标序列中指定索引位置对应的坐标。 |
| getExtent |
计算该坐标序列的外包矩形的地理范围。 |
| getFirstCoordinate |
获取坐标序列中的第一个坐标对象。 |
| getLastCoordinate |
获取坐标序列中的最后一个坐标对象。 |
| getOrdinate |
获取指定索引处的坐标的某个分量值。 |
| isRing |
判断坐标序列是否闭合。闭合的依据是首尾坐标相等,且当前坐标序列中至少包含3个坐标。 |
| remove |
从坐标序列指定索引处删除指定个数的坐标。 |
| removeRepeat |
去除重复的坐标。假如坐标序列中相邻的两个坐标是相同的,则会删除后面的坐标,直到相邻的坐标没有相同的为止。 |
| reverse |
返回一个与原坐标序列中坐标顺序相反的新坐标序列,可根据传入的参数控制是否改变原坐标序列中的坐标顺序。 |
| setOrdinate |
设置指定索引处的坐标的某个分量值。 |
| simplify |
简化坐标序列。采用道格拉斯-普克算法,坐标序列中应至少包含三个坐标,若坐标个数小于3,则不做任何处理。 |
| sort |
根据某个坐标分量的大小,对坐标序列进行排序,并返回排序后的新坐标序列。注意:排序操作不影响原来的坐标序列。 |
| swap |
交换指定索引位置的坐标。此操作会改变原来的坐标序列。 |
Constructor
new CoordSeq(coordArr)
Parameters:
| Name | Type | Description |
|---|---|---|
coordArr |
Array.<module:basetype~Coordinate> | 存放坐标对象的数组 |
Throws:
当参数不是数组类型或者数组元素不是地理坐标对象时,抛出异常
Example
let coord1 = new hmap.basetype.Coordinate(120, 30, 0);
let coord2 = new hmap.basetype.Coordinate(121, 31, 0);
let coordSeq = new hmap.basetype.CoordSeq([coord1, coord2]);
Methods
-
static fromArray(coords)
-
根据二维数据生成坐标序列对象
Parameters:
Name Type Description coords* Returns:
-坐标序列对象
-
addCoord(coord, index) → {module:basetype~CoordSeq}
-
在当前坐标序列的指定索引位置,插入一个新的坐标对象。
Parameters:
Name Type Description coordmodule:basetype~Coordinate 要插入的坐标对象。
indexNumber 索引。当index小于等于0,往前添加;当index大于等于坐标序列的长度或者为空时,往后添加。默认值为坐标序列的长度。
Example
let newCoord = new hmap.basetype.Coordinate(122, 32, 0); let result = coordSeq.addCoord(newCoord, 0); -
clone() → {module:basetype~CoordSeq}
-
克隆坐标序列实例
Example
let newCoordSeq = coordSeq.clone(); -
concat(coordSeq) → {module:basetype~CoordSeq}
-
合并两个坐标序列,指定的坐标序列追加到当前坐标序列之后。合并操作不影响原来的坐标序列。
Parameters:
Name Type Description coordSeqmodule:basetype~CoordSeq 坐标序列
-
containsCoord(coord) → {Number}
-
判断指定的坐标对象在坐标序列中的索引位置。
Parameters:
Name Type Description coordmodule:basetype~Coordinate 坐标对象
Throws:
当参数不是坐标对象时,抛出异常
Returns:
Number -若序列中包含指定坐标,则返回其在序列中的索引,否则返回-1。
Example
let coord = new hmap.basetype.Coordinate(120,30,0); let flag = coordSeq.containsCoord(coord); -
destroy()
-
销毁对象
Example
coordSeq.destroy(); -
encloseRing() → {Array.<module:basetype~Coordinate>}
-
使坐标序列成为一个闭环。1.坐标序列中的点数量需大于等于3,否则抛异常;2.如果当前坐标序列已经是一个闭环,那么直接返回;3.如果当前坐标序列不是闭环,追加序列中的第一个点到末尾,使其成为闭环。
Throws:
当组成坐标序列的点数量少于3个时,抛出异常
Example
let coord1 = new hmap.basetype.Coordinate(120,30,0); let coord2 = new hmap.basetype.Coordinate(121,31,0); let coord3 = new hmap.basetype.Coordinate(122,30,0); let coordSeq = new hmap.basetype.CoordSeq([coord1,coord2,coord3]); let result = coordSeq.encloseRing(); -
equals(coordSeq) → {Boolean}
-
检测两个坐标序列是否相等。
Parameters:
Name Type Description coordSeqmodule:basetype~CoordSeq 另一个坐标序列对象。
Returns:
Boolean -相等返回true,不相等返回false。
Example
let coord = new hmap.basetype.Coordinate(120,30,0); let coordSeq1 = new hmap.basetype.CoordSeq([coord]); let coordSeq2 = new hmap.basetype.CoordSeq([coord]); let result = coordSeq1.equals(coordSeq2);//result=true -
extractCoords(index, n) → {Array.<module:basetype~Coordinate>|null}
-
从指定索引处开始提取n个坐标,如果n大于坐标数量,返回从索引位置开始的所有坐标。
Parameters:
Name Type Default Description indexNumber 0 指定的索引,默认值为0。
nNumber 要提取的坐标个数,默认值为坐标序列的长度。1.当n为0时,返回null;2.n为负时,从索引位置处向前,依次提取n个坐标;3.n为正时,从索引位置处向后,依次提取n个坐标。
Throws:
当第一个参数不是数值类型或者第二个参数不是数值类型时,抛出异常
Example
let result = coordSeq.extractCoords(0,1); //result=[new hmap.basetype.Coordinate(120,30,0)]; -
getCoordCount() → {Number}
-
获取坐标序列长度,即当前坐标序列中所包含的坐标个数。
Returns:
Number -坐标序列的长度。
Example
let coordCount = coordSeq.getCoordCount(); -
getCoordinate(index) → {module:basetype~Coordinate|null}
-
获取坐标序列中指定索引位置对应的坐标。
Parameters:
Name Type Description indexNumber 指定的索引。
Throws:
TypeError -当索引参数不是数值类型时,抛出类型异常
{RangeError} 当索引参数超出坐标序列中坐标数组的边界时,抛出越界异常Example
let result = coordSeq.getCoordinate(0);//result=new hmap.basetype.Coordinate(120,30,0) -
getExtent() → {module:basetype~Extent}
-
计算该坐标序列的外包矩形的地理范围。
-
getFirstCoordinate() → {module:basetype~Coordinate}
-
获取坐标序列中的第一个坐标对象。
Example
let firstCoordinate = coordSeq.getFirstCoordinate(); -
getLastCoordinate() → {module:basetype~Coordinate}
-
获取坐标序列中的最后一个坐标对象。
Example
let lastCoordinate = coordSeq.getLastCoordinate(); -
getOrdinate(coordIndex, ordinateIndex) → {Number}
-
获取指定索引处的坐标的某个分量值。
Parameters:
Name Type Default Description coordIndexNumber 坐标在序列中的索引。
ordinateIndexString X 坐标轴标识。取值必须为"X"、"Y"、或"Z",缺省值"X"。
Throws:
当第一个参数不是数值类型时抛出异常;当第二个参数不是"X"或"Y"或"Z"时,抛出异常。
Returns:
Number -坐标分量值。
Example
let xValue = coordSeq.getOrdinate(0, "X"); -
isRing() → {Boolean}
-
判断坐标序列是否闭合。闭合的依据是首尾坐标相等,且当前坐标序列中至少包含3个坐标。
Returns:
Boolean -闭合返回true,不闭合返回false。
Example
let result = coordSeq.isRing(); -
remove(index, num) → {Number}
-
从坐标序列指定索引处删除指定个数的坐标。
Parameters:
Name Type Description indexNumber 要删除的起始位置处的索引
numNumber 要删除的坐标个数
Throws:
当参数index不在坐标序列数组的索引值范围内时,抛出异常
Returns:
Number -返回删除坐标的个数
Example
coordSeq.remove(0, 1);//只删除了索引值为0的一个坐标 -
removeRepeat() → {Number}
-
去除重复的坐标。假如坐标序列中相邻的两个坐标是相同的,则会删除后面的坐标,直到相邻的坐标没有相同的为止。
Returns:
Number -返回删除坐标的个数。
Example
let result = coordSeq.removeRepeat(); -
reverse(originModified) → {module:basetype~CoordSeq}
-
返回一个与原坐标序列中坐标顺序相反的新坐标序列,可根据传入的参数控制是否改变原坐标序列中的坐标顺序。
Parameters:
Name Type Default Description originModifiedBoolean false 原坐标序列中的坐标顺序是否被反转。默认值是false,表示不改变原坐标序列中的坐标顺序;该值为true时,会改变原坐标序列中的坐标顺序。
Example
const coord1 = new hmap.basetype.Coordinate(120,30,0); const coord2 = new hmap.basetype.Coordinate(120,30,0); const coord3 = new hmap.basetype.Coordinate(122,32,0); let coordSeq = new hmap.basetype.CoordSeq([coord1,coord2,coord3]); let result = coordSeq.reverse();//不改变coordSeq这个坐标序列中坐标的顺序 let result1 = coordSeq.reverse(true);//coordSeq这个坐标序列中坐标的顺序也被反转 -
setOrdinate(coordIndex, ordinateIndex, val)
-
设置指定索引处的坐标的某个分量值。
Parameters:
Name Type Default Description coordIndexNumber 坐标在序列中的索引。
ordinateIndexString X 坐标轴标识。取值必须为"X"、"Y"、或"Z",缺省值"X"。
valNumber 坐标分量。
Throws:
当第一个和第三个参数不是数值类型时抛出异常;当第二个参数不是"X"或"Y"或"Z"时,抛出异常。
Example
coordSeq.setOrdinate(0, "X", 124);//设置坐标序列中第一个坐标的x轴值为124. -
simplify(tolerance, isRing) → {module:basetype~CoordSeq}
-
简化坐标序列。采用道格拉斯-普克算法,坐标序列中应至少包含三个坐标,若坐标个数小于3,则不做任何处理。
Parameters:
Name Type Default Description toleranceNumber 0.00001 简化所用容差值,大于等于0,单位和地图单位一致,可以通过地图对象上的getDegreePerMeter和getMeterPerDegree方法,对地图单位进行度和米的转换。容差值越大,坐标序列越精简。默认值0.00001。
isRingBoolean false 是否闭合,默认是false。
Throws:
当参数不是数值类型或者参数小于0时,抛出异常
Example
let result = coordSeq.simplify(10); -
sort(axis, order) → {module:basetype~CoordSeq}
-
根据某个坐标分量的大小,对坐标序列进行排序,并返回排序后的新坐标序列。注意:排序操作不影响原来的坐标序列。
Parameters:
Name Type Default Description axisString X 坐标轴标识。取值必须为"X"、"Y"、或"Z"。缺省值"X"。
orderString ASC 排序方式。升序:"ASC",降序:"DESC"。缺省值"ASC"。
Example
let newCoordSeq = coordSeq.sort("X", "ASC");//将坐标序列中的坐标,按照x坐标分量进行升序排列。 -
swap(i, j) → {module:basetype~CoordSeq}
-
交换指定索引位置的坐标。此操作会改变原来的坐标序列。
Parameters:
Name Type Description iNumber 坐标在当前序列中的索引。
jNumber 坐标在当前序列中的索引。
Throws:
当第一个参数或者第二个参数超出坐标序列数组的索引范围时,抛出异常
Example
let result = coordSeq.swap(1,2);