ArcGIS½Ó¿ÚÏêϸ˵Ã÷ ÏÂÔØ±¾ÎÄ

pPoint.PutCoords100,100

IPoint½Ó¿ÚµÄµÚ¶þ¸ö·½·¨QueryCoords(X,Y)£¨·½·¨£¬µÃµ½¸ÃµãµÄ×ø±ê£©

Àý×Ó´úÂ룺 Dim pPoint asIPoint Dim dX asDouble,dYasDouble pPoint.QueryCoordsdX,dY

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

Àý×Ó´úÂ룺

'Finds the closespointtolinefrom(0,0)withangles 'defined by stepsofpi/4(Noteallanglesinradians) Dim pApointAsIPoint Dim pNpointAsIPoint Dim piAsDouble Dim dAngleAsDouble Dim iAsLong Set pApoint =NewPoint pi = 4 *Atn(1) dAngle = 0 pApoint.PutCoords 0,0 Set pNpoint =NewPoint For i =0To7

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

pNpoint.ConstrainAngle dAngle,pApoint,True

MsgBox\ \ i & \ vbCrLf & pNpoint.X & \ pNpoint.Y Next i

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

Àý×Ó´úÂ룺

Public Sub t_constraindistance() Dim pPointAsIPoint Dim pNPointAsIPoint Dim dRadiusAsDouble

Set pPoint =NewPoint

pPoint.PutCoords 0,0

Set pNPoint =NewPoint pNPoint.PutCoords 2,2 dRadius = 1.4142135623731

pNPoint.ConstrainDistance dRadius,pPoint

MsgBox \ \ x,y = \ \ pNPoint.Y EndSub

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

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

IPointArray½Ó¿ÚµÄµÚ¶þ¸öÊôÐÔCount £¨Ö»¶Á£¬»ñµÃ¸ÃÊý×é±äÁ¿ÖÐPointµÄ¸öÊý£¬·µ»ØLongÀàÐͱäÁ¿£© IPointArray½Ó¿ÚµÄµÚÈý¸öÊôÐÔElement(Index)£¨Ö»¶Á£¬»ñµÃ¸ÃÊý×é±äÁ¿ÖÐλÓÚ²ÎÊýIndexË÷ÒýλÖõĵãPoint£¬·µ»ØÒ»¸öPointÀàÐ͵ıäÁ¿£©

IPointArray½Ó¿ÚµÄµÚËĸö·½·¨Insert (Index, p ) £¨·½·¨£¬ÏòË÷ÒýλÖÃIndex²åÈëÒ»¸öµãPoint£© IPointArray½Ó¿ÚµÄµÚÎå¸ö·½·¨Remove (Index ) £¨·½·¨£¬ÒƳýË÷ÒýλÖÃIndexµÄµãPoint£© IPointArray½Ó¿ÚµÄµÚÁù¸ö·½·¨RemoveAll £¨·½·¨£¬ÒƳýËùÓÐÔÚ´ËÊý×éÖеĵ㣩

6. ¹ØÓÚIPointCollection½Ó¿Ú£¨esriGeometry£©

IPointCollection½Ó¿ÚµÄµÚÒ»¸ö·½·¨AddPoint(inPoint [,before] [,after]) £¨·½·¨£¬Ïò¸ÃÀàÐ͵ĵ㼯±äÁ¿Ìí¼ÓPoint£¬µÚÒ»¸ö²ÎÊýΪÌí¼ÓµÄPoint£¬µÚ¶þ¸öµÚÈý¸ö²ÎÊýΪ¿ÉÑ¡ÔñµÄ²ÎÊý£¬Ä¬ÈÏÌí¼Ó½øµã¼¯µÄĩ⣩

IPointCollection½Ó¿ÚµÄµÚ¶þ¸öÊôÐÔPoint£¨i£© £¨Ö»¶Á£¬»ñµÃ¸Ãµã¼¯±äÁ¿ÖеÚi¸öλÖõÄPoint£¬·µ»ØIPointÀàÐͱäÁ¿£¬i´Ó0¼ÆË㿪ʼ£©

