Provides access to members that find the nearest network element to a given point.
Product Availability
When To Use
Use the methods on IPointToEID to find the nearest network element to a given point in the map.
Members
| Description | ||
|---|---|---|
![]()  | 
GeometricNetwork | Source geometric network from which the result EID will come. | 
![]()  | 
GetNearestEdge | Returns the edge EID nearest to the input point, the physical point location that corresponds to the EID, and the percentage along that EID. | 
![]()  | 
GetNearestJunction | Returns the junction EID nearest to the input point, and the physical point location that corresponds to the EID. | 
![]()  | 
SnapTolerance | Maximum distance from the input point to an acceptable EID. | 
![]()  | 
SourceMap | Source map in which to search for the nearest EID. | 
CoClasses that implement IPointToEID
| CoClasses and Classes | Description | 
|---|---|
| PointToEID | A container for finding the nearest network element ID to a given point. | 
The following code can be used to place a junction flag on the nearest junction feature to the given (x,y) map coordinate. It assumes you have a reference to the source map in the map variable, a reference to the Network Analysis Extension in the networkAnalysisExt variable, and the flag symbol in the symbol variable.
  // convert the (x,y) map coordinate to a new Point object
  IPoint point = new PointClass() as IPoint;
  point.X = x;
  point.Y = y;
  
  // find the nearest junction element to this Point
  int EID;
  IPoint outPoint;
  IPointToEID pointToEID = new PointToEIDClass() as IPointToEID;
  pointToEID.GeometricNetwork = networkAnalysisExt.CurrentNetwork;
  pointToEID.SourceMap = map;
  pointToEID.SnapTolerance = 10;     //  set a snap tolerance of 10 map units
  pointToEID.GetNearestJunction(point, out EID, out outPoint);
  
  // convert the EID to a feature class ID, feature ID, and sub ID
  INetElements netElements = networkAnalysisExt.CurrentNetwork.Network as INetElements;
  int FCID, FID, subID;
  netElements.QueryIDs(EID, esriETJunction, out FCID, out FID, out subID);
  
  // create a new JunctionFlagDisplay object and populate it
  IJunctionFlagDisplay junctionFlagDisplay = new JunctionFlagDisplayClass() as IJunctionFlagDisplay;
  IFlagDisplay flagDisplay = junctionFlagDisplay as IFlagDisplay;
  flagDisplay.FeatureClassID = FCID;
  flagDisplay.FID = FID;
  flagDisplay.SubID = subID;
  flagDisplay.Geometry = outPoint as IGeometry;
  flagDisplay.Symbol = symbol as ISymbol;
  
  // add the JunctionFlagDisplay object to the Network Analysis extension
  INetworkAnalysisExtFlags networkAnalysisExtFlags = networkAnalysisExt as INetworkAnalysisExtFlags;
  networkAnalysisExtFlags.AddJunctionFlag(junctionFlagDisplay);
The following code can be used to place a junction flag on the nearest junction feature to the given (x,y) map coordinate. It assumes you have a reference to the source map in the map variable, a reference to the Network Analysis Extension in the networkAnalysisExt variable, and the flag symbol in the symbol variable.
  ' convert the (x,y) map coordinate to a new Point object
  Dim point As IPoint = New Point
  point.X = x
  point.Y = y
  
  ' find the nearest junction element to this Point
  Dim EID As Integer
  Dim outPoint As IPoint
  Dim pointToEID As IPointToEID = New PointToEID
  With pointToEID
    .GeometricNetwork = networkAnalysisExt.CurrentNetwork
    .SourceMap = map
    .SnapTolerance = 10     ' set a snap tolerance of 10 map units
    .GetNearestJunction(point, EID, outPoint)
  End With
  
  ' convert the EID to a feature class ID, feature ID, and sub ID
  Dim netElements As INetElements = CType(networkAnalysisExt.CurrentNetwork.Network, INetElements)
  Dim FCID As Integer, FID As Integer, subID As Integer
  netElements.QueryIDs(EID, esriETJunction, FCID, FID, subID)
  
  ' create a new JunctionFlagDisplay object and populate it
  Dim junctionFlagDisplay As IJunctionFlagDisplay = New JunctionFlagDisplay
  Dim flagDisplay As IFlagDisplay = CType(junctionFlagDisplay, IFlagDisplay)
  With flagDisplay
    .FeatureClassID = FCID
    .FID = FID
    .SubID = subID
    .Geometry = CType(outPoint, IGeometry)
    .Symbol = CType(symbol, ISymbol)
  End With
  
  ' add the JunctionFlagDisplay object to the Network Analysis extension
  Dim networkAnalysisExtFlags As INetworkAnalysisExtFlags = CType(networkAnalysisExt, INetworkAnalysisExtFlags)
  networkAnalysisExtFlags.AddJunctionFlag(junctionFlagDisplay)


