Package oracle.spatial.network.lod
Interface LODNetworkConstraint
-
- All Superinterfaces:
Constraint<LODAnalysisInfo>
- All Known Implementing Classes:
MaxCostConstraint
,MaxDepthConstraint
public interface LODNetworkConstraint extends Constraint<LODAnalysisInfo>
This interface defines a general network constraint for network analysis. With this interface, users can plug in their own network constraint logic, which will be called during network analysis.- Since:
- 11gR1
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description int
getNumberOfUserObjects()
Returns the max number of user objects to be returned by the getCurrentUserObjects method in LODAnalysisInfo.int[]
getUserDataCategories()
Returns the required user data categories.boolean
isCurrentNodePartiallyExpanded(LODAnalysisInfo info)
While expanding a node during network search, the search algorithm may not be able to access all the outgoing links due to network constraint, and we call a node with unaccessible outgoing links partially expanded node.void
reset()
This method allows a stateful network constraint object to be reset to its original state and reused by network analysis functions.void
setNetworkAnalyst(NetworkAnalyst analyst)
This method allows caller to pass the network analyst object to this constraint, so that the constraint can call the analysis functions provided by the network analyst, or access the network explorer associated with the network analyst.-
Methods inherited from interface oracle.spatial.network.lod.Constraint
isSatisfied
-
-
-
-
Method Detail
-
getUserDataCategories
int[] getUserDataCategories()
Returns the required user data categories.- Returns:
-
getNumberOfUserObjects
int getNumberOfUserObjects()
Returns the max number of user objects to be returned by the getCurrentUserObjects method in LODAnalysisInfo.- Returns:
-
isCurrentNodePartiallyExpanded
boolean isCurrentNodePartiallyExpanded(LODAnalysisInfo info)
While expanding a node during network search, the search algorithm may not be able to access all the outgoing links due to network constraint, and we call a node with unaccessible outgoing links partially expanded node. However, if the node can be revisited and expanded again later, say from a different incoming link, then the unaccessible outgoing links might become accessible, making the node fully expanded. In this case, this method should return true if the current node is partially expanded at this point of the search, and false when the current node is fully expanded.
A node should be considered partially expanded if you plan to revisit it after it is expanded, even if all the outgoing links from the node has been accessed.
The contraint implementation class needs to maintain a partially expanded node list, which contains all the nodes that can be revisited later during the search and the corresponding outgoing link status associated with these nodes. Each time the node is revisited, the status of its outgoing links needs to be updated. A node should be removed from the partially expanded list when it no longer needs to be revisited.- Parameters:
info
-- Returns:
-
reset
void reset()
This method allows a stateful network constraint object to be reset to its original state and reused by network analysis functions.
-
setNetworkAnalyst
void setNetworkAnalyst(NetworkAnalyst analyst)
This method allows caller to pass the network analyst object to this constraint, so that the constraint can call the analysis functions provided by the network analyst, or access the network explorer associated with the network analyst. If network analyst is not needed by the constraint, the link level selector can choose to do nothing with this method.
-
-