项目作者: kaligrafy

项目描述 :
Transit Routing server app using Connection Scan Algorithm and flexible parameters
高级语言: C++
项目地址: git://github.com/kaligrafy/trRouting.git
创建时间: 2017-02-12T00:07:23Z
项目社区:https://github.com/kaligrafy/trRouting

开源协议:GNU General Public License v3.0

下载


trRouting

Transit routing server app written in C++ using the Connection Scan Algorithm including flexible parameters.

Performance

With random origin and destination (multiple accessible stops at origin and destination): ~150 ms for access and egress footpaths calculation, ~8 ms for CSA two-way calculation (tested with montreal area GTFS data including all urban and suburban transit agencies, with transfer footpaths between stops of 10 minutes walking or less) on a MacPro 2013 with single thread used (you can start multiple servers and execute parallel requests).

References

Connection Scan Algorithm (CSA) (working version)
Trib-Based Algorithm (TBA) (not yet released)

Dependencies

Open Source Routing Machine (OSRM) (an osrm server with a walking profile must be running for the transit region while making queries to the trRouting server, see OSRM profiles for more profile info and Running OSRM to know how to prepare osm data for OSRM and start the server)

Mac OS X Install with homebrew

  1. brew install boost
  2. brew install capnp

Ubuntu 16.04 Install

Install Cap’nProto

  1. sudo apt-get install clang libboost-all-dev libexpat1-dev libjsoncpp-dev libncurses5-dev

Compilation

trRouting use autoconf/automake as its build system. A recap of the usual commands:

If you are running out of a git checkout:

  1. autoreconf -i

Then:

  1. ./configure
  2. make

On ARM mac with boost installed by homebrew:

  1. CPPFLAGS=-I/opt/homebrew/include/ ./configure --with-boost-libdir="/opt/homebrew/lib/"
  2. make

Test

trRouting uses Googletest to unit test the application. To run the tests, you must first fetch the googletest submodule once into the repo:

  1. git submodule init
  2. git submodule update

Then, to run the unit tests individually, simply run make check.

If you get the following error when running make check, that’s because the submodule initiation and update was done after the compilation configuration. Simply run again autoreconf -i && ./configure and it should work.

  1. Makefile:443: ../googletest/googletest/src/.deps/libgtest_la-gtest-all.Plo: No such file or directory
  2. make[1]: *** No rule to make target '../googletest/googletest/src/.deps/libgtest_la-gtest-all.Plo'. Stop.

Docker

A provided dockerfile allows to easily build an image

Build

docker build -t LOCAL_IMAGE_NAME .

Running as a deamon

docker run -t LOCAL_IMAGE_NAME

FOSSA Status