Commit 228b17fa authored by Bas Couwenberg's avatar Bas Couwenberg

Imported Upstream version 2.1.0

parent 2cfc5ff7
# top-most EditorConfig file
root = true
# Defaults if not specified later
[*]
indent_size = 4
indent_style = space
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
# C source and header files
[*.{c,h}]
indent_size = 4
indent_style = space
# YAML and RST files
[*.{rst,yml}]
indent_size = 2
indent_style = space
......@@ -5,3 +5,5 @@ build
issues
tools/vagrant/packaging.sh
*.mo
.directory
notUsed
......@@ -7,6 +7,8 @@
language: c
sudo: required
compiler:
- gcc
......@@ -16,25 +18,35 @@ notifications:
branches:
only:
- master
- develop
- feature-travis
addons:
postgresql: "9.2"
postgresql: "9.3"
postgresql: "9.4"
services:
#- postgresql
#- postgresql: 9.1
#- postgresql: 9.2
#- postgresql: 9.3
env:
matrix:
#- POSTGRESQL_VERSION=8.4 POSTGIS_VERSION=1.5
- POSTGRESQL_VERSION=9.0 POSTGIS_VERSION=1.5
- POSTGRESQL_VERSION=9.1 POSTGIS_VERSION=1.5
- POSTGRESQL_VERSION=9.4 POSTGIS_VERSION=2.1
- POSTGRESQL_VERSION=9.3 POSTGIS_VERSION=2.1
- POSTGRESQL_VERSION=9.2 POSTGIS_VERSION=2.1
- POSTGRESQL_VERSION=9.1 POSTGIS_VERSION=2.1
- POSTGRESQL_VERSION=9.1 POSTGIS_VERSION=2.0
- POSTGRESQL_VERSION=9.4 POSTGIS_VERSION=2.0
- POSTGRESQL_VERSION=9.3 POSTGIS_VERSION=2.0
- POSTGRESQL_VERSION=9.2 POSTGIS_VERSION=2.0
#- POSTGRESQL_VERSION=9.3 POSTGIS_VERSION=2.0
- POSTGRESQL_VERSION=9.1 POSTGIS_VERSION=2.0
- POSTGRESQL_VERSION=9.1 POSTGIS_VERSION=2.1
- POSTGRESQL_VERSION=9.2 POSTGIS_VERSION=2.1
#- POSTGRESQL_VERSION=9.3 POSTGIS_VERSION=2.1
## We are NOT supporting these for pgrouting 2.1.0
#- POSTGRESQL_VERSION=8.4 POSTGIS_VERSION=1.5
#- POSTGRESQL_VERSION=9.0 POSTGIS_VERSION=1.5
#- POSTGRESQL_VERSION=9.1 POSTGIS_VERSION=1.5
install:
- ./tools/travis/pgrouting_install.sh $POSTGRESQL_VERSION $POSTGIS_VERSION
......
This diff is collapsed.
Changes for 2.1.0
-------------------------------------------------------------------------------
- A C and C++ library for developer was created
- encapsulates postgreSQL related functions
- encapsulates Boost.Graph graphs
- Directed Boost.Graph
- Undirected Boost.graph.
- allow any-integer in the id's
- allow any-numerical on the cost/reverse_cost columns
- Three Functions where completly re-factored using the developers library and functionality was added.
- pgr_dijkstra
- pgr_ksp
- pgr_drivingDistance
- Improved
Alphashape function now can generate better polygons with holes and custom parameter
- Instead of generating many libraries:
- All functions are encapsulated in one library
- The library has a the prefix 2-1-0
- Added proposed functions to be evaluated:
- Proposed functions from Steve Woodbridge, (Classified as Convinience by the author.)
- pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on closest edge.
- pgr_flipEdges - flip the edges in an array of geometries so the connect end to end.
- pgr_textToPoints - convert a string of x,y;x,y;... locations into point geometries.
- pgr_pointsToVids - convert an array of point geometries into vertex ids.
- pgr_pointsToDMatrix - Create a distance matrix from an array of points.
- pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id.
- pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id.
- Added proposed functions from GSoc Projects:
- pgr_vrppdtw
- Removed the 1.x legacy functions
- Some bug fixes in other functions
Changes for 2.0.0
-------------------------------------------------------------------------------
* Graph Analytics - tools for detecting and fixing connection some problems in a graph
* A collection of useful utility functions
* Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)
* Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, pgr_bdDijkstra)
* One to many nodes search (pgr_kDijkstra)
* K alternate paths shortest path (pgr_ksp)
* New TSP solver that simplifies the code and the build process (pgr_tsp), dropped "Gaul Library" dependency
* Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star
* Dropped support for Shooting Star
* Built a test infrastructure that is run before major code changes are checked in
* Tested and fixed most all of the outstanding bugs reported against 1.x that existing in the 2.0-dev code base.
* Improved build process for Windows
* Automated testing on Linux and Windows platforms trigger by every commit
* Modular library design
* Compatibility with PostgreSQL 9.1 or newer
* Compatibility with PostGIS 2.0 or newer
* Installs as PostgreSQL EXTENSION
* Return types refactored and unified
* Support for table SCHEMA in function parameters
* Support for ``st_`` PostGIS function prefix
* Added ``pgr_`` prefix to functions and types
* Better documentation: http://docs.pgrouting.org
Changes for release 1.05
-------------------------------------------------------------------------------
* Bugfixes
Changes for release 1.03
-------------------------------------------------------------------------------
* Much faster topology creation
* Bugfixes
Changes for release 1.02
-------------------------------------------------------------------------------
* Shooting* bugfixes
* Compilation problems solved
Changes for release 1.01
-------------------------------------------------------------------------------
* Shooting* bugfixes
Changes for release 1.0
-------------------------------------------------------------------------------
* Core and extra functions are separated
* Cmake build process
* Bugfixes
Changes for release 1.0.0b
-------------------------------------------------------------------------------
* Additional SQL file with more simple names for wrapper functions
* Bugfixes
Changes for release 1.0.0a
-------------------------------------------------------------------------------
* Shooting* shortest path algorithm for real road networks
* Several SQL bugs were fixed
Changes for release 0.9.9
-------------------------------------------------------------------------------
* PostgreSQL 8.2 support
* Shortest path functions return empty result if they couldn’t find any path
Changes for release 0.9.8
-------------------------------------------------------------------------------
* Renumbering scheme was added to shortest path functions
* Directed shortest path functions were added
* routing_postgis.sql was modified to use dijkstra in TSP search
# pgRouting - Routing on PostgreSQL
[![Join the chat at https://gitter.im/pgRouting/pgrouting](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/pgRouting/pgrouting?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
## STATUS
The *master* branch reflects our current 2.0.0 release. iPost 2.0.0 development will happen in the *develop* branch. The 2.0 release is not backwards compatible with the 1.x releases because we have totally restructured the API and the source code to position the product for additional future growth. Once you see all the new functionality that we have added and the simplier API design we thing you will be very happy with the results.
### Current Development is in the *develop* branch
The *master* branch reflects our current 2.1.0 release.
Post 2.1.0 development will happen in the *develop* branch.
## LINKS
......@@ -26,6 +32,11 @@ The *master* branch reflects our current 2.0.0 release. iPost 2.0.0 development
<td><img src="https://travis-ci.org/pgRouting/pgrouting.png?branch=develop" alt="Build Status"/></td>
<td></td>
</tr>
<tr>
<td>develop_2_1_0</td>
<td><img src="https://travis-ci.org/pgRouting/pgrouting.png?branch=develop_2_1_0" alt="Build Status"/></td>
<td></td>
</tr>
<tr>
<td>gh-pages</td>
<td><img src="https://travis-ci.org/pgRouting/pgrouting.png?branch=gh-pages" alt="Build Status"/></td>
......@@ -55,12 +66,14 @@ This library contains following features:
## REQUIREMENTS
* C and C++ compilers
* Postgresql version >= 8.4 (9.1 or higher recommended)
* PostGIS version >= 1.5 (2.0 or higher recommended)
* The Boost Graph Library (BGL). Version >= [TBD]
* Postgresql version >= 9.1
* PostGIS version >= 2.0
* The Boost Graph Library (BGL).
* Version >= 1.55 for linux
* Version >= 1.58 for MAC
* CMake >= 2.8.8
* (optional, for Driving Distance) CGAL >= [TBD]
* (optional, for Documentation) Sphinx >= [TBD]
* CGAL >= 4.4
* Sphinx >= 1.2
## INSTALLATION
......@@ -72,25 +85,23 @@ For MinGW on Windows
mkdir build
cd build
cmake -G"MSYS Makefiles" -DWITH_DD=ON ..
cmake -G"MSYS Makefiles" ..
make
make install
Also pre-built Windows binaries can be downloaded from:
http://www.postgis.net/windows_downloads
Also pre-built Windows binaries can be downloaded from http://.postgis.net/windows_downloads
For Linux
mkdir build
cd build
cmake -DWITH_DD=ON ..
cmake ..
make
sudo make install
Build with documentation (requires [Sphinx](http://sphinx-doc.org/))
cmake -DWITH_DOC=ON -DWITH_DD=ON ..
cmake -DWITH_DOC=ON ..
Postgresql 9.1+
......@@ -98,20 +109,6 @@ Postgresql 9.1+
psql mydatabase -c "create extension postgis"
psql mydatabase -c "create extension pgrouting"
For older versions of postgresql
createdb -T template1 template_postgis
psql template_postgis -c "create language plpgsql"
psql template_postgis -f /usr/share/postgresql/9.0/contrib/postgis-1.5/postgis.sql
psql template_postgis -f /usr/share/postgresql/9.0/contrib/postgis-1.5/spatial_ref_sys.sql
psql template_postgis -f /usr/share/postgresql/9.0/contrib/postgis_comments.sql
createdb -T template_postgis template_pgrouting
psql template_pgrouting -f /usr/share/postgresql/9.0/contrib/pgrouting-2.0/pgrouting.sql
createdb -T template_pgrouting mydatabase
## USAGE
See online documentation: http://docs.pgrouting.org/dev/doc/index.html
......
pgrouting-2.0.0-0-gf26831f master
pgrouting-2.1.0-1-gb38118a master
......@@ -8,20 +8,8 @@ postgis = ENV['POSTGIS_VERSION'] || "2.0"
Vagrant.configure("2") do |config|
# Vagrant box configuration
case pgbox
when "pgr32"
config.vm.box = "pgr32"
config.vm.box_url = "http://s3.amazonaws.com/pgrouting/pgrouting-precise32.box"
when "pgr64"
config.vm.box = "pgr64"
config.vm.box_url = "http://s3.amazonaws.com/pgrouting/pgrouting-precise64.box"
when "precise32", "precise64"
config.vm.box = pgbox
config.vm.box_url = "http://files.vagrantup.com/%s.box" % [pgbox]
end
config.vm.box = pgbox
config.vm.box_url = "http://files.vagrantup.com/%s.box" % [pgbox]
# Bootstrap script
config.vm.provision :shell, :path => "tools/vagrant/bootstrap.sh", :args => "%s %s" % [postgres, postgis]
......
......@@ -14,22 +14,59 @@
# Add the postgresql and mysql include paths here
# A check condition to see if those variables are set
#POSTGRESQL_BIN ia an optional commandline argument to specify a non-standard path to the postgresql program executables
SET(POSTGRESQL_BIN "" CACHE STRING "Some user-specified option")
if(POSTGRESQL_INCLUDE_DIR AND POSTGRESQL_LIBRARIES AND POSTGRESQL_EXECUTABLE AND POSTGRESQL_VERSION_STRING)
set(POSTGRESQL_FOUND TRUE)
else(POSTGRESQL_INCLUDE_DIR AND POSTGRESQL_LIBRARIES AND POSTGRESQL_EXECUTABLE)
if(NOT "${POSTGRESQL_BIN}" STREQUAL "")
# Checking POSTGRESQL_PG_CONFIG
find_program(POSTGRESQL_PG_CONFIG NAMES pg_config
PATHS
${POSTGRESQL_BIN}
NO_DEFAULT_PATH
)
else(NOT "${POSTGRESQL_BIN}" STREQUAL "")
# Checking POSTGRESQL_PG_CONFIG
find_program(POSTGRESQL_PG_CONFIG NAMES pg_config
PATHS
/usr/lib/postgresql/*/bin/
)
endif(NOT "${POSTGRESQL_BIN}" STREQUAL "")
message(STATUS "POSTGRESQL_PG_CONFIG is " ${POSTGRESQL_PG_CONFIG})
if(POSTGRESQL_PG_CONFIG)
execute_process(
COMMAND ${POSTGRESQL_PG_CONFIG} --bindir
OUTPUT_STRIP_TRAILING_WHITESPACE
OUTPUT_VARIABLE T_POSTGRESQL_BIN)
endif(POSTGRESQL_PG_CONFIG)
# Checking POSTGRESQL_EXECUTABLE in all the dir (*) - implies that
find_program(POSTGRESQL_EXECUTABLE NAMES postgres
PATHS
/usr/lib/postgresql/*/bin/
${T_POSTGRESQL_BIN}
)
message(STATUS "POSTGRESQL_EXECUTABLE is " ${POSTGRESQL_EXECUTABLE})
find_program(POSTGRESQL_PG_CONFIG NAMES pg_config
PATHS
/usr/lib/postgresql/*/bin/
)
message(STATUS "POSTGRESQL_PG_CONFIG is " ${POSTGRESQL_PG_CONFIG})
# find_program(POSTGRESQL_EXECUTABLE NAMES postgres
# PATHS
# /usr/lib/postgresql/*/bin/
# )
# message(STATUS "POSTGRESQL_EXECUTABLE is " ${POSTGRESQL_EXECUTABLE})
# find_program(POSTGRESQL_PG_CONFIG NAMES pg_config
# PATHS
# /usr/lib/postgresql/*/bin/
# )
# message(STATUS "POSTGRESQL_PG_CONFIG is " ${POSTGRESQL_PG_CONFIG})
if(POSTGRESQL_PG_CONFIG)
execute_process(
......@@ -38,6 +75,8 @@ else(POSTGRESQL_INCLUDE_DIR AND POSTGRESQL_LIBRARIES AND POSTGRESQL_EXECUTABLE)
OUTPUT_VARIABLE POSTGRESQL_VERSION_STRING)
endif(POSTGRESQL_PG_CONFIG)
message(STATUS "POSTGRESQL_VERSION_STRING in FindPostgreSQL.cmake is " ${POSTGRESQL_VERSION_STRING})
if(POSTGRESQL_PG_CONFIG)
execute_process(
COMMAND ${POSTGRESQL_PG_CONFIG} --includedir-server
......@@ -47,6 +86,7 @@ else(POSTGRESQL_INCLUDE_DIR AND POSTGRESQL_LIBRARIES AND POSTGRESQL_EXECUTABLE)
find_path(POSTGRESQL_INCLUDE_DIR postgres.h
${T_POSTGRESQL_INCLUDE_DIR}
/usr/include/server
/usr/include/pgsql/server
/usr/local/include/pgsql/server
......@@ -78,3 +118,4 @@ else(POSTGRESQL_INCLUDE_DIR AND POSTGRESQL_LIBRARIES AND POSTGRESQL_EXECUTABLE)
mark_as_advanced(POSTGRESQL_INCLUDE_DIR POSTGRESQL_LIBRARIES)
endif(POSTGRESQL_INCLUDE_DIR AND POSTGRESQL_LIBRARIES AND POSTGRESQL_EXECUTABLE AND POSTGRESQL_VERSION_STRING)
......@@ -25,7 +25,8 @@ needs_sphinx = '1.1'
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.todo']
mathjax_path="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
extensions = ['sphinx.ext.todo', 'sphinx.ext.mathjax']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['doc/templates']
......
......@@ -48,17 +48,20 @@
<div class="section">
<h2>Betas and Release Candidates<a class="headerlink" title="Permalink to this headline"></a></h2>
<p>This documentation is for the alpha, beta and release candidate versions. Releases in this section are known to be unstable.</p>
<!-- <div class="toctree-wrapper compound">
<div class="toctree-wrapper compound">
<!--
<ul>
<li class="toctree-l1"><a class="reference internal" href="v2.0.0-rc1/doc/index.html">pgRouting v2.0.0-rc1</a> [<a class="reference external" href="v2.0.0-rc1/pgRoutingDocumentation.pdf">PDF</a> | <a class="reference external" href="v2.0.0-rc1/pgrouting.7.gz">MAN</a>]</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="v2.0.0-beta/doc/index.html">pgRouting v2.0.0-beta</a> [PDF | MAN]</li>
</ul>
-->
<ul>
<li class="toctree-l1"><a class="reference internal" href="v2.0.0-alpha/doc/index.html">pgRouting v2.0.0-alpha</a> [PDF | MAN]</li>
<li class="toctree-l1"><a class="reference internal" href="v2.1.0-alpha/doc/index.html">v2.1.0-alpha</a> [PDF | MAN]</li>
<li class="toctree-l1"><a class="reference internal" href="v2.1.0-beta/doc/index.html">v2.1.0-beta</a> [PDF | MAN]</li>
</ul>
</div> -->
</div>
</div>
<div class="section">
......@@ -66,7 +69,7 @@
<p>This documentation is for the unreleased version currently under development, and is frequently updated and changed.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="dev/en/doc/index.html">pgRouting ${PGROUTING_VERSION_STRING}</a> [<a class="reference external" href="dev/en/pgRoutingDocumentation.pdf">PDF</a> | <a class="reference external" href="dev/en/pgrouting.7.gz">MAN</a>] (${PGROUTING_VERSION_REVISION_NAME})</li>
<li class="toctree-l1"><a class="reference internal" href="dev/en/doc/index.html">develop ${PGROUTING_VERSION_REVISION_NAME}</a> [
</ul>
</div>
</div>
......
..
..
****************************************************************************
pgRouting Manual
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
This documentation is licensed under a Creative Commons Attribution-Share
Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
......@@ -46,9 +46,8 @@ Tutorial
- :ref:`analytics` for an overview of the analysis of a graph.
- :ref:`custom_query` that is used in the routing algorithms.
- :ref:`performance` to improve your performance.
- :ref:`custom_wrapper` to colaborate with a wrapper.
- :ref:`recipes` to colaborate with a recipe.
- :ref:`sampledata` that is used in the examples of this manual.
- :ref:`recipes`
......@@ -57,14 +56,28 @@ Tutorial
src/tutorial/index
src/developer/sampledata
src/recipes/index
For a more complete introduction how to build a routing application read the `pgRouting Workshop <http://workshop.pgrouting.org>`_.
*******************************************************************************
Version
*******************************************************************************
:ref:`pgr_version` - to get pgRouting's version information.
.. toctree::
:hidden:
../src/common/doc/utilities/version
*******************************************************************************