13. pEnv1.CenterAt pPoint 14.
15. Dim dXmin As Double, dYmin As Double, dXmax As Double, dYmax As Double 16. pEnv1.QueryCoords dXmin, dYmin, dXmax, dYmax 17.
18. If pEnv1.IsEmpty Then 19. MsgBox \20. Else
21. MsgBox dXmin & \ dYmax 22. End If 23. End Sub
IEnvelope接口的长宽属性Height和Width属性(读写,可以通过该属性获取或设置该边框的长和宽)
IEnvelope接口的4个顶点属性UpperLeft、UpperRight、LowerLeft和LowerRight(读写,返回IPoint类型的四个顶点,比直接获得最值坐标更加方便严谨) 例子代码:
1. Private Sub Form_Load()
2. Set m_pEnveLope = New Envelope 3. Set m_pCPoint = New Point 4. m_pEnveLope.XMin = 0 5. m_pEnveLope.YMin = 0 6. m_pEnveLope.XMax = 0 7. m_pEnveLope.YMax = 0 8. m_pCPoint.X = 0 9. m_pCPoint.Y = 0
10. Set m_pLowerLeft = New Point 11. Set m_pLowerRight = New Point 12. Set m_pUpperLeft = New Point 13. Set m_pUpperRight = New Point 14. update_props 15. End Sub
16.
17. Private Sub update_props()
18. Set m_pLowerLeft = m_pEnveLope.LowerLeft 19. edtLlx.Text = m_pLowerLeft.X 20. edtLly.Text = m_pLowerLeft.Y
21. Set m_pLowerRight = m_pEnveLope.LowerRight 22. edtLrx.Text = m_pLowerRight.X 23. edtLry.Text = m_pLowerRight.Y
24. Set m_pUpperLeft = m_pEnveLope.UpperLeft 25. edtUlx.Text = m_pUpperLeft.X 26. edtUly.Text = m_pUpperLeft.Y
27. Set m_pUpperRight = m_pEnveLope.UpperRight 28. edtUrx.Text = m_pUpperRight.X 29. edtUry.Text = m_pUpperRight.Y 30. End Sub
IEnvelope接口的最值坐标属性XMax、XMin、YMax和YMin(读写,可以通过该属性获取或设置该边框的四个顶点的坐标)
IEnvelope接口的第五个方法Union (inEnvelope ) (方法,将参数输入的几何边框和调用该方法的几何边框求并集,并将结果赋值给第一个边框,即调用此方法的object) 例子代码:
1. Public Sub t_EnvUnion() 2. Dim pEnv1 As IEnvelope 3. Dim pEnv2 As IEnvelope 4.
5. Set pEnv1 = New Envelope 6. Set pEnv2 = New Envelope 7.
8. pEnv1.PutCoords 100, 100, 200, 200 9. pEnv2.PutCoords 150, 150, 250, 250 10.
11. pEnv1.Union pEnv2
12.
13. Dim dXmin As Double, dYmin As Double, dXmax As Double, dYmax As Double 14. pEnv1.QueryCoords dXmin, dYmin, dXmax, dYmax 15. End Sub
IEnvelope接口的第六个方法Union (inEnvelope ) (方法,返回与输入参数相交的区域的几何边框,并将结果赋值给第一个边框,即调用此方法的object) 例子代码:
1. ' The example shows how to intersect 2 envelopes. The result is put in 2. ' the first envelope. 3. Public Sub t_EnvIntersect() 4. Dim pEnv1 As IEnvelope 5. Dim pEnv2 As IEnvelope 6.
7. Set pEnv1 = New Envelope 8. Set pEnv2 = New Envelope 9.
10. pEnv1.PutCoords 100, 100, 200, 200 11. pEnv2.PutCoords 150, 150, 250, 250 12.
13. pEnv1.Intersect pEnv2 14.
15. Dim dXmin As Double, dYmin As Double, dXmax As Double, dYmax As Double 16. pEnv1.QueryCoords dXmin, dYmin, dXmax, dYmax 17.
18. If pEnv1.IsEmpty Then
19. MsgBox \20. Else
21. MsgBox dXmin & \22. End If 23. End Sub
IEnvelope接口的第七个方法PutCoords (XMin, YMin,XMax,YMax) (方法,将新建的一个边框的4个极坐标设置为输入的参数) 例子代码:
1. Public Function CreateEnvXY(dblXMin As Double, dblYMin As Double, _ 2. dblXMax As Double, dblYMax As
Double) As IEnvelope
3. Set CreateEnvXY = New esriGeometry.Envelope
4. CreateEnvXY.PutCoords dblXMin, dblYMin, dblXMax, dblYMax 5. End Function
IEnvelope接口的第八个方法QueryCoords (XMin, YMin,XMax,YMax)(方法,将已有的一个边框的4个极坐标输出到参数当中以备后用)
IEnvelope接口的第九个方法Expand (dx, dy, asRatio) (方法,按照输入的dx与dy参数来放大或者缩小当前的边框,用与对ArcMap窗体的中心放大或缩小,或者点击屏幕获得点击点的坐标,并将中心点设置成点击点,并进行一定比例的放大或者缩小) 例子代码:
1. Public Sub t_EnvExpand() 2. Dim pEnv1 As IEnvelope 3. Set pEnv1 = New Envelope
4. pEnv1.PutCoords 100, 100, 200, 200 5.
6. pEnv1.Expand 0.5, 0.5, True 7.
8. Dim dXmin As Double, dYmin As Double, dXmax As Double, dYmax As Double 9. pEnv1.QueryCoords dXmin, dYmin, dXmax, dYmax 10.
11. If pEnv1.IsEmpty Then
12. MsgBox \13. Else
14. MsgBox dXmin & \15. End If 16. End Sub
注意!!!一般情况设置为True,来控制倍数的放大
1. Expand scales the size of the Envelope. If asRatio = FALSE, the expansion
is additive. 2. XMin = XMin - dx 3. YMin = YMin - dy 4. XMax = XMax + dx 5. YMax = YMax + dy
6. If asRatio = TRUE, the expansion is multiplicative. 7. XMin = (XMin - dx*Width)/2 8. YMin = (YMin - dy*Height)/2 9. XMax = (XMax + dx*Width)/2 10. YMax = (YMax + dy*Height)/2
11. The Envelope remains centered at the same position.
IEnvelope接口的第十个方法Offset (X, Y) (方法,将已有的一个边框的按照输入参数的大小来进行水平竖直的移动) 例子代码:
1. Private Sub btnOffset_Click() 2. m_pEnveLope.Offset 10, 20 3. update_props 4. End Sub 5. 注意!!!
6. The new position of the Envelope is as follows: 7. new XMin= old XMin + X 8. new YMin = old YMin + Y 9. new XMax = old XMax + X 10. new YMax = old YMax + Y
11. 关于IFeature接口(esriGeoDatabase) IFeature接口的第一个属性Class(只读)
IFeature接口的第二个方法Delete(方法,删除该行。因为一个Feature在表格中对应的
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库ArcEngine - 开发接口集(4)在线全文阅读。
相关推荐: