This document is archived and information here might be outdated.  Recommended version.


IGeometryBridge2.SplitDivideLength Method (ArcObjects .NET 10.4 SDK)
ArcObjects Library Reference (Geometry)  

IGeometryBridge2.SplitDivideLength Method

Divide segment into smaller segments of the specified length.

[Visual Basic .NET]
Public Sub SplitDivideLength ( _
    ByVal pSegment As ISegment, _
    ByVal Offset As Double, _
    ByVal Length As Double, _
    ByVal asRatio As Boolean, _
    ByRef numSplitSegments As Integer, _
    ByRef splitSegments As ISegment[] _
)
[C#]
public void SplitDivideLength (
    ISegment pSegment,
    double Offset,
    double Length,
    bool asRatio,
    ref int numSplitSegments,
    ref ISegment[] splitSegments
);
[C++]
HRESULT SplitDivideLength(
  ISegment* pSegment,
  double Offset,
  double Length,
  VARIANT_BOOL asRatio,
  long* numSplitSegments,
  Array* splitSegments
);
[C++]

Parameters pSegment [in]
pSegment is a parameter of type ISegment Offset [in] Offset is a parameter of type double Length [in] Length is a parameter of type double asRatio [in] asRatio is a parameter of type VARIANT_BOOL numSplitSegments [out] numSplitSegments is a parameter of type long splitSegments [in, out] splitSegments is a parameter of type Array

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.
[C#]

    public void SplitDivideLength()
    {
        //Construct Polycurve
        IPoint fromPoint=new PointClass();
        fromPoint.PutCoords(0, 0);
        IPoint toPoint=new PointClass();
        toPoint.PutCoords(100, 0);
        ILine line=new LineClass();
        line.FromPoint=fromPoint;
        line.ToPoint=toPoint;

        /* offset: start, 0  -> we start from the beginning
         * length: the desired output length for all segments execpt the last one
         * asRatio: ratio
        */
        double offset=0;
        double length=10;
        bool asRatio=false;
        int numberOfSplittedSegments;
        //NOTE that our array is of length 2 but we will get 10 Segments.
        //This means that only the first 2 Segements are copied to the array.
        //Nevertheless numberOfSplittedSegments will be=10
        ISegment[] splittedSegments=new ISegment[2];
        for (int i=0; i < 2; i++)
        {
            splittedSegments[i]=new PolylineClass() as ISegment;
        }
        ISegment segment=line as ISegment;
        IGeometryBridge2 geometryBridge=new GeometryEnvironmentClass();
        geometryBridge.SplitDivideLength(segment, offset, length, asRatio, out numberOfSplittedSegments, ref splittedSegments);

        //print segments length
        for (int i=0; i < splittedSegments.Length; i++)
        {
            System.Windows.Forms.MessageBox.Show(splittedSegments[i].Length.ToString());
        }
    }

See Also

IGeometryBridge2 Interface

.NET Related Topics

Using IGeometryBridge or IGeometryBridge2