com.esri.arcgis.geometry
Interface IMSegmentation2

All Superinterfaces:
IMCollection, IMSegmentation, Serializable
All Known Subinterfaces:
IMSegmentation3, IMSegmentation4
All Known Implementing Classes:
Polyline

public interface IMSegmentation2
extends IMSegmentation, Serializable

Provides access to additional linear referencing operations on polylines.

Superseded By

IMSegmentation3

Remarks

The IMSegmentation2 interface (like the IMSegmenation interface) also provides methods designed to work with the dynamic segmentation functionality in ArcObjects. These methods offer extended ways to interpolate and update the m attributes on a PolyLine, by cumulative distance and also by existing m values.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

See Also:
IPoint.getM(), IMSegmentation, IMSegmentation2, IMCollection, IMAware

Method Summary
 IEnumSplitPoint calibrateByDistance(IEnumVertex points, int updateHow, boolean ignoreGaps, double cutoffDistance)
          Calibrates Ms of existing vertices using new Ms from the input points and the shortest path distances along the polyline between those points.
 IEnumSplitPoint calibrateByMs(IEnumVertex points, int updateHow, double cutoffDistance)
          Calibrates Ms of existing vertices using new Ms from the input points and existing Ms along shortest paths between those points.
 IGeometryCollection getSubcurveBetweenMsEx(double fromM, double toM, int[] fromMDetails, int[] toMDetails)
          Returns a polyline geometry corresponding to the subcurve(s) between the fromM and the toM values.
 void setMsAsDistance2(IPoint origin, double scale, double offset, boolean ignoreGaps)
          Sets Ms on vertices as scaled and offset distances from the input origin as measured along the polyline.
 void updateMsByDistance(int fromPart, int fromPoint, int toPart, int toPoint, double fromM, double toM, int updateHow, boolean ignoreGaps)
          Updates Ms along the shortest path between the specified endpoints.
 void updateMsByMs(int fromPart, int fromPoint, int toPart, int toPoint, double fromM, double toM, int updateHow)
          Updates Ms along the shortest path between the specified endpoints.
 
Methods inherited from interface com.esri.arcgis.geometry.IMSegmentation
calculateNonSimpleMs, extrapolateMs, getDistancesAtM, getMMonotonic, getMsAtDistance, getPointsAtM, getSubcurveBetweenMs, insertMAtDistance, interpolateMsBetween, reverseMsOrder, setAndInterpolateMsBetween, setMsAsDistance
 
Methods inherited from interface com.esri.arcgis.geometry.IMCollection
getMMax, getMMin, multiplyMs, offsetMs
 

Method Detail

setMsAsDistance2

void setMsAsDistance2(IPoint origin,
                      double scale,
                      double offset,
                      boolean ignoreGaps)
                      throws IOException,
                             AutomationException
