Class: GeoPolygon

GeoPolygon

new GeoPolygon(boundary)

common/Geometry.js, line 5878

幾何物件:多邊形,內部的點位順序需為順時針

Name Type Description
boundary GeoPolygon | GeoPolyline | GeoBoundary | Array.<GeoPoint> optional

欲複製的GeoPolygon;欲轉換的GeoPolyline;欲轉換的GeoBoundary;GeoPoint陣列。

Example

var a = new GeoPolygon();//預設建構子
var b = new GeoPolygon(a);//使用欲複製的GeoPolygon建立GeoPolygon
var c = new GeoPolygon(new GeoPolyline());//使用欲轉換的GeoPolyline建立GeoPolygon
var d = new GeoPolygon(new GeoBoundary());//使用欲轉換的GeoBoundary建立GeoPolygon

var p1 = new GeoPoint({x: 0, y: 0});
var p2 = new GeoPoint({x: 0, y: 1});
var p3 = new GeoPoint({x: 1, y: 0});
var e = new GeoPolygon([p1, p2, p3]);//使用GeoPoint陣列建立GeoPolygon

Members

readonlyBoundary

此幾何的範圍

Properties:
Name Type Description
Boundary GeoBoundary

範圍

BufferArray.<GeoPoint>

放置點位的Buffer

readonlyCenter

此幾何的中心點

Properties:
Name Type Description
Center GeoPoint

中心點

DistanceInBound

計算傳入的點到Polygon邊緣上的距離。

length

內含點位的數量

Properties:
Name Type Description
length Number

點位的數量

readonlytype

物件型態,值為GEO_TYPE.POLYGON

Properties:
Name Type Description
type GEO_TYPE

物件型態

Methods

ClipLine(s, result){Boolean}

common/Geometry.js, line 6413

將傳入的Line用此Polygon來切除,只剩在Polygon內的線。

Name Type Description
s GeoLine

欲處理的線段資料。

result GeoLine

此為out參數,須在執行前先配置好,執行後,此為處理後的答案。

Returns:
Type Description
Boolean 傳回執行是否成功。

ClipPolygon(s, result){Boolean}

common/Geometry.js, line 6458

將傳入的Polygon用此Polygon來切除,只剩在Polygon內的範圍。

Name Type Description
s GeoPolygon

欲處理的多邊形資料。

result GeoPolygon

此為out參數,須在執行前先配置好,執行後,此為處理後的答案。

Returns:
Type Description
Boolean 傳回執行是否成功。

Clone(){GeoPolygon}

common/Geometry.js, line 6096

產生一份新的自己。

Returns:
Type Description
GeoPolygon 傳回複製的新的自己。

CombinPolygon(Polygon, PolygonSet, CombinType){Boolean}

common/Geometry.js, line 6583

將自己與傳入的Polygon做合併運算。

Name Type Description
Polygon GeoPolygon

運算的Polygon資料。

PolygonSet GeoPolygonSet

此為out參數,需先在外面配好變數,合併後的結果。

CombinType GEO_CB_TYPE

運算類型。

Returns:
Type Description
Boolean 傳回運算是否成功。

ConvertToPolyline(){GeoPolyline}

common/Geometry.js, line 7343

將此Polygon轉為Polyline。

Returns:
Type Description
GeoPolyline 傳回轉換後的Polyline。

CopyFrom(Obj){GeoPolygon}

common/Geometry.js, line 6105

複製。

Name Type Description
Obj GeoLine | GeoPolyline | Array.<GeoPoint>

複製的資料源。

Returns:
Type Description
GeoPolygon this。

Distance(Obj){Number}

common/Geometry.js, line 7226

計算自己與傳入幾何的距離。

Name Type Description
Obj GeoPoint | GeoLine | GeoPolyline | GeoPolygon | GeoPolygonSet

要計算距離的幾何資料。

Returns:
Type Description
Number 傳回距離。

FromGeoJSON(src){Boolean}

common/Geometry.js, line 7376

讀入GeoJSON數值。

Name Type Description
src Object | String

GeoJSON物件或字串。

Returns:
Type Description
Boolean 回傳讀取是否成功。

GetArea(){Number}

common/Geometry.js, line 6221

計算此Polygon的面積。

Returns:
Type Description
Number 傳回計算的面積。

GetAt(index){GeoPoint}

common/Geometry.js, line 6174

取第index個點。

Name Type Description
index Number

索引。

Returns:
Type Description
GeoPoint 第index個點。

Include(Obj, bound){Boolean}

common/Geometry.js, line 7135

判斷傳入的幾何資料是否被自己包含。

Name Type Description
Obj GeoPoint | GeoLine | GeoPolyline | GeoPolygon | GeoPolygonSet

判斷的幾何資料。

bound Boolean

只用於Polygon與PolygonSet,指示相交於編上是否算包含。

Returns:
Type Description
Boolean 傳回是否包含。

IsConvex(){Boolean}

common/Geometry.js, line 6240

判定此Polygon是否為凸多邊形。

