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