Sets Ms on vertices as scaled and offset distances from the input origin as measured along the polyline. Shortest path distances from the origin are used. Optionally ignores distances between parts of the polyline.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
origin - A reference to a com.esri.arcgis.geometry.IPoint (in)
scale - The scale (in)
offset - The offset (in)
ignoreGaps - The ignoreGaps (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IMSegmentation.setMsAsDistance(boolean)

updateMsByDistance

void updateMsByDistance(int fromPart,
                        int fromPoint,
                        int toPart,
                        int toPoint,
                        double fromM,
                        double toM,
                        int updateHow,
                        boolean ignoreGaps)
                        throws IOException,
                               AutomationException
Updates Ms along the shortest path between the specified endpoints. The interpolation ratio is determined by the input ms and euclidean distance along that path. The update method is given as a combination of esriGeometryUpdateMEnum values.

Remarks

The updateHow argument is given as a combination of esriGeometryUpdateMEnum values. When combining multiple values, the bitwise Or operator should always be used. This assures an error-free combination of the values (as long as the attempted combination is valid). Do not use the addition operator (+) to combine the values as unexpected results may occur.

For example, to interpolate between the input points and to extrapolate before and after the input points, you would use 7, which equates to: esriGeometryInterpolate OR esriGeometryExtrapolateBefore OR esriGeometryExtrapolateAfter


esriGeometryInterpolate = 0001 (1)

esriGeometryExtrapolateBefore = 0010 (2)

esriGeometryExtrapolateAfter = 0100 (4)




     0001

        0010

        0100

        ----

        0111

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
fromPart - The fromPart (in)
fromPoint - The fromPoint (in)
toPart - The toPart (in)
toPoint - The toPoint (in)
fromM - The fromM (in)
toM - The toM (in)
updateHow - The updateHow (in)
ignoreGaps - The ignoreGaps (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IMSegmentation2.updateMsByMs(int, int, int, int, double, double, int)

updateMsByMs

void updateMsByMs(int fromPart,
                  int fromPoint,
                  int toPart,
                  int toPoint,
                  double fromM,
                  double toM,
                  int updateHow)
                  throws IOException,
                         AutomationException
Updates Ms along the shortest path between the specified endpoints. The interpolation ratio is determined by the existing ms along that path and the input ms. The update method is given as a combination of esriGeometryUpdateMEnum values.

Remarks

The updateHow argument is given as a combination of esriGeometryUpdateMEnum values. When combining multiple values, the bitwise Or operator should always be used. This assures an error-free combination of the values (as long as the attempted combination is valid). Do not use the addition operator (+) to combine the values as unexpected results may occur.

For example, to interpolate between the input points and to extrapolate before and after the input points, you would use 7, which equates to: esriGeometryInterpolate OR esriGeometryExtrapolateBefore OR esriGeometryExtrapolateAfter

esriGeometryInterpolate = 0001 (1)

esriGeometryExtrapolateBefore = 0010 (2)

esriGeometryExtrapolateAfter = 0100 (4)

     

0001

0010

0100

----

0111

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
fromPart - The fromPart (in)
fromPoint - The fromPoint (in)
toPart - The toPart (in)
toPoint - The toPoint (in)
fromM - The fromM (in)
toM - The toM (in)
updateHow - The updateHow (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IMSegmentation2.updateMsByDistance(int, int, int, int, double, double, int, boolean)

calibrateByDistance

IEnumSplitPoint calibrateByDistance(IEnumVertex points,
                                    int updateHow,
                                    boolean ignoreGaps,
                                    double cutoffDistance)
                                    throws IOException,
                                           AutomationException
Calibrates Ms of existing vertices using new Ms from the input points and the shortest path distances along the polyline between those points. The update method is given as a combination of esriGeometryUpdateMEnum values.

Remarks

The updateHow argument is given as a combination of esriGeometryUpdateMEnum values. When combining multiple values, the bitwise Or operator should always be used. This assures an error-free combination of the values (as long as the attempted combination is valid). Do not use the addition operator (+) to combine the values as unexpected results may occur.

For example, to interpolate between the input points and to extrapolate before and after the input points, you would use 7, which equates to: esriGeometryInterpolate OR esriGeometryExtrapolateBefore OR esriGeometryExtrapolateAfter. A value of 0 will only split the input polyline and assign the Ms value to the new created vertex. If an input point has the same X (or projected to the same X) as an existing vertex the Ms value of the existing vertex will be updated.

Note : The "After" and "Before" for the updateHow parameter is define by the order of the points in the multipoints. Ex : If the points are define from left to right the "Before" will be at the left of the first point and the "After" will be at the right of the last point.

The cutoffDistance parameter is an input Double that represents the distance from the polyline from where points are not considered anymore as being valid calibration points.

The following picture demonstrates graphically the method behavior. A updateHow paramater of 7 has been used.

esriGeometryInterpolate = 0001 (1)
esriGeometryExtrapolateBefore = 0010 (2)
esriGeometryExtrapolateAfter = 0100 (4)


      

0001

0010

0100

----

0111


 

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
points - A reference to a com.esri.arcgis.geometry.IEnumVertex (in)
updateHow - The updateHow (in)
ignoreGaps - The ignoreGaps (in)
cutoffDistance - The cutoffDistance (in)
Returns:
A reference to a com.esri.arcgis.geometry.IEnumSplitPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IMSegmentation2.calibrateByMs(com.esri.arcgis.geometry.IEnumVertex, int, double)

calibrateByMs

IEnumSplitPoint calibrateByMs(IEnumVertex points,
                              int updateHow,
                              double cutoffDistance)
                              throws IOException,
                                     AutomationException
Calibrates Ms of existing vertices using new Ms from the input points and existing Ms along shortest paths between those points. The update method is given as a combination of esriGeometryUpdateMEnum values.

Remarks

The updateHow argument is given as a combination of esriGeometryUpdateMEnum values. When combining multiple values, the bitwise Or operator should always be used. This assures an error-free combination of the values (as long as the attempted combination is valid). Do not use the addition operator (+) to combine the values as unexpected results may occur.

The cutoffDistance parameter is an input Double that represents the distance from the polyline from where points are not considered anymore as being valid calibration points.

For example, to interpolate between the input points and to extrapolate before and after the input points, you would use 7, which equates to: esriGeometryInterpolate OR esriGeometryExtrapolateBefore OR esriGeometryExtrapolateAfter

esriGeometryInterpolate = 0001 (1)

esriGeometryExtrapolateBefore = 0010 (2)

esriGeometryExtrapolateAfter = 0100 (4)

     0001

        0010

        0100

        ----

        0111

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
points - A reference to a com.esri.arcgis.geometry.IEnumVertex (in)
updateHow - The updateHow (in)
cutoffDistance - The cutoffDistance (in)
Returns:
A reference to a com.esri.arcgis.geometry.IEnumSplitPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IMSegmentation2.calibrateByDistance(com.esri.arcgis.geometry.IEnumVertex, int, boolean, double)

getSubcurveBetweenMsEx

IGeometryCollection getSubcurveBetweenMsEx(double fromM,
                                           double toM,
                                           int[] fromMDetails,
                                           int[] toMDetails)
                                           throws IOException,
                                                  AutomationException
Returns a polyline geometry corresponding to the subcurve(s) between the fromM and the toM values. The 'details' arguments are composed of esriMCurveRelationEnum values.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
fromM - The fromM (in)
toM - The toM (in)
fromMDetails - The fromMDetails (in/out: use single element array)
toMDetails - The toMDetails (in/out: use single element array)
Returns:
A reference to a com.esri.arcgis.geometry.IGeometryCollection
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IMSegmentation.getSubcurveBetweenMs(double, double)