|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface INetworkForwardStarEx
Provides access to members that specify the configuration for this NetworkForwardStar object and query information about adjacent elements in the network dataset.
Please refer to NetworkForwardStar coclass for conceptual information about the object underlying the INetworkForwardStarEx interface.
Method Summary | |
---|---|
void |
addEdgeRestriction(INetworkEdge edge,
double fromPosition,
double toPosition)
Restricts the traversability of a range on an edge element in the adjacency queries. |
void |
addJunctionRestriction(INetworkJunction junction)
Restricts a junction element from being returned in the adjacency queries. |
void |
addRestrictionAttribute(INetworkAttribute attribute)
Adds a restriction network attribute to the NetworkForwardStar object to filter elements from adjacency queries. |
void |
addTurnRestriction(INetworkTurn turn)
Restricts a turn in the adjacency queries. |
void |
adjustEdgeAttributeValue(INetworkEdge edge,
double fromPosition,
double toPosition,
INetworkAttribute attribute,
int adjustmentType,
Object value)
Adjusts the value of a network attribute for a range on an edge element. |
void |
adjustJunctionAttributeValue(INetworkJunction junction,
INetworkAttribute attribute,
int adjustmentType,
Object value)
Adjusts the value of a network attribute for a junction element. |
void |
adjustTurnAttributeValue(INetworkTurn turn,
INetworkAttribute attribute,
int adjustmentType,
Object value)
Adjusts the value of a network attribute for a turn element. |
int |
getBacktrackPolicy()
Policy on when to return the from-edge in the NetworkForwardStarAdjacencies object. |
INetworkAttribute |
getHierarchyAttribute()
Network attribute containing the hierarchy values for each network element. |
int |
getMaxTraversableHierarchyValue()
Maximum hierarchy attribute value for elements permitted to be returned in the adjacency queries. |
INetworkDataset |
getNetworkDataset()
Network dataset on which the NetworkForwardStar object is querying. |
INetworkAttribute |
getRestrictionAttribute(int index)
Restriction network attribute by index in the NetworkForwardStar object. |
int |
getRestrictionAttributeCount()
Number of restriction network attributes currently applied to the NetworkForwardStar object. |
boolean |
isForwardTraversal()
Indicates if the NetworkForwardStar object is used to model forward traversal through the network dataset. |
boolean |
isRestricted(INetworkElement element)
Indicates if the given network element is restricted from traversal in the NetworkForwardStar object. |
void |
queryAdjacencies(INetworkJunction atJunction,
INetworkEdge fromEdge,
INetworkEdge lastExteriorEdge,
INetworkForwardStarAdjacencies adjacencies)
Finds all network elements that are adjacent to the given sequence of network elements. |
void |
queryAttributeCutoffRange(INetworkEdge edge,
INetworkAttribute attribute,
double queryPosition,
Object cutoffValue,
double[] fromPosition,
double[] toPosition)
Returns the range of accessible positions within a specified attribute cutoff from a query position along an edge element, respective to any existing attribute adjustments along the edge. |
void |
queryEdge(int eID,
int direction,
INetworkEdge edge)
Performs a network edge element query by element ID and edge direction and populates the given edge element object. |
void |
queryJunction(int eID,
INetworkJunction junction)
Performs a network junction element query by element ID and populates the given junction element object. |
void |
queryTraversableRange(INetworkEdge edge,
double queryPosition,
double[] fromPosition,
double[] toPosition,
boolean[] isFromPositionAccessible,
boolean[] isToPositionAccessible)
Returns the range of accessible positions from a query position along an edge element, respective to any existing restrictions along the edge. |
void |
queryTurn(int eID,
INetworkTurn turn)
Performs a network turn element query by element ID and populates the given turn element object. |
void |
removeAttributeValueAdjustments()
Removes all element-specific attribute value adjustments currently applied to the NetworkForwardStar object. |
void |
removeElementRestrictions()
Removes all element-specific restrictions currently applied to the NetworkForwardStar object. |
void |
removeRestrictionAttributes()
Removes all restriction network attributes currently applied to the NetworkForwardStar object. |
void |
setBacktrackPolicy(int backtrack)
Policy on when to return the from-edge in the NetworkForwardStarAdjacencies object. |
void |
setHierarchyAttributeByRef(INetworkAttribute attribute)
Network attribute containing the hierarchy values for each network element. |
void |
setIsForwardTraversal(boolean isForwardTraversal)
Indicates if the NetworkForwardStar object is used to model forward traversal through the network dataset. |
void |
setMaxTraversableHierarchyValue(int maxValue)
Maximum hierarchy attribute value for elements permitted to be returned in the adjacency queries. |
Method Detail |
---|
void queryAdjacencies(INetworkJunction atJunction, INetworkEdge fromEdge, INetworkEdge lastExteriorEdge, INetworkForwardStarAdjacencies adjacencies) throws IOException, AutomationException
QueryAdjacencies is the primary method for use in network dataset traversal. Using this method, the elements adjacent to the provided atJunction may be filtered based on hierarchy attributes, restriction attributes, BacktrackPolicy and other NetworkForwardStar settings. Any unfiltered elements will be returned in the NetworkForwardStarAdjacencies object. The NetworkForwardStarAdjacencies component is essentially a cursor object used to retrieve the element information relevant to a particular query for adjacency information from the NetworkForwardStar .
QueryAdjacencies requires an instantiated NetworkForwardStarAdjacencies object to return the adjacent elements found when calling QueryAdjacencies. The NetworkForwardStarAdjacencies object is created using the INetworkQuery::CreateForwardStarAdjacencies method. The NetworkForwardStarAdjacencies object should be reused in subsequent calls to QueryAdjacencies .
For standard patterns of queries to the NetworkForwardStar object, the QueryAdjacencies method will inform the related input NetworkForwardStarAdjacencies object of any additional element-specific dynamic restrictions and/or element-specific dynamic attribute adjustments to associate with the adjacent elements.
The fromEdge in an optional parameter that specifies the edge from which the atJunction was approached. This is useful in filtering results based on BacktrackPolicy and network turns.
The lastExteriorEdge is an optional parameter used to determine from where this particular network traversal maneuver began. This is useful in filtering for multi-part turns.
atJunction
- A reference to a com.esri.arcgis.geodatabase.INetworkJunction (in)fromEdge
- A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)lastExteriorEdge
- A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)adjacencies
- A reference to a com.esri.arcgis.geodatabase.INetworkForwardStarAdjacencies (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void queryJunction(int eID, INetworkJunction junction) throws IOException, AutomationException
QueryJunction takes an element ID for a junction and populates the passed-in NetworkJunction object.
This method is analogous to the existing INetworkQuery::QueryJunction method, except that the NetworkForwardStar will initialize the queried element with any potential attribute adjustment information.
Any queried junction should be either initialized directly from the QueryJunction method, the INetworkForwardStarAdjacencies::QueryAtJunction, or the INetworkForwardStarAdjacencies::QueryToJunction method in order to ensure proper element awareness of attribute adjustments.
eID
- The eID (in)junction
- A reference to a com.esri.arcgis.geodatabase.INetworkJunction (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void queryEdge(int eID, int direction, INetworkEdge edge) throws IOException, AutomationException
QueryEdge takes an element ID for an edge, as well as the direction being traveled along that edge, and populates the passed-in NetworkEdge object.
This method is analogous to the existing INetworkQuery::QueryEdge method, except that the NetworkForwardStar will initialize the queried element with any potential attribute adjustment information.
Any queried edge should be either initialized directly from the QueryEdge method or the INetworkForwardStarAdjacencies::QueryEdge method in order to ensure proper element awareness of attribute adjustments.
eID
- The eID (in)direction
- A com.esri.arcgis.geodatabase.esriNetworkEdgeDirection constant (in)edge
- A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void queryTurn(int eID, INetworkTurn turn) throws IOException, AutomationException
QueryTurn takes an element ID for a turn and populates the passed-in NetworkTurn object.
This method is analogous to the existing INetworkQuery::QueryTurn method, except that the NetworkForwardStar will initialize the queried element with any potential attribute adjustment information.
Any queried edge should be either initialized directly from the QueryTurn method or the INetworkForwardStarAdjacencies::QueryTurn method in order to ensure proper element awareness of attribute adjustments.
eID
- The eID (in)turn
- A reference to a com.esri.arcgis.geodatabase.INetworkTurn (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void queryTraversableRange(INetworkEdge edge, double queryPosition, double[] fromPosition, double[] toPosition, boolean[] isFromPositionAccessible, boolean[] isToPositionAccessible) throws IOException, AutomationException
If a queried edge element is not completely restricted (as indicated by the INetworkForwardStarEx::get_IsRestricted method), then it may still have partial edge restrictions associated with it. The QueryTraversableRange method may be used to determine the appropriate range of accessibility along that edge from a given query position.
The isFromJunctionAccessible and isToJunctionAccessible return values indicate whether or not the fromPosition and toPosition of the traversable range are also accessible from the current position, respectively. For example, in the graphic above, the isFromPositionAccessible return value will be True and the isToPositionAccessible return value will be False.
edge
- A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)queryPosition
- The queryPosition (in)fromPosition
- The fromPosition (out: use single element array)toPosition
- The toPosition (out: use single element array)isFromPositionAccessible
- The isFromPositionAccessible (out: use single element array)isToPositionAccessible
- The isToPositionAccessible (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void queryAttributeCutoffRange(INetworkEdge edge, INetworkAttribute attribute, double queryPosition, Object cutoffValue, double[] fromPosition, double[] toPosition) throws IOException, AutomationException
edge
- A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)attribute
- A reference to a com.esri.arcgis.geodatabase.INetworkAttribute (in)queryPosition
- The queryPosition (in)cutoffValue
- A Variant (in)fromPosition
- The fromPosition (out: use single element array)toPosition
- The toPosition (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.INetworkDataset getNetworkDataset() throws IOException, AutomationException
NetworkDataset returns the network dataset on which the NetworkForwardStar object is querying.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.int getBacktrackPolicy() throws IOException, AutomationException
BacktrackPolicy is also known as the U-Turn Policy. The NetworkForwardStar filters/excludes an element from being returned by QueryAdjacencies if that element violates the current u-turn/backtrack policy. For example, if the incoming edge is provided in the call to query adjacency information from the NetworkForwardStar and the current backtrack policy is "no backtrack allowed", then the NetworkForwardStar will exclude this incoming edge from being returned in the adjacency query.
Please see esriNetworkForwardStarBacktrack for information about specific enumerations.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setBacktrackPolicy(int backtrack) throws IOException, AutomationException
backtrack
- A com.esri.arcgis.geodatabase.esriNetworkForwardStarBacktrack constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean isForwardTraversal() throws IOException, AutomationException
IsForwardTraversal determines the direction of travel in QueryAdjacencies calls. Setting IsForwardTraversal to true is called “Forward Traversal”, while setting IsForwardTraversal to false is called “Backward Traversal”.
In forward traversal, when including a fromEdge in the call to Query Adjacencies, you should use an edge direction that corresponds to travel from that edge into the specified atJunction. The adjacent edges returned in the NetworkForwardStarAdjacencies object will correspond to valid traversal edges in the forward direction of travel. This can be seen in the graphic below. Forward traversal entails making a QueryAdjacencies call with fromEdge “A” in the along direction and atJunction “y”. With a BacktrackPolicy of Allow, the returned edges would include edge “A” in the against direction (this could be considered a U-Turn), and edge “B” in the along direction. In layman’s terms, traveling through junction “y” from edge “A” has two possible paths, turning around and returning along edge “A” in the opposite direction, or traveling along edge “B”.
In backward traversal, if you imagine network traversal as walking a path, then you would be walking backward. Your call to QueryAdjacencies for the atJunction “y” should use a fromEdge of B in the along direction. This is like walking backward into junction “y” from edge “B”. With that call, the returned adjacent edges will be “A” in the along direction and “B” in the against direction. In layman’s terms, if you had traveled onto edge “B” from junction “y”, you could only have done so coming from edge “A” in the along direction, or edge “B” in the against direction.
Generally, IsForwardTraversal should be set to true. This makes QueryAdjacency calls and results easier to understand. In some network analysis cases, however, using a forward traversal search out from an origin, while, at the same time, using a backward traversal search out from a destination can aid in reducing search time.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setIsForwardTraversal(boolean isForwardTraversal) throws IOException, AutomationException
isForwardTraversal
- The isForwardTraversal (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void addRestrictionAttribute(INetworkAttribute attribute) throws IOException, AutomationException
The AddRestrictionAttribute method adds a NetworkAttribute to the NetworkForwardStar object. This prevents network elements that have a value of True for this attribute from being returned by the forward star in QueryAdjacencies. This is useful when performing a network analysis only on those network elements that permit travel.
Only a NetworkAttribute with a UsageType of esriNAUTRestriction can be added to the NetworkForwardStar as a restriction.
attribute
- A reference to a com.esri.arcgis.geodatabase.INetworkAttribute (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.INetworkAttribute getRestrictionAttribute(int index) throws IOException, AutomationException
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.int getRestrictionAttributeCount() throws IOException, AutomationException
RestrictionAttributeCount retrieves the number of restriction attributes that have been applied to the NetworkForwardStar object. This count can be used to set up an iteration of the applied restriction attributes.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void removeRestrictionAttributes() throws IOException, AutomationException
The RemoveRestrictionAttributes method removes the NetworkAttributes of usage type restriction from being applied as a restriction in the NetworkForwardStar object. The network attributes were added to the NetworkForwardStar using the AddRestrictionAttribute method.
RemoveRestrictionAttributes is analogous to INetworkForwardStarSetup::RemoveRestriction method. However, RemoveRestriction could be used to remove an individual attribute.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.INetworkAttribute getHierarchyAttribute() throws IOException, AutomationException
The HierarchyAttribute is the NetworkAttribute used in determining the hierarchy level of a given network element. In calls to QueryAdjacencies, the NetworkForwardStar object will only return network elements whose hierarchy level is less than or equal to the MaxTraversableHierarchyValue value.
The HierarchyAttribute must be a NetworkAttribute with a UsageType of esriNAUTHierarchy.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setHierarchyAttributeByRef(INetworkAttribute attribute) throws IOException, AutomationException
attribute
- A reference to a com.esri.arcgis.geodatabase.INetworkAttribute (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.int getMaxTraversableHierarchyValue() throws IOException, AutomationException
If a HierarchyAttribute is specified, then, in calls to QueryAdjacencies, the NetworkForwardStar object will only return network edge elements whose HierarchyAttribute value is less than or equal to the MaxTraversableHierarchyValue value.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setMaxTraversableHierarchyValue(int maxValue) throws IOException, AutomationException
maxValue
- The maxValue (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void addJunctionRestriction(INetworkJunction junction) throws IOException, AutomationException
AddJunctionRestriction restricts the input junction from being used in calls to QueryAdjacencies. The RemoveElementRestrictions method can be used for removing all element-specific restrictions.
AddJunctionRestriction, AddEdgeRestriction, and AddTurnRestriction are intended as a replacement to INetworkForwardStarSetup::Traversable, as well as the related INetworkForwardStar::SetAllTraversable, INetworkForwardStarSetup::SetTraversable, and INetworkForwardStarSetup::NonTraversableElements.
junction
- A reference to a com.esri.arcgis.geodatabase.INetworkJunction (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void addEdgeRestriction(INetworkEdge edge, double fromPosition, double toPosition) throws IOException, AutomationException
AddEdgeRestriction restricts a given range for the input edge. Multiple, disjoint partial-edge restrictions may be applied to the same edge. The RemoveElementRestrictions method can be used for removing all element-specific restrictions.
If the traversal cannot enter the edge from the atJunction of a QueryAdjacencies call due to partial (or whole) edge restrictions, then the edge will not be included in the NetworkForwardStarAdjacencies object.
AddJunctionRestriction, AddEdgeRestriction, and AddTurnRestriction are intended as a replacement to INetworkForwardStarSetup::Traversable, as well as the related INetworkForwardStar::SetAllTraversable, INetworkForwardStarSetup::SetTraversable, and INetworkForwardStarSetup::NonTraversableElements.
edge
- A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)fromPosition
- The fromPosition (in)toPosition
- The toPosition (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void addTurnRestriction(INetworkTurn turn) throws IOException, AutomationException
AddTurnRestriction restricts the input turn's associated traversal maneuver in the NetworkForwardStar. The RemoveElementRestrictions method can be used for removing all element-specific restrictions.
AddJunctionRestriction, AddEdgeRestriction, and AddTurnRestriction are intended as a replacement to INetworkForwardStarSetup::Traversable, as well as the related INetworkForwardStar::SetAllTraversable, INetworkForwardStarSetup::SetTraversable, and INetworkForwardStarSetup::NonTraversableElements.
turn
- A reference to a com.esri.arcgis.geodatabase.INetworkTurn (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void removeElementRestrictions() throws IOException, AutomationException
RemoveElementRestrictions removes all element-specific restrictions that have been added to the NetworkForwardStar via the AddEdgeRestriction, AddJunctionRestriction, or AddTurnRestriction methods.
Removing element-specific restrictions with this method does not affect filtering of elements in the NetworkForwardStar based on restriction attributes (i.e., elements may still be restricted by their restriction attribute values).
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void adjustJunctionAttributeValue(INetworkJunction junction, INetworkAttribute attribute, int adjustmentType, Object value) throws IOException, AutomationException
AdjustJunctionAttributeValue applies attribute adjustments to the input junction.
Attribute adjustments at the NetworkForwardStar level allow dynamically adjusting network attribute values at runtime. For example, it is possible to add a constant value to a cost attribute or scale a cost attribute by a constant factor, as well as dynamically replacing attribute values.
Please see the help for esriNetworkAttributeAdjustmentType for attribute adjustment usage protocols.
junction
- A reference to a com.esri.arcgis.geodatabase.INetworkJunction (in)attribute
- A reference to a com.esri.arcgis.geodatabase.INetworkAttribute (in)adjustmentType
- A com.esri.arcgis.geodatabase.esriNetworkAttributeAdjustmentType constant (in)value
- A Variant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void adjustEdgeAttributeValue(INetworkEdge edge, double fromPosition, double toPosition, INetworkAttribute attribute, int adjustmentType, Object value) throws IOException, AutomationException
AdjustEdgeAttributeValue applies attribute adjustments along a given range for the input edge. Multiple, disjoint partial-edge attribute adjustments may be applied to the same edge. The RemoveAttributeAdjustments method can be used for removing all element-specific attribute adjustments.
Attribute adjustments at the NetworkForwardStar level allow dynamically adjusting network attribute values at runtime. For example, it is possible to add a constant value to a cost attribute or scale a cost attribute by a constant factor, as well as dynamically replacing attribute values.
Please see the help for esriNetworkAttributeAdjustmentType for attribute adjustment usage protocols, including rules for overlapping attribute adjustments along an edge.
edge
- A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)fromPosition
- The fromPosition (in)toPosition
- The toPosition (in)attribute
- A reference to a com.esri.arcgis.geodatabase.INetworkAttribute (in)adjustmentType
- A com.esri.arcgis.geodatabase.esriNetworkAttributeAdjustmentType constant (in)value
- A Variant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void adjustTurnAttributeValue(INetworkTurn turn, INetworkAttribute attribute, int adjustmentType, Object value) throws IOException, AutomationException
AdjustTurnAttributeValue applies attribute adjustments to the input turn.
Attribute adjustments at the NetworkForwardStar level allow dynamically adjusting network attribute values at runtime. For example, it is possible to add a constant value to a cost attribute or scale a cost attribute by a constant factor, as well as dynamically replacing attribute values.
Please see the help for esriNetworkAttributeAdjustmentType for attribute adjustment usage protocols.
turn
- A reference to a com.esri.arcgis.geodatabase.INetworkTurn (in)attribute
- A reference to a com.esri.arcgis.geodatabase.INetworkAttribute (in)adjustmentType
- A com.esri.arcgis.geodatabase.esriNetworkAttributeAdjustmentType constant (in)value
- A Variant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void removeAttributeValueAdjustments() throws IOException, AutomationException
Removes all element-specific attribute value adjustments currently applied to the NetworkForwardStar object.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean isRestricted(INetworkElement element) throws IOException, AutomationException
element
- A reference to a com.esri.arcgis.geodatabase.INetworkElement (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |