IEnvelope外接矩形

IEnvelope外接矩形

IEnvelope是指地物的外接矩形,用來表示地物圖形的大體位置和形狀,一般可用於檢索地物,判斷地物間的拓撲關係,可以使得檢索、判斷的速度加快,因爲有了IEnvelope,可以首先判斷該外接矩形是否在檢索範圍內,而判斷一個外接矩形是比較簡單的。

另:

Envelope也稱包絡線,是一個矩形區域,是每個幾何形體的最小外接矩形。每個Geometry都擁有一個Envelope,包括Envelope自身。IEnv是包絡線對象的主要接口,定義了XMax、XMin、YMax、YMin、Height和Width等屬性,用於獲取或設置一個存在的包絡線對象的空間座標。IEnvelope接口也提供了一些方法,如Expand、offset、CenterAt、PutCoords等。Expand方法用於按比例縮放包絡線的範圍,產生一個新的包絡線對象;offset是一個偏移方法,通過一個給定的(X,y)移動包絡線;CenterAt方法則通過改變包絡線的中心點來移動包絡線;PutCoords方法餓公國指定的座標點來構造包絡線。

接口的屬性和方法:

IEnvelope接口的長寬屬性Height和Width屬性(讀寫,可以通過該屬性獲取或設置該邊框的長和寬)

IEnvelope接口的4個頂點屬性UpperLeft、UpperRight、LowerLeft和LowerRight(讀寫,返回IPoint類型的四個頂點,比直接獲得最值座標更加方便嚴謹)

IEnvelope接口的最值座標屬性XMax、XMin、YMax和YMin(讀寫,可以通過該屬性獲取或設置該邊框的四個頂點的座標)

IEnvelope接口的CenterAt(pPoint) (方法,將這個矩形的邊框移動到參數pPoint的位置,但是其他屬性不變,如它的Width和Height)

IEnvelope接口的Union (inEnvelope ) (方法,將參數輸入的幾何邊框和調用該方法的幾何邊框求並集,並將結果賦值給第一個邊框,即調用此方法的object)

IEnvelope接口的Intersect (inEnvelope ) (方法,返回與輸入參數相交的區域的幾何邊框,並將結果賦值給第一個邊框,即調用此方法的object)

IEnvelope接口的PutCoords (XMin, YMin,XMax,YMax) (方法,將新建的一個邊框的4個極座標設置爲輸入的參數)

IEnvelope接口的QueryCoords (XMin, YMin,XMax,YMax)(方法,將已有的一個邊框的4個極座標輸出到參數當中以備後用)

IEnvelope接口的Expand (dx, dy, asRatio) (方法,按照輸入的dx與dy參數來放大或者縮小當前的邊框,用與對ArcMap窗體的中心放大或縮小,或者點擊屏幕獲得點擊點的座標,並將中心點設置成點擊點,並進行一定比例的放大或者縮小)

IEnvelope接口的Offset (X, Y) (方法,將已有的一個邊框的按照輸入參數的大小來進行水平豎直的移動)

詳細見:http://www.3sfield.com/content.php?id=314

另外Expand例子見【http://www.cnblogs.com/gisser/archive/2010/08/21/1805419.html】

例子:

//由於envelope的放縮都以一個固定點爲中心變化,這裏我們首先取得它的中心(假設以中心點爲中心變化)
    Xmid=(Xmin+Xmax)/2; Ymid=(Ymin+Ymax)/2.
    然後幫助中的公式應改爲:
    Xmin=Xmid-dx*width/2;
    Ymin=Ymid-dy*height/2;
    Xmax=Xmid+dx*width/2;
    Ymax=Ymid+dy*height/2;
       
   // 按照後者的公式,envelope.Expand(2, 2, true)是顯示範圍的高、寬都變爲原來的兩倍,縮小了顯示比例,
   //envelope.Expand(0.5, 0.5, true)是顯示範圍的高、寬都變爲原來的一半,擴大了顯示比例。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章