<< Click to Display Table of Contents >>
Polygon
Polygon物件是指由一系列相連的 x,y 坐標對定義的閉合形狀。
語法:
Polygon (inputs, spatial_reference, has_z, has_m)
參數 |
說明 |
參數類型 |
inputs |
用來建立Polygon物件的點資料,可以是一個點或是由多個點組成的陣列 |
物件 |
spatial_reference |
Polygon所屬的坐標系統 |
spatial_reference |
has_z |
Polygon是否有Z值,True表示有,False表示沒有 |
布林 |
has_m |
Polygon是否有M值,True表示有,False表示沒有 |
布林 |
Polygon物件屬性
參數 |
說明 |
參數類型 |
WKB (唯讀) |
構成Polygon的WKB資料 |
Bytearray |
WKT (唯讀) |
構成Polygon的WKT字串資料 |
字串 |
Area (唯讀) |
Polygon的面積大小 |
雙精度浮點數 |
Centroid (唯讀) |
Polygon的質心點, 如果質心點是落在Geometry圖形中間或是邊界上,才會回傳質心點 |
Point |
Extent (可讀寫) |
Polygon的範圍 |
extent |
firstPoint (唯讀) |
Polygon的起始點位 |
Point |
hullRectangle (唯讀) |
以空格分隔的凸包矩形坐標對的字符串。 |
字串 |
isMultipart (唯讀) |
Polygon本身是否由兩個以上的部分組成,是的話為Ture,不是的話為False |
布林 |
labelPoint (唯讀) |
Polygon物件之標題所在點位,該點位必定落在Polygon之內 |
Point |
lastPoint (唯讀) |
Polygon的結束點位 |
Point |
length (唯讀) |
Polygon物件的長度,點資料或是多重點資料,為0 |
雙精度浮點數 |
length3D (唯讀) |
Polygon物件的3D長度,點資料或是多重點資料,為0 |
雙精度浮點數 |
partCount (唯讀) |
構成Polygon物件的幾何部分有幾個 |
長整數 |
pointCount (唯讀) |
構成Polygon物件的所有點數量 |
長整數 |
spatialReference (唯讀) |
Polygon物件的坐標系統 |
spatialReference |
trueCentroid (唯讀) |
Polygon的重心點 |
Point |
type (唯讀) |
Polygon的幾何類型 |
字串 |
Polygon 物件函數
類別函數 |
函數說明 |
Boundary() |
回傳構成Polygon的邊線 |
Buffer(distance) |
依半徑, 建立並回傳Polygon的環域 |
Contains(sec_geometry) |
判斷Polygon是否有將sec_geometry完全包含,回傳結果為布林值 (True or False) |
ConvexHull() |
建立並回傳包圍Polygon的最小面積多邊形 |
Crosses() |
判斷Polygon 是否和sec_geometry有相交,回傳結果為布林值 (True or False) |
Difference(sec_geometry) |
以sec_geometry為目標,將Polygon和sec_geometry交集到的範圍扣除後再回傳,回傳成果為Polygon物件 |
Disjoint(sec_geometry) |
判斷Polygon 是否和sec_geometry有共同點,回傳結果為布林值 (True or False) |
DistanceTo(sec_geometry) |
回傳Polygon 到sec_geometry之間的最短距離,如果兩者相交,則距離為0 |
Equals(sec_geometry) |
判斷Polygon 是否和sec_geometry完全相同(所有點位完全相同,且geometry類型也相同),回傳結果為布林值 (True or False) (僅做2D比較,不比較Z值和M值) |
GetArea() |
取得Polygon的面積 |
GetLength() |
取得Polygon的長度 |
GetPart() |
取得構成Polygon的幾何部分有幾個 |
Intersect(sec_geometry) |
產生Polygon 和sec_geometry的交集區域,並回回傳該區域 |
MeasureOnLine(in_point) |
回傳in_point到Polygon起始點的距離 |
Overlaps(sec_geometry) |
判斷Polygon是否和sec_geometry有重疊,回傳結果為布林值 (True or False) (重疊定義: Polygon 是和sec_geometry為相同幾何類型,且兩者之間有部分重疊) |
PositionAlongLine(distance) |
返回與起始點之間,間隔特定距離的點位 |
SymmetricDifference (sec_geometry) |
回傳Polygon 和sec_geometry之間的聯集減去Polygon 和sec_geometry之間的交集的成果 |
Touches(second_geometry) |
判斷Polygon 和sec_geometry兩者的邊界是否相交,回傳結果為布林值 (True or False) |
Union(second_geometry) |
回傳Polygon 和sec_geometry之間的聯集 |
Within(second_geometry) |
判斷Polygon 是否完全落在sec_geometry中,的邊界是否相交,回傳結果為布林值 (True or False) |
Polygon使用範例
import sgpy #透過wkt字串,建立新的polygon物件 geo=sgpy.FromWKT("POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))") #列印polygon的面積,和組成部分有幾個 print str(geo.GetArea()) print str(geo.partCount) |
©2015 Supergeo Technologies Inc. All rights reserved.