Returns:
Type Description
Boolean 傳回判斷結果。

IsGood(){Boolean}

common/Geometry.js, line 6292

判定此Polygon是否為好的Polygon(順序對,沒自己相交,有面積...)。

Returns:
Type Description
Boolean 傳回判斷結果。

IsIntersect(Obj, slice){Boolean}

common/Geometry.js, line 6560

判斷自己與傳入幾何是否相交。

Name Type Description
Obj GeoPolyline | GeoPolygon | GeoPolygonSet

判斷的幾何資料。

slice Boolean

指定若只交在節點上,算不算相交。

Returns:
Type Description
Boolean 傳回是否相交。

MakeBuffer(Distance, PolygonSet){Boolean}

common/Geometry.js, line 7287

做出環域的PolygonSet。

Name Type Description
Distance Number

環域的距離。

PolygonSet GeoPolygonSet

out參數,環域計算的答案。

Returns:
Type Description
Boolean 回傳是否成功。

Offset(p)

common/Geometry.js, line 7274

位移p。

Name Type Description
p GeoPoint

欲位移的距離。

PtInPolygon(p, Obj){Boolean}

common/Geometry.js, line 6193

檢查傳入的點p是否位於此Polygon內。

Name Type Description
p GeoPoint

欲檢查的點。

Obj Object

此為out參數,需在執行前先配置好,執行後,Obj.InBound=true|false代表是否位於邊緣上。

Returns:
Type Description
Boolean 傳回是否位於Polygon內。

RemoveAll()

common/Geometry.js, line 6131

移除所有的點位資料。

SetAt(index, Obj)

common/Geometry.js, line 6183

設定第index個點。

Name Type Description
index Number

索引。

Obj GeoPoint

要設定的值。

SetGeoData(Buffer){Boolean}

common/Geometry.js, line 6140

設定幾何資料,會檢查順逆時針,將其調整成正確的順序,若已知順序,可直接將點位資料Copy進Buffer變數,以增進效能。

Name Type Description
Buffer Array.<GeoPoint>

要Copy的點位資料。

Returns:
Type Description
Boolean 是否Copy成功。

SimplifyByPointCount(Count){Number}

common/Geometry.js, line 7333

給定指定點數(希望簡約化後的點數),計算簡約化。

Name Type Description
Count Number

簡約化後希望的點數。

Returns:
Type Description
Number 傳回簡約化後,剩餘的點數。

SimplifyByTolerance(MaxErr, Polylines){Number}

common/Geometry.js, line 7305

給定誤差值,計算簡約化

Name Type Description
MaxErr Number

簡約化的誤差值。

Polylines Array.<GeoPolyline> | undefined

簡約化過程中,要避免與這些Polyline相交。

Returns:
Type Description
Number 傳回簡約化後,剩餘的點數。

SplitByLine(Line, RightAnswer, LeftAnswer){Boolean}

common/Geometry.js, line 6609

將自己用傳入的Line來切成右與左兩部分的Polygon。

Name Type Description
Line GeoLine

切割的Line。

RightAnswer Array.<GeoPolygon>

此為out參數,需在執行前先配置好,執行後,傳回右邊的Polygon。

LeftAnswer Array.<GeoPolygon>

此為out參數,需在執行前先配置好,執行後,傳回左邊的Polygon。

Returns:
Type Description
Boolean 傳回運算是否成功

SplitByPolygon(Polygon, Inside, Outside){Boolean}

common/Geometry.js, line 7002

將自己用傳入的Polygon來切成內部與外部兩部分的PolygonSet。

Name Type Description
Polygon GeoPolygon

切割的Polygon。

Inside Array.<GeoPolygonSet>

此為out參數,需在執行前先配置好,執行後,傳回內部的PolygonSet。

Outside Array.<GeoPolygonSet>

此為out參數,需在執行前先配置好,執行後,傳回外部的PolygonSet。

Returns:
Type Description
Boolean 傳回運算是否成功。

SplitByPolyline(Line, RightAnswer, LeftAnswer){Boolean}

common/Geometry.js, line 6833

將自己用傳入的Polyline來切成右與左兩部分的Polygon。

Name Type Description
Line GeoPolyline

切割的Line。

RightAnswer Array.<GeoPolygon>

此為out參數,需在執行前先配置好,執行後,傳回右邊的Polygon。

LeftAnswer Array.<GeoPolygon>

此為out參數,需在執行前先配置好,執行後,傳回左邊的Polygon。

Returns:
Type Description
Boolean 傳回運算是否成功。

ToGeoBuffer(){Float64Array}

common/Geometry.js, line 7393

輸出成緩衝區物件。

Returns:
Type Description
Float64Array 回傳多邊形點位陣列。

ToGeoJSON(toString){Object|String}

common/Geometry.js, line 7357

將幾何輸出成GeoJSON物件或字串。

Name Type Description
toString Boolean

是否把物件轉成JSON字串。

Returns:
Type Description
Object | String 輸出轉換結果。