ArcEngine½Ó¿Ú´óÈ«

1. IField½Ó¿Ú£¨esriGeoDatabase£©

IField½Ó¿ÚµÄµÚÒ»¸öÊôÐÔAliasName£¨Ö»¶Á£¬»ñµÃ×ֶεıðÃû£©

IField½Ó¿ÚµÄµÚ¶þ¸ö·½·¨CheckValue£¨Value£©£¨·½·¨£¬¶ÔÓÚÖ¸¶¨µÄÊôÐÔ×ֶΣ¬»ùÓÚ×Ö¶ÎÀàÐÍÅжϲÎÊýÖµÊÇ·ñÓÐЧ£¬ÓÐЧ£¬Ôò·µ»ØTrue£¬·ñÔò·µ»ØFalse£© Àý×Ó´úÂ룺

1.

2.

Set pField = pFields.Field(6) ¡¯µÚÁù¸ö×Ö¶Î bChkField = pField.CheckValue(45.86)

3. If bChkField = True Then¡­¡­

IField½Ó¿ÚµÄÆäËûÊôÐÔ¾ùΪֻ¶ÁÊôÐÔ£¬³£ÓÃÓÐName£¨Ö»¶Á£¬»ñµÃ×ֶεÄÃû³Æ£© Àý×Ó´úÂ룺

1.

2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.

Dim pFields As IFields Dim pField As IField

Dim pGeoDef As IGeometryDef Dim pDomain As IDomain Dim i As Long

Set pFields = pFeatClass.Fields For i = 0 To pFields.FieldCount - 1 Set pField = pFields.Field(i)

If pField.Type = esriFieldTypeGeometry Then Set pGeoDef = pField.GeometryDef Else

Debug.Print pField.AliasName Debug.Print pField.DefaultValue Set pDomain = pField.Domain Debug.Print pField.Editable Debug.Print pField.IsNullable Debug.Print pField.Length Debug.Print pField.Name Debug.Print pField.Precision Debug.Print pField.Required Debug.Print pField.Scale Debug.Print pField.Type Debug.Print pField.VarType End If Next

2. IFieldEdit½Ó¿Ú£¨esriGeoDatabase£©

ËùÓиýӿڵÄÊôÐÔ¾ùΪ¿É¶Á¿Éд£¬¾­³£ÓÃÓë¶Ôн¨×ֶεÄÉèÖã¬ÒòΪ×Ö¶ÎÒ»µ©±»ÉèÖã¬Æä»ù±¾ÊôÐԾͲ»Äܱ»¸ü¸Ä£¬ËùÒÔ¾ÍÐèÒª¸Ã½Ó¿ÚÀàÐ͵ıäÁ¿È¥×ª»»£¬·½·¨Îª£º

IFeatureClass pFC_SCP_PT;

IFieldEdit editPT = new FieldClass(); pFC_SCP_PT.AddField((IField)editPT);

Èç¹ûÔÚvbÖÐÈ¥±àд´úÂ룬Ôò¸³ÖµºÍ»ñÈ¡¾ùΪͬһÊôÐÔ£¬¶øÔÚC#ÖУ¬ÎªÁËÇø·ÖÉèÖúͻñÈ¡£¬ÊôÐÔ¾ùÓÐÁ½¸ö£¬ÀàËÆÓÚNameºÍName_2£¬ÕâÑù¾Í¿ÉÒÔÇø·ÖÁË£¬ÆÕ±éÓÃÉèÖõĴøÓÐ_2µÄÄǸöÊôÐÔ¡£

