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