User Tools

Site Tools


TGIS_ShortestPath class

DK11 for Delphi | GisShortestPath.TGIS_ShortestPath | Classes | Constructors | Methods | Properties | Events

Encapsulation of shortest path algorithm.

Available also on: .NET | Java | ActiveX | Python.


// Delphi
  TGIS_ShortestPath = class( TGIS_BaseObjectDisposable )
// C++ Builder
class PASCALIMPLEMENTATION TGIS_ShortestPath : public TGIS_BaseObjectDisposable



Inherited Overrides Protected
Name Visibility Description
Create public Create an instance.


Inherited Overrides Protected
Name Visibility Description
Find public Find path between two existing nodes.
LoadTheData public Load data from the layer.
Regenerate public Recreate network (including network storage files).
StartPos public Set a start position for the shortest path.
StopPos public Set a stop position for the shortest path and run shortest path.
UpdateTheData public Update the data with geocoded addresses from geocoder


Inherited Protected
Name Visibility Description
CompassBlocks public Compass divided to a number of blocks (4 by default).
CostModifiers public Cost modifier.
Extent public Path extent.
HeuristicCostModifier public Heuristic cost modifier.
HeuristicMode public Mode of heuristic operation.
HeuristicThreshold public Threshold of starting node seeking area.
Items public Items in the shortest path.
ItemsCount public Number of items in the shortest path.
Layer public Layer assigned to the shortest path.
Network public Instance of Network class (responsible for low level network operations)
OSMRouting public If true the local routing resource is ignored and the requests are send to the TatukGIS online routing service.
RoadLength public Field name used to calculate segment length.
RoadName public Field for the feature name.
StoragePath public Forced storage path.
TotalCost public Total cost of the path.


Inherited Protected
Name Visibility Description
LinkCostEvent published Event which will be fired upon creating a network.
LinkDynamicEvent published Event which will be fired upon traversing link.
LinkLevelEvent published Event which will be fired upon getting the level of the endings of each link.
LinkTypeEvent published Event which will be fired upon getting the type of each link.
NodeHeuristicCostEvent published Event which will be fired upon calculation of heuristic cost.
PathEvent published Event which will be fired on each link of the discovered shortest path.


Types of routing functionality supported by the DK are as follows:

  1. Link cost (for each direction separately)
  2. Link cost modifier to reflect personal preferences.

Typical examples are “time to traverse” and length/distance“ based. For a pipeline network, the cost might be based on volume throughput. The cost is reflected in the vector parameters/attributes.

  1. On demand link cost calculation. This would calculate the cost individually on each call for situations when parameters are changing dynamically. An example might be an electrical power network grid.
  2. Cost for traversing a node. An example might be to consider the economic cost of a toll bridge/road, or the vehicle maintenance cost associated with a particularly poorly maintained segment of road.

Basic geocoding delivers the estimated position of each street number based on the known first and last street addresses on each side of each block or each street. Locations can also be searched based on street crossings.

As is normal for GIS, all street address locations are referenced to a geographic coordinate space, so that the geocoding application can be combined with other GIS functionalities, such as GPS tracking, etc.

Data are loaded from a shape and nodes are constructed on-line. If you want to support unidirectional street routing then attach negative cost. Node cost traverse methodology is not supported. Node UID can be stored in a layer under the name NodeA, NodeB and must be an integer value greater than 0.


2022/11/30 19:18

Page Tools