IFieldEdit½Ó¿ÚµÄµÚÒ»¸öÊôÐÔName £¨¶Áд£¬ÉèÖûòÕß»ñÈ¡¸Ã±äÁ¿ÀàÐͱäÁ¿×ֶεÄÃû³Æ£© IFieldEdit½Ó¿ÚµÄµÚ¶þ¸öÊôÐÔPrecision£¨¶Áд£¬ÉèÖûòÕß»ñÈ¡¸Ã±äÁ¿ÀàÐͱäÁ¿×ֶεij¤¶È£© IFieldEdit½Ó¿ÚµÄµÚÈý¸öÊôÐÔScale£¨¶Áд£¬ÉèÖûòÕß»ñÈ¡¸Ã±äÁ¿ÀàÐͱäÁ¿×ֶεľ«¶È£© IFieldEdit½Ó¿ÚµÄµÚËĸöÊôÐÔType£¨¶Áд£¬ÉèÖûòÕß»ñÈ¡¸Ã±äÁ¿ÀàÐͱäÁ¿×ֶεÄÀàÐÍ£© Àý×Ó´úÂ룺 1. 2. 3. 4. 5. 6.

3. IFields½Ó¿Ú£¨esriGeoDatabase£©

IFields½Ó¿ÚµÄµÚÒ»¸öÊôÐÔField(Index) £¨Ö»¶Á£¬ÒÔÓÃÓÚ»ñÈ¡¾ßÌåµÄ×ֶΣ¬·µ»ØÀàÐÍΪIField£© IFields½Ó¿ÚµÄµÚ¶þ¸öÊôÐÔFieldCount£¨Ö»¶Á£¬ÒÔÓÃÓÚ»ñÈ¡ÊôÐÔµÄÊýÁ¿£© ÀûÓÃÉÏÃæÁ½¸ö½Ó¿Ú²¢ÓÃË÷ÒýÈ¥ÒÀ´ÎÑ­»·»ñµÃÿһÁеÄÊôÐÔpField£¨Ifield½Ó¿Ú£© Àý×Ó´úÂ룺 1. 2. 3. 4. 5.

Dim i As Long

Dim pField As IField

For i = 0 To (pFields.FieldCount - 1)

Set pField = pFields.Field(i)

Debug.Print pField.Name & \IFeatureClass pFC_SCP_PT; editPT = new FieldClass(); editPT.Precision_2 = 8; editPT.Scale_2 = 3;

editPT.Name_2 = \

editPT.Type_2 = esriFieldType.esriFieldTypeDouble;

6. Next i

IFields½Ó¿ÚµÄµÚÈý¸ö·½·¨FindField(Name)£¨·½·¨£¬ÊäÈëÏëÒª²éÕÒµÄÊôÐÔÓò×ֶεÄÃû³Æ£¬Èç¹ûÓУ¬Ôò·µ»Ø¸ÃÊôÐÔÓò×Ö¶ÎÔÚ´ËFieldsµÄË÷Òý£¬Ã»ÓÐÔò·µ»Ø-1£© Àý×Ó´úÂ룺 1. 2. 3. 4. 5. 6.

Dim i As Integer Dim pFields As IFields Dim pField As IField 'Get Fields

Set pFields = pFeatClass.Fields

'Find the field named \

7. 8. 9.

