/pgrouting

Repository contains pgRouting library. Development branch is "develop", stable branch is "master"

Primary LanguagePLpgSQLGNU General Public License v2.0GPL-2.0

pgRouting - Routing on PostgreSQL

Join the chat at https://gitter.im/pgRouting/pgrouting

STATUS

Branches

  • The master branch has the release 2.6.1
  • The release/2.5 branch has the next micro-release 2.5.4 (if needed)
  • The develop branch has the development of the next release 3.0.0-dev

For the complete list of releases go to: https://github.com/pgRouting/pgrouting/releases

LINKS

Branch Travis Appveyor Jenkins Comments
master Build Status Appveyor Status Jenkins Status
develop Build Status Appveyor Status Jenkins Status
gh-pages Build Status not enabled
  • travis: Postgis 2.3.3 for Postgres 9.5 & 9.6

    • precise
    • developed with Postgres 9.3 and Postgis 2.3.3
  • jenkins: g++ 4.8 on 32 & 64 bits for Postgis 2.4.0dev and Postgres 9.5, 9.6, 10

  • appveyor: vs1013 Postgis 2.3.3 on Postgres 9.4

INTRODUCTION

pgRouting extends the PostGIS/PostgreSQL geospatial database to provide geospatial routing and other network analysis functionality.

This library contains following features:

  • All Pairs Shortest Path, Johnson’s Algorithm
  • All Pairs Shortest Path, Floyd-Warshall Algorithm
  • Shortest Path A*
  • Bi-directional Dijkstra Shortest Path
  • Bi-directional A* Shortest Path
  • Shortest Path Dijkstra Family of functions
  • Shortest Path Dijkstra Cost Family of functions
  • Driving Distance
  • K-Shortest Path, Multiple Alternative Paths (Yen's algorithm)
  • Traveling Sales Person (TSP)
  • Turn Restriction Shortest Path (TRSP)

Additionally, ready for testing and to be part of 2.5 official version:

  • Shortest Path Dijkstra With Points Family of functions
  • Shortest Path Dijkstra Cost With Points Family of functions
  • Driving Distance With Points
  • K-Shortest Path With Points, Multiple Alternative Paths (Yen's algorithm)
  • Dijkstra Via (Vertices)

and many more.

Family of functions include:

  • one to one
  • one to many
  • many to one
  • many to many

REQUIREMENTS

Building reqirements

  • Perl
  • C and C++ compilers
    • GNU >= 4.6
    • MSVC >= 18.0
  • Postgresql >= 9.2
  • The Boost Graph Library (BGL) >= 1.53
  • CMake >= 3.2
  • CGAL >= 4.4
  • Sphinx >= 1.2

User's reqirements

  • PostGIS >= 2.0

INSTALLATION

See online documentation: https://docs.pgrouting.org/

COMPILATION

For MinGW on Windows

mkdir build
cd build
cmake -G"MSYS Makefiles" ..
make
make install

Also pre-built Windows binaries can be downloaded from https://postgis.net/windows_downloads

For Linux

mkdir build
cd build
cmake  ..
make
sudo make install

Build with documentation (requires Sphinx)

cmake -DWITH_DOC=ON ..

Postgresql 9.2+

createdb mydatabase
psql mydatabase -c "CREATE EXTENSION postgis"
psql mydatabase -c "CREATE EXTENSION pgrouting"

USAGE

See online documentation: https://docs.pgrouting.org/dev/en/index.html

LICENSE

  • Most features are available under GPLv2.
  • Some Boost extensions are available under Boost license (see LICENSE_1_0.txt)
  • Some code contributed by iMaptools.com is available under MIT-X license.