IPointCollection½Ó¿ÚµÄµÚÈý¸öÊôÐÔPointCount £¨Ö»¶Á£¬»ñµÃ¸Ãµã¼¯±äÁ¿ÖеãµÄ¸öÊý£¬·µ»ØLongÀàÐͱäÁ¿£¬Çмǣ¬Èç¹ûÒ»¸öPointCollection±äÁ¿ÊÇÓɱպϵÄGeometryת»»¶øÀ´µÄ»°£¬ÄÇôµãµÄ¸öÊý±È½ÚµãÊý¶àÒ»¸ö£¬ÒòΪÊDZպϵģ¬ËùÒÔÊ×λ½ÚµãÊÇͬһ¸öµã£©

7. ¹ØÓÚIPolyline½Ó¿Ú£¨esriGeometry£©

IPolyline½Ó¿ÚµÄµÚÒ»¸öÊôÐÔFromPointÓëToPoint£¨¶Áд£¬ÉèÖûòÕß¶ÁÈ¡¸ÃµãµÄÆðʼµãºÍÖÕÖ¹µã£¬·µ»Ø¶¼ÊÇIPointÀàÐ͵ıäÁ¿£©

IPolyline½Ó¿ÚµÄµÚ¶þ¸ö·½·¨QueryFromPoint (from )£¨·½·¨£¬·µ»ØIPointÀàÐ͵ıäÁ¿µ½²ÎÊýfrom£© IPolyline½Ó¿ÚµÄµÚÈý¸ö·½·¨QueryToPoint (to ) £¨·½·¨£¬·µ»ØIPointÀàÐ͵ıäÁ¿µ½²ÎÊýto£©

Public Sub t_ICurve_QueryPoints() Dim pIDAsNewUID pID = \ Dim pEditorAsIEditor

Dim pAppAsIApplication Set pApp =MxApplication

Set pEditor =pApp.FindExtensionByCLSID(pID)

If pEditor.SelectionCount<> 1 Then MsgBox\ ExitSub End If

Dim pEnumFeatAsIEnumFeature Dim pFeatureAsIFeature

Set pEnumFeat =pEditor.EditSelection

Dim pCurveAsICurve Dim pPointFromAsIPoint Dim pPointToAsIPoint

Set pPointFrom =NewPoint Set pPointTo =NewPoint

Set pFeature =pEnumFeat.Next

While NotpFeatureIsNothing

IfpFeature.Shape.GeometryType= esriGeometryPolyline Or_ esriGeometryPolyline OresriGeometryLineThen SetpCurve =pFeature.Shape pCurve.QueryFromPoint pPointFrom pCurve.QueryToPoint pPointTo

MsgBox\ vbCrLf _

& \ \ pPointFrom.Y &vbCrLf_ & \ \ pPointTo.Y &vbCrLf EndIf

SetpFeature =pEnumFeat.Next Wend

End Sub

IPolyline½Ó¿ÚµÄµÚËĸö·½·¨Generalize (maxAllowableOffset ) £¨·½·¨£¬ÓõÀ¸ñÀ­Ë¹ÆÕ¿Ë·¢À´¼ò»¯polyline£© IPolyline½Ó¿ÚµÄµÚÎå¸ö·½·¨Weed (maxAllowableOffsetFactor ) £¨·½·¨£¬ºÍ·½·¨GeneralizeÀàËÆ£¬¾ùΪ¼ò»¯polylineµÄ·½·¨£¬²»Í¬µÄÊDzÎÊý¡££©

8. ¹ØÓÚIGeometry½Ó¿Ú£¨esriGeometry£©

Public Sub t_IGeometry_polygon() Dim pIDAsNewUID pID = \ Dim pEditorAsIEditor Dim pAppAsIApplication Set pApp =Application

Set pEditor =pApp.FindExtensionByCLSID(pID)

If pEditor.SelectionCount<> 1Then MsgBox\ ExitSub End If

Dim pEnumFeatAsIEnumFeature Dim pFeatureAsIFeature

Set pEnumFeat =pEditor.EditSelection Dim pGeometryAsIGeometry Set pFeature =pEnumFeat.Next While NotpFeatureIsNothing

IfpFeature.Shape.GeometryType= esriGeometryPolygon Then

£¨Í¨¹ýpFeature.Shape»ñµÃGeometry£© SetpGeometry =pFeature.Shape

MsgBox\ properties...\ & \ vbCrLf _ & \ type =\ vbCrLf _

& \ \ \ pGeometry.Envelope.YMin& \ _ & pGeometry.Envelope.XMax &\ pGeometry.Envelope.YMin & vbCrLf_ & \ \ vbCrLf _ & \ EndIf

SetpFeature =pEnumFeat.Next Wend