i = pFields.FindField(\ 'Set the current field

Set pField = pFields.Field(i)

10. 'Delete field from featureclass 11. pFeatClass.DeleteField pField

IFields½Ó¿ÚµÄµÚËĸö·½·¨FindFieldByAliasName(Name)£¨·½·¨£¬ÓëµÚÈý¸ö·½·¨ÀàËÆ£¬´ËʱÊäÈëµÄΪ¸ÃÁÐÊôÐÔ×ֶεıðÃû£¬´Ë·½·¨²»¾­³£Óã© Àý×Ó´úÂ룺 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

4. ¹ØÓÚIPoint½Ó¿Ú£¨esriGeometry£©

IPoint½Ó¿ÚµÄµÚÒ»¸ö·½·¨PutCoords(X,Y)£¨·½·¨£¬ÉèÖøõãµÄ×ø±ê£©»òÕßÖ±½Óµ÷ÓÿÉÒÔ¶ÁдµÄÊôÐÔXºÍY£¬½«×ø±ê¸³Öµ¸øXºÍY Àý×Ó´úÂ룺 1. 2. 3.

Dim pPoint As IPoint Set pPoint = New Point pPoint.PutCoords 100, 100

Dim i As Integer

Dim pFields As IFields Dim pField As IField 'Get Fields

Set pFields = pFeatClass.Fields

'Find the field with the aliasname \i = pFields.FindFieldByAliasName(\'Set the current field

Set pField = pFields.Field(i) 'Delete field from featureclass pFeatClass.DeleteField pField

IPoint½Ó¿ÚµÄµÚ¶þ¸ö·½·¨QueryCoords(X,Y) £¨·½·¨£¬µÃµ½¸ÃµãµÄ×ø±ê£© Àý×Ó´úÂ룺 1. 2. 3.

Dim pPoint as IPoint

Dim dX as Double, dY as Double pPoint.QueryCoords dX, dY

IPoint½Ó¿ÚµÄµÚÈý¸ö·½·¨ConstrainAngle (constraintAngle, anchor, allowOpposite ) £¨·½·¨£¬Èç¹ûµÚÈý¸ö²ÎÊýallowOppositeΪTrue£¬Ôò½«µÚ¶þ¸ö²ÎÊýanchorÕâ¸öµã×÷Ϊһ¸öÔ­µã£¬È»ºóÒÔµÚÒ»¸ö²ÎÊýconstraintAngleΪÓëxÖáµÄ½Ç¶È£¬×öÒ»ÌõÖ±Ïߣ¬ÔÙ½«µ÷Óô˲ÎÊýµÄµãÏò¸ÃÖ±Ïß×ö´¹Ïß²¢½»ÓÚÒ»¸öе㣬²¢½«µ÷Óô˷½·¨µÄµãÒÆ¶¯µ½¸Ãµã£©

Àý×Ó´úÂ룺 1. 2. 3.

'Finds the closes point to line from (0,0) with angles 'defined by steps of pi/4 (Note all angles in radians) Dim pApoint As IPoint

4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.

Dim pNpoint As IPoint Dim pi As Double Dim dAngle As Double Dim i As Long

Set pApoint = New Point pi = 4 * Atn(1) dAngle = 0

pApoint.PutCoords 0, 0

Set pNpoint = New Point

For i = 0 To 7

pNpoint.PutCoords 1, 0 dAngle = i * pi / 4

pNpoint.ConstrainAngle dAngle, pApoint, True

MsgBox \ Next i

IPoint½Ó¿ÚµÄµÚËĸö·½·¨ConstrainDistance (constraintRadius, anchor ) £¨·½·¨£¬ÒÔµÚ¶þ¸ö²ÎÊýanchorÕâ¸öµãΪԲÐÄ£¬È»ºóÒÔµÚÒ»¸ö²ÎÊýconstraintRadiusΪ°ë¾¶×öÒ»¸öÔ²£¬½«µ÷Óô˲ÎÊýµÄµãÒÆ¶¯µ½¸ÃµãÓëÔ²ÐÄ×öÏ߶ν»ÓÚ¸ÃÔ²µÄ½»µãÉÏ£©

Àý×Ó´úÂ룺 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 1.

4. ¹ØÓÚIPointArray½Ó¿Ú£¨esriGeometry£©

IPointArray½Ó¿ÚµÄµÚÒ»¸ö·½·¨Add(p) £¨·½·¨£¬Ïò¸ÃÀàÐ͵ÄÊý×é±äÁ¿Ìí¼ÓPoint£©

IPointArray½Ó¿ÚµÄµÚ¶þ¸öÊôÐÔCount £¨Ö»¶Á£¬»ñµÃ¸ÃÊý×é±äÁ¿ÖÐPointµÄ¸öÊý£¬·µ»ØLongÀàPublic Sub t_constraindistance() Dim pPoint As IPoint Dim pNPoint As IPoint Dim dRadius As Double

Set pPoint = New Point pPoint.PutCoords 0, 0 Set pNPoint = New Point pNPoint.PutCoords 2, 2 dRadius = 1.4142135623731

pNPoint.ConstrainDistance dRadius, pPoint

MsgBox \

2. End Sub

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)