Shortest Path Routing with PostGIS - PGRouting - Network Analysis - Complete Web Project - Part 3
In this crucial step, we bring our routing graph to life by generating edges — the paths between network nodes. These edges represent the segments vehicles will travel, along with distance-based cost values needed for shortest path calculation.
✅ What’s Covered in this Video:
-
Create the
network_edges
table
The table includessource
,target
,geometry
, andcost
— the core components needed by pgRouting. -
Identify node pairs on each line segment
UsingST_LineLocatePoint()
androw_number()
, we sort points along each line to extract valid node pairs that form connected paths. -
Insert edge geometries
For each pair of nodes, we draw a line usingST_MakeLine()
and assign a cost using real-world distance (ST_DistanceSphere()
). -
Add
reverse_cost
for undirected routing
Most city roads allow bi-directional movement. So, we mirror the cost in both directions unless restrictions are added later. -
Apply a spatial index
A GIST index is created for performance, especially when working with thousands of network edges.
💡 Why This Step is Important:
Without edges, nodes are just isolated points. This step forms the connectivity graph, enabling Dijkstra’s algorithm to find the most efficient route from one point to another.
Each edge acts like a “road segment” that connects two “intersections” (nodes), and the cost represents real travel distance — making the routing system both realistic and efficient.
In the next part, we’ll enable pgRouting and start running shortest path queries
Comments
Leave a Reply