com.esri.arcgis.networkanalyst
Interface INALocatorAgent3

All Superinterfaces:
INALocatorAgent, INALocatorAgent2, Serializable
All Known Implementing Classes:
NALocatorFeatureAgent, NALocatorLocationFieldsAgent

public interface INALocatorAgent3
extends INALocatorAgent2, Serializable

Provides access to properties common to all locator agents.

Remarks

The INALocatorAgent3 interface contains methods common to NALocatorFeatureAgents and NALocatorLocationFieldsAgents, including the name property, and the Bind and query methods.

The query methods include the ability to determine network location values, location ranges, as well as the geometry associated with a network location's source feature.

Product Availability

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


Method Summary
 void queryLocationByPointEx(IPoint point, double tolerance, int curbApproach, INALocation[] location, IPoint[] outPoint, double[] distanceFromPoint)
          Find a network location from a point and curb approach.
 void queryLocationByRowEx(IRow row, double tolerance, int curbApproach, INALocation[] location, double[] distanceFromRow)
          Find a network location from a row and curb approach.
 void queryLocationRangesByGeometry(IGeometry geometry, INALocationRanges[] locationRanges)
          Find network location ranges from a geometry.
 void queryLocationRangesByRow(IRow row, INALocationRanges[] locationRanges)
          Find network location ranges from a row.
 
Methods inherited from interface com.esri.arcgis.networkanalyst.INALocatorAgent2
queryGeometry
 
Methods inherited from interface com.esri.arcgis.networkanalyst.INALocatorAgent
bind, getName, queryLocationByPoint, queryLocationByRow, queryPoint
 

Method Detail

queryLocationRangesByGeometry

void queryLocationRangesByGeometry(IGeometry geometry,
                                   INALocationRanges[] locationRanges)
                                   throws IOException,
                                          AutomationException
Find network location ranges from a geometry.

Remarks

QueryLocationRangesByGeometry determines the set of junctions and edge ranges that intersect the input geometry and returns this information by populating the referenced INALocationRanges parameter.

The NALocatorLocationFieldsAgent should not be used with this method.

Product Availability

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

Parameters:
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
locationRanges - A reference to a com.esri.arcgis.networkanalyst.INALocationRanges (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryLocationRangesByRow

void queryLocationRangesByRow(IRow row,
                              INALocationRanges[] locationRanges)
                              throws IOException,
                                     AutomationException
Find network location ranges from a row.

Remarks

QueryLocationRangesByRow searches for location ranges based upon the inbound Row. The result is returned as an INALocationRanges.

For a NALocatorFeatureAgent, if the row is a feature, QueryLocationRangesByRow uses the feature geometry to populate the INALocation.

For a NALocatorLocationFieldsAgent, QueryLocationRangesByRow uses the field name specified on INALocatorLocationFieldsAgent2.LocationRangesFieldName to populate the INALocation.

Product Availability

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

Parameters:
row - A reference to a com.esri.arcgis.geodatabase.IRow (in)
locationRanges - A reference to a com.esri.arcgis.networkanalyst.INALocationRanges (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryLocationByPointEx

void queryLocationByPointEx(IPoint point,
                            double tolerance,
                            int curbApproach,
                            INALocation[] location,
                            IPoint[] outPoint,
                            double[] distanceFromPoint)
                            throws IOException,
                                   AutomationException
Find a network location from a point and curb approach.

Remarks

QueryLocationByPointEx extends QueryLocationByPoint by adding a CurbApproach parameter.

If, in the INALocator calling this agent, ExcludeRestrictedElements is set to true and CacheRestrictedElements has been called, then there is the possibility that a network edge is only traversable in one direction. In that case, the CurbApproach setting could render a location as unreachable. For example, if the along direction on an edge is restricted, and the location being queried would place the returned NALocation on the left side of the edge, then it is not possible to reach the stop with a vehicle requiring a CurbApproach of left side. QueryLocationByPointEx, in the above example, would switch the side of edge of the returned NALocation to right side, thereby allowing the NALocation to be reachable by vehicles with a CurbApproach requirement of left side.

Product Availability

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

Parameters:
point - A reference to a com.esri.arcgis.geometry.IPoint (in)
tolerance - The tolerance (in)
curbApproach - A com.esri.arcgis.networkanalyst.esriNACurbApproachType constant (in)
location - A reference to a com.esri.arcgis.networkanalyst.INALocation (in/out: use single element array)
outPoint - A reference to a com.esri.arcgis.geometry.IPoint (in/out: use single element array)
distanceFromPoint - The distanceFromPoint (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryLocationByRowEx

void queryLocationByRowEx(IRow row,
                          double tolerance,
                          int curbApproach,
                          INALocation[] location,
                          double[] distanceFromRow)
                          throws IOException,
                                 AutomationException
Find a network location from a row and curb approach.

Remarks

QueryLocationByRowEx extends QueryLocationByRow by adding a CurbApproach parameter.

If, in the INALocator calling this agent, ExcludeRestrictedElements is set to true and CacheRestrictedElements has been called, then there is the possibility that a network edge is only traversable in one direction. In that case, the CurbApproach setting could render a location as unreachable. For example, if the along direction on an edge is restricted, and the location being queried would place the returned NALocation on the left side of the edge, then it is not possible to reach the stop with a vehicle requiring a CurbApproach of left side. QueryLocationByRowEx, in the above example, would switch the side of edge of the returned NALocation to right side, thereby allowing the NALocation to be reachable by vehicles with a CurbApproach requirement of left side.

Product Availability

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

Parameters:
row - A reference to a com.esri.arcgis.geodatabase.IRow (in)
tolerance - The tolerance (in)
curbApproach - A com.esri.arcgis.networkanalyst.esriNACurbApproachType constant (in)
location - A reference to a com.esri.arcgis.networkanalyst.INALocation (in/out: use single element array)
distanceFromRow - The distanceFromRow (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.