import CIMFilteredFindPathsConfiguration from "@arcgis/core/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.js";const CIMFilteredFindPathsConfiguration = await $arcgis.import("@arcgis/core/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.js");- Inheritance
- CIMFilteredFindPathsConfiguration→
Accessor
- Since
- ArcGIS Maps SDK for JavaScript 4.32
The pathfinding configuration for executeFindPaths() and executeFindPathsAsynchronous().
You can define filters that specify which entity types and relationship types must be included. You can also define filters that exclude entity types and relationship types or specific entities and relationships. You can define mandatory waypoints (individual entities or relationships) that must be present in paths. You can also define optional waypoints (individual entities or relationships, and entire entity types and entire relationship types): when optional waypoints are defined, paths must pass through at least one of the optional waypoints.
- Example
- knowledgeGraphService.executeFindPaths({inKnowledgeGraphUrl: "https://sampleserver7.arcgisonline.com/server/rest/services/Hosted/BumbleBees/KnowledgeGraphServer",config: {type: "CIMFilteredFindPathsConfiguration",name: "exampleFFPconfiguration",originEntities: [{type: "CIMFilteredFindPathsEntity",iD: devPathStart,entityTypeName: "User"}],destinationEntities: [{type: "CIMFilteredFindPathsEntity",iD: devPathEnd,entityTypeName: "Species"}],pathFilters: [{type: "CIMFilteredFindPathsPathFilter",iD: null,itemTypeName: "Observation",itemType: "Entity",filterType: "Include"}],defaultTraversalDirectionType: "Any",entityUsage: "EachPair",pathMode: "All",minPathLength: 1,maxPathLength: 8,maxCountPaths: 100000}});
Constructors
Constructor
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| properties | | |
Properties
| Property | Type | Class |
|---|---|---|
| readonly inherited | ||
| | ||
| | ||
| | ||
| | ||
| | ||
| | ||
| | ||
| | ||
| | ||
| "Shortest" | "All" | | |
| | ||
| readonly | "CIMFilteredFindPathsConfiguration" | |
defaultTraversalDirectionType
Specifies the direction which the algorithm uses to traverse relationship in the path.
| Direction | Description |
|---|---|
| Any | The filtered find paths algorithm considers all relationships independent of their direction. |
| Forward | The filtered find paths algorithm considers only the relationships that are traversed in forward direction, origin --> destination. |
| Backward | The filtered find paths algorithm considers only the relationships that are traversed in backward direction, origin <-- destination. |
- Default value
- "Any"
destinationEntities
- Type
- CIMFilteredFindPathsEntity[]
The entities to use as the destination of the path.
entityUsage
Specifies how the origin and destination entities are used in the executeFindPaths() and executeFindPathsAsynchronous() algorithm.
For example, say you want to find all shortest paths between {A, B} and {C, D} where A and B are your possible origin entities and
C and D are your possible destination entities.
Using the default setting of AnyOriginAnyDestination, this means that the algorithm can return 4 kinds of shortest paths:
A -> C
A -> D
B -> C
B -> D
If the shortest paths between each origin and each destination have the following lengths:
A -> C : length 4
A -> D : length 3
B -> C : length 5
B -> D : length 6
Then the "shortest shortest paths" here are the shortest paths of length 3, from A to D. So only these paths will be returned.
| Option | Description |
|---|---|
| AnyOriginAnyDestination | The filtered find paths algorithm only returns the shortest paths for the origin entities that have the shortest shortest paths and the shortest paths for the destination entities that have the shortest shortest paths. When multiple entities are used, this option leads to faster computations. |
| AnyOriginAllDestinations | The filtered find paths algorithm returns the shortest paths for the origin entities that have the shortest shortest paths and one shortest path (if it exists) per destination entity. When multiple entities are used, this option leads to longer computations. |
| AllOriginsAnyDestination | The filtered find paths algorithm returns one shortest path (if it exists) per origin entity and the shortest paths for the destination entities that have the shortest shortest paths. When multiple entities are used, this option leads to longer computations. |
| AllOriginsAllDestinations | The filtered find paths algorithm returns one shortest path (if it exists) per origin entity and one shortest path (if it exists) per destination entity. When multiple entities are used, this option leads to longer computations. |
| EachPair | The filtered find paths algorithm returns one shortest path (if it exists) per pair of origin and destination entity. When multiple entities are used, this option leads to longer computations. An error will be returned if strictly more than 10 origin entities are defined or if strictly more than 10 destination entities are defined. |
- Default value
- "AnyOriginAnyDestination"
maxCountPaths
- Type
- number
The maximum number of paths that the executeFindPaths() and executeFindPathsAsynchronous()
algorithm returns. This parameter is only taken into account when pathMode is All.
- Default value
- 100000
maxPathLength
- Type
- number
The maximum path length. The default value of 0 means the value is unlimited.
- Default value
- 0
originEntities
- Type
- CIMFilteredFindPathsEntity[]
The entities to use as the origin of the paths.
traversalDirections
- Type
- CIMKGTraversalDirection[]
The filtered find paths algorithm uses traversal directions to specify how relationships are traversed. When no traversal direction is defined for a specific relationship type, the default traversal direction is used.
Methods
| Method | Signature | Class |
|---|---|---|
| inherited static | fromJSON(json: any): any | |
| inherited | toJSON(): any |
fromJSON
- Signature
-
fromJSON (json: any): any
Creates a new instance of this class and initializes it with values from a JSON object
generated from an ArcGIS product. The object passed into the input json
parameter often comes from a response to a query operation in the REST API or a
toJSON()
method from another ArcGIS product. See the Using fromJSON()
topic in the Guide for details and examples of when and how to use this function.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| json | A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects. | |
- Returns
- any
Returns a new instance of this class.
toJSON
- Signature
-
toJSON (): any
Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.
- Returns
- any
The ArcGIS portal JSON representation of an instance of this class.