Version 3.4.3 of Routino released : Sat Apr 26 2025
---------------------------------------------------

Bug fixes:
  Fix bug that would crash on some turn relations (partial undo of v3.4.2).


Note: This version is compatible with databases from versions 2.7.1 - 3.4.2.


Version 3.4.2 of Routino released : Sat Mar 29 2025
---------------------------------------------------

Bug fixes:
  Fix bug with using uninitialised memory.
  Fix some problems caused by changing index_t to 64-bit type (not default).

planetsplitter:
  Refactor some code

OSM tagging:
  Rework the node tagging, only consider barriers as blocking access.

Translations:
  Updated Spanish & German translations.


Note: This version is compatible with databases from versions 2.7.1 - 3.4.1.


Version 3.4.1 of Routino released : Sat Jul 1 2023
--------------------------------------------------

Bug fixes:
  Fix error with sorting (without threads, not slim mode).


Note: This version is compatible with databases from versions 2.7.1 - 3.4.


Version 3.4 of Routino released : Sun Jun 11 2023
-------------------------------------------------

Bug fixes:
  Avoid infinite recursion when parsing route relations.
  Ignore excess data rather than fail to process huge route relations.

planetsplitter:
  Speed up node processing on large databases.
  Merge some steps together to speed up processing.
  Speed up multi-threaded sorting, increase default memory size.

OSM tagging:
  Don't route through barriers (fence, wall etc) explicitly tagged on a node.
  Add platforms (public transport) as highways, equivalent to a path.
  Only look for access tags on barriers not other nodes.

Python:
  Change from distutils to setuptools for building.
  Do not try to install python module with 'make install' but suggest options.

Translations:
  Updated French, Polish, Spanish translations.
  Added Slovak translation.

Documentation
  Recommend multi-threaded sorting.

Web pages:
  Test with the latest version of Leaflet (1.9.4).
  Test with the latest version of OpenLayers (7.4.0).


Note: This version is compatible with databases from versions 2.7.1 - 3.3.3.



Version 3.3.3 of Routino released : Wed Dec 30 2020
---------------------------------------------------

Bug fixes:
  More bug fixes for compiling python library (environment variables).
  Ensure that we do not try memory mapping a zero length file.
  Catch NULL pointers being passed into the library functions.
  Fix some documentation errors.

planetsplitter:
  Reduce memory use by mapping more data from file rather than allocating it.

Python:
  Support the use of the progress callback function when calculating a route.

Translations:
  Updated Czech, Dutch, German and Russian translations.
  Added a Finnish translation.

Web pages:
  Zoom to the visible markers from the URL if no lat/long/zoom in the URL.
  Improve the setting / clearing of the cookie for the home location.
  Update the URL when new waypoints are added etc.
  Update the visualiser/fixme data as you move around the map.
  Test with the latest version of Leaflet (1.7.1).
  Add support for the latest version of OpenLayers (6.4.3).


Note: This version is compatible with databases from versions 2.7.1 - 3.3.2.


Version 3.3.2 of Routino released : Wed Sep 18 2019
---------------------------------------------------

Bug fixes:
  Ensure that parallel compilation works in the python directory.
  Updated the version number in the executables to "3.3.2".


Note: This version is compatible with databases from versions 2.7.1 - 3.3.1.


Version 3.3.1 of Routino released : Sun Sep 8 2019
--------------------------------------------------

Bug fixes:
  Ensure that 'make clean' in the python directory deletes auto-generated files.
  Include the python directory in the release file (include in 'FILES').


Note: This version is compatible with databases from versions 2.7.1 - 3.3.


Version 3.3 of Routino released : Sat Sep 7 2019
------------------------------------------------

Bug fixes:
  Make the openlayers and leaflet zoom to the same level on clicking the route.
  Add some more memory debug logging (for queue data structure).
  Fix bug with route calculation that may not give optimum solution.
  Fix parallel make to not have failed targets due to 'mkdir' race condition.
  Supress compilation warnings from gcc-7 and gcc-8.
  Supress compilation warnings from clang-5 and clang-5 static analyser.
  Suppress runtime warnings from gcc's runtime sanitizer.
  Bug fix for race condition in multi-threaded sorting algorithm.
  Bug fix for HTML router when named locations are used.
  Fix some error messages for consistency.
  Add extra checks to avoid data overflow and file corruption in planetsplitter.
  Add more checks for memory allocation success/failure.

planetsplitter:
  Do not store nodes in route relations (they are not used).

Documentation:
  Added an extra Perl module that is required.

Translations:
  Updated German, French and Hungarian translations.
  Added Italian and Spanish translations.
  Added incomplete Czech translations.

OSM tagging:
  Some small changes to access tagging and highway naming (prow_ref).
  Add heuristics to decide what transport types are allowed on ferrys.

Web pages:
  Update to use the latest version of Leaflet (1.5.1).
  Add support for the latest version of OpenLayers (5.3).
  Default to showing search boxes for locations not lat/long fields.

Python:
  Created a Python (version 3) interface to the router and routing database.

Extras:
  Update documentation.
  Improve log summarisation HTML page formatting.


Note: This version is compatible with databases from versions 2.7.1 - 3.2.


Version 3.2 of Routino released : Sun Mar 12 2017
-------------------------------------------------

Bug fixes:
  Don't crash if the start & finish of a route are the same point (some cases).
  Update installation instructions in case Apache root is not '/var/www'.
  Improve messages if default profiles, translations or tagging files not found.
  Fix an error in filedumperx detected by gcc-6 indentation checker.
  Ensure that selecting a language web-page defaults to that language output.
  Ensure that a language that is missing some translations still get valid HTML.
  Fix Perl scripts that include others (current directory not on include path).

Web pages:
  Update to use the latest version of Leaflet (0.7.7).
  Move the route buttons to be above the waypoints so they stay on screen.
  Remove MapQuest as an optional tile source (no longer available).
  Adjust some CSS and HTML so that the layout is preserved when zooming.

Translations:
  Updated French, German, Polish & Russian translations.

OSM tagging:
  Handle more tags like access:foot=* by translating them to foot=*.

router:
  Ignore junctions forbidden by turn restrictions when describing route.

Extras:
  Don't crash in the statistics dumper if some ways are *very* long.


Note: This version is compatible with databases from versions 2.7.1 - 3.1.1.


Version 3.1.1 of Routino released : Sun Mar 6 2016
--------------------------------------------------

Bug fixes:
  Updated the version number in the executables to "3.1.1".

There are no other changes compared to version 3.1.


Version 3.1 of Routino released : Sat Mar 5 2016
------------------------------------------------

Bug fixes:
  Make the whole of the highlighted entry on the webpage clickable.
  Fix Makefiles so that 'make -j 4' works.
  Fix Makefiles so that 'make test' works from a clean directory.
  Fix bug on webpage with 'oneway' or 'turns' in the URL arguments.
  Print error message on webpage if geolocation function unavailable.
  Fix bug where the optimum end of the route was not being found.
  Reduce the preference for service roads in the default routing profile.
  Remove literal type conversion error when validating profile values.

Library:
  Add a version number to the shared library (SONAME).
  Include the version number of Routino into the library as a string variable.
  Add loop and reverse route as options to the library.

planetsplitter:
  Use 64-bit numbers for the node ID when processing an OSM file.

router:
  Change file output formats so that waypoint numbers are included.
  When calculating a route with loop and reverse start route from waypoint 1.
  Calculate the route from both ends towards the middle.

Translations:
  Change the names of the GPX route waypoints in translations.xml.
  Updated French and German translations.

Documentation
  Updated the instructions for setting up on Apache (version 2.4.x).

Web pages:
  Add a loop & reverse checkbox, replace loop & reverse buttons with icons.

Extras:
  Add scripts to process the database and create maps of highway statistics.


Note: This version is compatible with databases from versions 2.7.1 - 3.0.


Version 3.0 of Routino released : Sat Sep 12 2015
-------------------------------------------------

Bug fixes:
  Use a single definition of MAX_SEG_PER_NODE to avoid confusion.
  Fix bug with built-in translation strings if no XML translations available.
  Fix bug with makefiles related to creating new translations.
  Remove some pthread code that was still there when compiling without pthreads.
  Fix a use-after-free memory error and use of uninitialised allocated memory.
  Ensure that allocated strings are long enough for temporary filenames.

Programs:
  Add a '--version' option to all of the programs.

Source Code:
  Various C language cleanups including using '-pedantic' compiler option.
  Various changes to allow compiling with Microsoft Visual Studio C compiler.
  Various changes to allow compiling with MinGW or Cygwin on Microsoft Windows.
  Makefile updates: 'make clean' = release, 'make distclean' = SVN repository.

API:
  Create a library API that can perform routing functions.

OSM tagging:
  Remove cycle_barrier and bicycle_barrier since they do not block bicycles.

Translations:
  Updated Dutch and German translations.
  Added Hungarian and Polish translations provided through translation web page.

Documentation:
  Add meta tags to HTML to help mobile devices, tidy up the CSS.
  Create instructions for compiling on Microsoft Windows.
  Create API description for Routino library usage.

Web pages:
  Allow drag-and-drop of waypoints within the list and onto the map.


Note: This version is compatible with databases from versions 2.7.1 - 2.7.3.


Version 2.7.3 of Routino released : Sat Nov 8 2014
--------------------------------------------------

Bug fixes:
  Limit the property preference ratio to 100 instead of 10000.
  Don't allocate memory for sorting that won't be used.

planetsplitter:
  Added an option to print out the allocated/mapped memory at each step.
  Speed up database generation by compacting results after each pruning step.
  Speed up database generation by sorting nodes geographically before pruning.
  Reduce memory use while generating the database.  

router:
  Added the options to print out time and allocated/mapped memory at each step.

Translations:
  Updated German translations.


Note: This version is compatible with databases from versions 2.7.1 & 2.7.2.


Version 2.7.2 of Routino released : Thu June 26 2014
----------------------------------------------------

Bug fixes:
  Make the visualiser display all segments including those crossing the border.
  Fix two errors that cause crashes only on 64-bit systems.

planetsplitter / router:
  Increase the size of the caches for the slim programs by a factor of four.

Translations:
  Updated Russian translations.
  Updated German translations.


Note: This version is compatible with databases from version 2.7.1.


Version 2.7.1 of Routino released : Sat May 17 2014
---------------------------------------------------

Bug fixes:
  Fix typo in documentation for command to get SVN version.
  Fix router crash when waypoint is on roundabout.
  Don't duplicate super-segments when merging them with normal segments.
  Change routing instructions for bicycle if highways allow cycling both ways.
  Make translation script work with older versions of Perl.
  Fix router crash if fewer than two waypoints are specified.
  Revert router speed decrease with special-case tagging rules.
  Fix web page search function when it returns non-ASCII text.
  Fix router failure due to invalid assumption about allowed U-turn.
  Fix bug with updating XML files in web/data directory (Makefile error).
  Fix router web page error due to absence of cyclebothways property entry.
  Fix results error if a waypoint node was passed again on way to next waypoint.
  Fix router crash when route contains consecutive coincident waypoints.
  Fix bug with slightly incorrect distances when pruning short segments.

Test cases:
  Create new test case for roundabout waypoint bug fixed in this version.
  Create new test case for invalid U-turn assumption bug fixed in this version.
  Create new test case for cycling both ways.
  Create new test case for consecutive coincident waypoints.

router:
  Remove cyclebothways as a property that can be used as a routing preference.

Web pages:
  Disallow route calculation if fewer than two waypoints are selected.
  Update visualiser for change of cyclebothways handling.

Translations:
  Updated Russian translations.
  Updated German translations.


Note: This version is not compatible with databases from previous versions.


Version 2.7 of Routino released : Sat Mar 22 2014
-------------------------------------------------

Bug fixes:
  Fix web-page CGI bug that did not allow more than 9 waypoints to be routed.
  Fix typo in documentation strings in filedumper program.
  Fix error in function prototype that stopped 64-bit node type being used.
  Don't lose super-segments when merging them with normal segments.
  Don't exceed the database lat/long limits when searching for visualiser data.

planetsplitter:
  Don't overflow (and wrap-around) conversions of lengths, weights etc.
  Add some new formats of length, weight and speed parsing.
  Add .xz uncompression as a compile-time option (default is disabled).

router:
  Remove ancient undocumented option to specify lat/lon without --lat/--lon.
  Add a '--output-stdout' option to output the route in a selected format.
  Add a '--reverse' option to calculate a route in the reverse order.
  Add a '--loop' option to calculate a route that returns to the first waypoint.
  Output valid HTML4 (use strict DTD and use numeric entity for apostrophe).

OSM tagging:
  Allow bicycles both ways on certain oneway roads if tagging allows.
  Handle "access=bus" like "access=psv".

Configuration Files:
  Updated Dutch translations.
  Updates to the XML parser tagging rules.
  Added French translations for the routing output.

Documentation:
  Update the algorithm documentation for finding the shortest path.
  Update documentation HTML to strict 4.01 DTD.

Web pages:
  Some changes to HTML, CSS formatting and Javascript to improve usability.
  Added a French translation of the router web page.
  Add the option to choose between OpenLayers and Leaflet for map rendering.
  Check compatible with OpenLayers v2.13.1 and make this the default.
  Create the router and visualiser pages from templates and translated phrases.


Note: This version has removed specific support for IE6 and IE7 browsers.

Note: This version is compatible with databases from version 2.6 (although
      cycling both ways on one-way highways requires a database update).


Version 2.6 of Routino released : Sat Jul 6 2013
------------------------------------------------

Bug fixes:
  Force '<if>...</if>' in tagging rules to match even with no input tags.
  Built-in translations for GPX-route file gave nonsense durations.
  Handle some cases that potentially caused divide by zero (not crashes).

Compilation:
  All configuration is now contained in the top level file Makefile.conf.
  Default to using -ffast-math option for faster maths and glibc workaround.

Code improvements:
  Improve router internal data structures to increase performance.
  Add another layer of caching to significantly speed up slim mode operation.
  Add a layer of file buffering to significantly speed up reading/writing.
  Enable more compile-time warnings and fix them.

planetsplitter:
  Create a binary log file to allow searching for errors geographically.
  Simplify processing for changes (segment files not kept).
  Don't prune isolated regions for transport types we don't have.

Web pages (visualiser):
  Allow displaying the error logs on the map.
  Allow selecting any item displayed and showing more information about it.

Extras:
  Create a separate directory to put extra (non-essential) programs and scripts.
  * tagmodifier - a tagging rule testing program.
  * errorlog - a script to summarise the planetsplitter error log.
  * plot-time - a script to plot a graph of the planetsplitter execution time.
  * find-fixme - search an OSM file for "fixme" tags and display them on a map.


Note: This version is not compatible with databases from previous versions.


Version 2.5.1 of Routino released : Sat Apr 20 2013
---------------------------------------------------

Bug fixes:
  Stop contradictory log error messages about 'access=foot' etc.
  Move the HTML charset definition to within the first 1024 bytes of file.
  Don't prune short segments in some cases that would change routing.
  Fix bug with pruning straight highways around loops.
  Fix some bugs with installation documents and scripts.
  Fix Javascript to work with OpenLayers v2.11 again.
  Fix XML character quoting for special characters in 7-bit ASCII range.
  Fix bug with parsing XML containing UTF-8 characters four bytes long.
  Fix two bugs for simple routes with the option of not passing a super-node.

planetsplitter:
  Improve the pruning of straight highways (detect larger straight sections).

Configuration Files:
  Accept some more tag values for OSM file parsing.
  Handle alternate forms of mini roundabouts (junction=roundabout).


Note: This version is compatible with databases from version 2.4 / 2.4.1 / 2.5.


Version 2.5 of Routino released : Sun Feb 9 2013
------------------------------------------------

General:
  Replace 'motorbike' with 'motorcycle' everywhere.

planetsplitter/tagmodifier:
  Major changes to file reading:
    Faster XML parser.
    Reads PBF files natively (not for changes, not tagmodifier).
    Reads o5m/o5c files natively (not tagmodifier).
    Reads bzip2 or gzip compressed files natively (if compiled for them).
    Data can no longer be read from standard input.

planetsplitter:
  Report errors with self-intersecting ways, clarify some other error messages.

Configuration Files:
  Tagging configuration can now use an <ifnot> rule.
  The tagging configuration <if> and <ifnot> rules can be nested.
  Change the way that the multilane property is derived from the lanes tag.
  Accept some more tag values for OSM file parsing.
  German translation now supports roundabouts.

Documentation:
  Describe numerical limits (OSM identifiers and maximum database size).

Web pages:
  Allow different data and tile attributions for each map source.
  Include MapQuest as an optional tile source.

Web pages (visualiser):
  Allow plotting segments of highways that have a particular property.


Note: Starting with this version the planetsplitter and tagmodifier programs
      will no longer read data from standard input.

Note: Existing mapprops.js files need to be updated for this version.

Note: This version is compatible with databases from version 2.4 / 2.4.1.


Version 2.4.1 of Routino released : Mon Dec 17 2012
---------------------------------------------------

Bug fixes:
  Fix error with finding routes with low preference values (router).
  Fix error when searching for default profiles.xml (router).
  Fix bug with printing log messages when output is not stdout (tagmodifier).
  Stop various crashes if trying to process file with no data (planetsplitter).


Note: This version is compatible with databases from version 2.4.


Version 2.4 of Routino released : Sat Dec 8 2012
------------------------------------------------

Bug fixes:
  Fix pruning short segments in slim mode (gave different results to non-slim).
  Fix error with segment lengths for some segments from ways that are areas.
  Fix latent bug with route relations when compiled for 64-bit way/relation IDs.

router/planetsplitter:
  Replace all debugging "assert" statements with fatal error messages.

planetsplitter:
  Delete ways that are not used from the output files (names remain though).
  Delete turn relations that are not used from the output files.
  Speed up the processing, mainly by reducing the number of I/O operations.
  Change the pruning of isolated regions to look at each transport type.
  Slim and normal mode now give identical results (sorting preserves order).
  Log some more error cases, clarify some existing ones.
  Added a --append option which must be used to append files to existing data.
  Added a --keep option which can be used to keep parsed, sorted data.
  Added a --changes option to allow appending OSM change files (.osc files).

Configuration Files:
  Accept some more tag values for OSM file parsing.

summarise-log.pl
  Can now generate an HTML version with links to OSM information for each item.

Deleted obsoleted files:
  The CGI scripts customrouter.cgi and customvisualiser.cgi have been removed.
  The noscript.cgi and noscript.html web pages have been removed.


Note: Files deprecated in version 2.3 have been removed in version 2.4.

Note: This version is not compatible with databases from previous versions.


Version 2.3.2 of Routino released : Sat Oct 6 2012
--------------------------------------------------

Bug fixes:
  Fix for highway type visualiser (was missing one-way segments).
  Fix a real-life routing problem with oneway streets and super-segments.
  Find a route even if an end waypoint forbids the specified transport.
  Include the final junction in the HTML output (was missed in some cases).

Test cases:
  Create new test cases for two bugs fixed in this version.

router:
  Improve the error message for some cases of failing to route.

planetsplitter:
  Log an error if a foot/bicycle way doesn't allow foot/bicycle transport.
  Do not mark nodes as super-nodes if they allow no transport types through.

Web pages (visualiser):
  Allow plotting nodes that block each transport type.

Configuration Files:
  Change the default license/copyright notice in the translations.xml file.


Note: This version is compatible with databases from versions 2.2 or 2.3/2.3.1.


Version 2.3.1 of Routino released : Sat Aug 11 2012
---------------------------------------------------

Bug fixes:
  Create marker-XXX-grey.png icon which gets used before Javascript removes it.
  Provide full set of 99 marker icons instead of just 19.
  Add more limit icons (0.0-0.9, 20.0-40.0 and 161-200).
  Fix router web page problem with placing initial marker (coords not updated).
  Hide waypoints so that they are not visible when Javascript adds them to HTML.
  Fix web page font problems by choosing an explicit font pixel-size in the CSS.
  Fix potential crash in XML files containing lots of key/value pairs in a tag.

Web pages (router):
  Unused waypoints show as blank rather than 0,0.
  Add a button to insert a waypoint to close the loop.
  Write the command line and execution time to the log file.


Note: This version is compatible with databases from versions 2.2 or 2.3.


Version 2.3 of Routino released : Sat Jul 21 2012
-------------------------------------------------

Bug fixes:
  Handle OSM files that contain changesets (don't raise an error).
  Force bicyle/foot routes to allow bicycle/foot transport.
  Fix problem running CGIs on Macs (md5 program name).
  Fix bug with pruning straight highways (uninitialised data).
  Fix bug with XML parsing error log (could miss some unrecognised tags).

Web pages (all):
  Make compatible with OpenLayers v2.12 (but don't change the install script).
  Make all HTML files standards compliant.
  Allow the HTML files to parse the query string instead of using a CGI.
  Move all user-editable parameters to paths.pl and mapprops.js.

Web pages (router):
  Add a button to put a marker at the current location (Javascript geolocation).
  Add a button to centre the map on a given marker.
  Automatically insert the waypoints in the HTML from the JavaScript.
  Added a German language router web page translation.
  Add buttons to switch between lat/long and placename with Nominatim lookups.

Web pages (visualiser):
  Allow plotting segments of each highway type.
  Allow plotting segments accessible to each transport type.

planetsplitter:
  Add a new '--logtime' option that prints the elapsed time of each step.
  Make the sort functions multi-threaded (run-time option).
  Improve the XML parsing speed slightly.


Note: This version is compatible with databases from versions 2.2.

Note: Existing mapprops.js and paths.pl files need to be updated to include new
      items for this version.

Note: Existing OpenLayers installations must be updated if they were installed
      with older Routino provided script (the old OpenLayers.js will not work).

Note: The CGI scripts customrouter.cgi and customvisualiser.cgi are deprecated
      and will be removed in version 2.4

Note: The noscript.cgi and noscript.html web pages are deprecated and will be
      removed in version 2.4


Version 2.2 of Routino released : Sat Mar 3 2012
------------------------------------------------

Bug fixes:
  Fix some Makefile bugs.
  Fix XML parsing (previously it allowed invalid XML comments).
  Fix errors in HTML and GPX output files (highway names and bearings).
  Fix errors in visualiser CGI related to oneway streets and in slim mode.
  Ensure that no non-initialised memory is written to disk.

OSM tagging:
  Parse information about roundabouts and store it in the database.

Documentation:
  Update documentation to reflect changes in program usage and function.

Web pages:
  Change to OpenLayers v2.11.
  Move the map preferences (ranges and URLs) to a separate file.
  Prepare the visualiser.html web page for translation.
  The customrouter script should now pick up the preferred language.

planetsplitter:
  When discarding duplicate segments prefer to discard those that are areas.
  Ensure that XML file is OSM version 0.6 format.
  Add a new option to prune nodes and/or segments (enabled by default)
   - that form a small isolated sub-network.
   - that are very short.
   - that are not needed to represent a straight highway.

router:
  Change the format of the text file output (not the all points text file).
  Output better HTML directions for roundabouts (e.g. take second exit).
  Describe mini-roundabouts as "roundabout" rather than "junction".

filedumper:
  Ensure that all nodes needed for segments are included when dumping a region.
  Include a bounding box when dumping a region.


*** Important Note: The tagging.xml files from Routino v2.1.1 or earlier   ***
*** contain invalid XML that will not be allowed by Routino v2.2 or later. ***

Note: The format of the text file output has changed in this version.

Note: This version is not compatible with databases from earlier versions.


Version 2.1.2 of Routino released : Sat Nov 12 2011
---------------------------------------------------

Bug fixes:
  Speed up the routing by a factor of 3 for slim mode by copying data to RAM.
  Speed up routing & reduce memory use by a factor of 2.5 by stopping earlier.
  Delete profiles.js and profiles.pl when cleaning up (make clean).
  Improve output for translated versions (highway type names and text files).
  Fix the summarise-log.pl script for segments which are loops.
  Fix invalid XML syntax in tagging.xml file.

Configuration Files:
  Add extra tagging rules to handle problems found in the error log for UK.
  Added Russian translations for output files.

Documentation:
  Improve the documentation for the tagging rule configuration file.


Note: This version is compatible with databases from version 2.1 or 2.1.1.


Version 2.1.1 of Routino released : Sun Oct 23 2011
---------------------------------------------------

Bug fixes:
  Speed up the routing by a factor of 5 by improving data handling functions.
  Speed up database generation by reducing the default number of iterations.
  Fix the handling of the 'except' tag on turn restrictions.
  Fix the 'make install' option for the XML files.
  Add some more typecasts when printing data from filedumper program.
  Make the CGI script more robust if shortest/fastest is not passed in.


Note: This version is compatible with databases from version 2.1.


Version 2.1 of Routino released : Mon Oct 3 2011
------------------------------------------------

Bug fixes:
  Fix bug in pathological cases with binary search (don't crash).
  Make stricter checks for closest nodes just like in v2.0.3 for segments.
  Fix routing bug where start node is a super-node and finish is close by.

OSM tagging:
  More testing of turn relations; invalid or useless ones are discarded.
  An error log file can be generated to record parsing and processing errors.

Configuration Files:
  Add new options in the tagging rules XML file.
  Add extra tagging rules to handle many problems found in the error log for UK.
  Create special-use tagging rule files for walking, riding and driving.

Test cases:
  Create new test case for bug fixed in v2.0.3.
  Save expected results to allow future regressions to be found.


Note: This version is not compatible with databases from earlier versions.


Version 2.0.3 of Routino released : Thu Aug 4 2011
--------------------------------------------------

Bug fixes:
  Handle start node being a super-node with no previous segment (don't crash).
  Make stricter checks against the profile when finding the closest segment.
  Find a valid route if the start and end point are the same location.
  Choose the better route if one with and one without super-nodes are available.


Note: This version is compatible with databases from versions 2.0, 2.0.x.


Version 2.0.2 of Routino released : Sun June 26 2011
----------------------------------------------------

Bug fixes:
  Fix error with handling ferry routes (were ignored).
  Force roundabouts to be one-way (was present in v1.5.1).
  Handle super-nodes with no segments when processing (don't crash).

Code improvements:
  Use C99 standard by default and fix related warnings.
  More code tidy-up for 32/64 bit node and index types.
  Free some memory in various places (not serious leaks).


Note: This version is compatible with databases from versions 2.0, 2.0.1.


Version 2.0.1 of Routino released : Tue June 7 2011
---------------------------------------------------

Bug fixes:
  Turn relations that specify missing nodes/ways are deleted (don't crash).
  Shorten the messages printed by planetsplitter to keep below 80 characters.

Code improvements:
  Various code tidy-ups and 32/64 bit node and index improvements.

OSM Tagging:
  Check whether node/way/relation IDs fit in 32-bits (code ready for 64-bits).


Note: This version is compatible with databases from version 2.0.


Version 2.0 of Routino released : Mon May 30 2011
-------------------------------------------------

Bug fixes:
  Fix mis-spelling with surface=asphalt tag
  Routes between two waypoints on the same segment now work.
  Fix reading of numeric entities from XML files (store as UTF-8 internally).
  Fix turn description in HTML file (angles were biased to the right).
  Fix possibility of occasionally missing turn information from output files.

Test cases:
  Added test cases for routing in slim and non-slim modes.

Documentation:
  Update documentation to reflect changes in program usage and function.
  Install the license file in the documentation directory.

OSM tagging:
  Process the tags associated with turn restriction relations.
  Remove the roundabout type from the parsing.
  Add parsing of mini-roundabouts.

Configuration Files:
  Update profiles with new options related to turn restrictions.

Web pages:
  Change to OpenLayers v2.10.
  Visualiser can display turn restrictions.
  Put the profile information into separate files and auto-generate them.

planetsplitter:
  Store information about turn restriction relations.
  Quite a large code re-organisation - now faster and uses less memory.

router:
  Take turn restriction relations into account when routing.
  Continue same direction of travel at each waypoint (unless dead-end).
  Add a new option to specify an initial direction to start travel.

filedumper:
  Print out statistics about what highways are included in the database.


Version 1.5.1 of Routino released : Sat Nov 13 2010
---------------------------------------------------

Bug fixes:
  Ensure that enough memory is allocated for filenames.
  Fix bug that sometimes causes crash when processing route relations.

Documentation:
  Update documentation to reflect changes in program usage and function.

Programs:
  Add an option to make the output more suitable for a log file.

Documentation:
  Update documentation to reflect changes in program usage.


Version 1.5 of Routino released : Sat Oct 30 2010
-------------------------------------------------

Bug fixes:
  Check that number of nodes/segments/ways doesn't exceed numerical limits.
  Allow 32-bit systems to seek within files larger than 4GB.
  Allow nearly 4G nodes to be stored instead of 2G before.
  Added rules to makefile for installation (paths specified in top-level).
  Stricter checking of UTF-8 in XML files and better UTF-8 output.
  Improve error message if parsing of command line options fail.
  Fix bugs in router's --help-profile-json and --help-profile-perl options.
  Rename heapsort function to allow compilation on Mac OS with no change.
  Reduce impact of property preferences close to 50% by using sqrt().

Documentation:
  Update documentation to reflect changes in program usage and function.

OSM tagging:
  Traffic restrictions on nodes are now included in default tagging file.
  Added processing for ferry routes (as pseudo-highway type 'ferry').
  Process foot and bicycle route relations to create new properties.

Configuration Files:
  Added Dutch output translations.
  Added ferry information to profiles.
  Added foot and bicycle route relation processing.

planetsplitter:
  The slim mode now includes the output data as well as the temporary data.
  The slim mode is now a separate executable and not a command line option.
  Traffic restrictions on nodes are now understood when parsing OSM files.
  Falls back to installed tagging.xml configuration file as last resort.

router:
  Added a slim mode (as a separate executable and not a command line option).
  Traffic will not be routed through a node that does not allow it.
  Falls back to installed profiles.xml & translations.xml files as last resort.

filedumper:
  Added a slim mode (as a separate executable and not a command line option).

Web pages:
  Added Dutch translation of router.html.


Version 1.4.1 of Routino released : Sat Jul 10 2010
---------------------------------------------------

Bug fixes:
  Don't crash if start and finish are the same point.
  Don't crash if several translations but --language option not used.
  Don't crash if middle part of route cannot be found.
  Don't allocate so much memory for intermediate nodes; routes much faster.
  Fix problem with finding closest segment to the specified point.

Documentation:
  Provide HTML versions of the documentation (copy to web directory at install).
  Change URL for website to http://www.routino.org/.

Configuration Files:
  Added German output translations.

planetsplitter
  Slight change to algorithm for finding super-nodes.

Web pages:
  Provide HTML versions of the documentation.
  Change URL for website to http://www.routino.org/.
  Provide updated HTML files, the same as on the website.
  Change to OpenLayers v2.9.1 and build custom version if Python available.


Version 1.4 of Routino released : Mon May 31 2010
-------------------------------------------------

Bug fixes:
  Speed up start/via/stop point within segment search algorithm.
  If no segment is found don't try routing but exit with error.
  Improve the error messages by adding operating system error info to them.
  Rewrite of tagging rules fixes bug with wheelchair access allow/deny.
  Files greater than 2GB can be read/written on 32-bit systems.
  Fix bug with profile preferences when optimising a route.
  Stricter check on profile validity before starting routing.

planetsplitter:
  Add --parse-only and --process-only options (for incremental parsing).
  Allow filenames to be specified on command line (default is still stdin).
  Improved the '--help' information to describe all options.
  Remove --transport, --not-highway, --not-property options (use config file).
  Use tag transformation rules in configuration file not hard-coded.

router:
  Removed compiled-in profiles and use profiles loaded from XML file.
  Improved the '--help' information to describe all options.
  Change the name of the --profile-json and --profile-perl options.
  Allow selection of the outputs to generate (or none).
  Added HTML route instructions output.
  GPX route file contains instructions at each waypoint.
  Read in XML file of translated words/phrases for outputs.
  Added options to specify file of translations and language to use.
  Remove copyright.txt file and put information into translations file.

filedumper:
  Improved the '--help' information to describe all options.
  Added the option to dump an OSM file containing database contents.

Web Pages:
  Combined generic map CSS into one file (not copied in two).
  Much better support for IE6/7/8 with browser detection but not perfect.
  Re-organised and tidied up the Javascript.
  Added button next to waypoints to centre it on map.
  Added button next to waypoints to set as home location (uses browsser cookie).
  Create shorter URLs for custom map (ignore default values).
  Reduced and clarified the amount of editing to customise the Javascript.
  Made it easier to translate by moving text out of Javascript (not visualiser).
  Prepared for translated versions of web page (Apache Multiviews).
  Added option to select language of output.
  Use HTML output from router to get translated instructions.


Version 1.3 of Routino released : Thu Jan 21 2010
-------------------------------------------------

Bug fixes:
  Ensure output even if the distance between two adjacent route points is small.
  Correct the determination of waypoints for abbreviated output.
  Check the command line values for filedumper --dump options.
  Made the verbose output consistent between different places.

OSM tagging:
  Recognise "designation" tag to determine designated paths.
  Recognise "steps" tag to determine the highway type.
  Recognise "wheelchair" tag to determine if wheelchairs are allowed on highway.
  Recognise "moped" tag to determine if mopeds are allowed on a highway.
  Recognise "surface" and "paved" tags to determine if a highway is paved.
  Recognise "lanes" tag to determine if a highway has multiple lanes.
  Recognise "bridge" tag to determine if a highway is a bridge.
  Recognise "tunnel" tag to determine if a highway is a tunnel.

New Features:
  Remove "bridleway" and "footway" highway types and use "path" highway instead.
  Added "steps" as a new highway type separate from the "path" type.
  Added "wheelchair" and "moped" to the list of possible transports.
  Added "paved", "multilane", "bridge", "tunnel" to list of highway properties.

Web Pages:
  Updated for new features listed above.
  Added popup to display instructions for each step in route on mouse-over.
  Added buttons next to waypoints for: add / remove / move up / move down.
  Highlight user selectable parts of form in yellow on mouse-over.
  A few small changes, improved CSS, improved Javascript.

router:
  For each waypoint choose closest point on a segment and not just closest node.
  Added the ability to set preferences based on highway properties.
  Changed the text output formats to include bearing and turn information.


Version 1.2 of Routino released : Wed Oct 21 2009
-------------------------------------------------

OSM tagging:
  Recognise tags "vehicle" and "motor_vehicle".
  Handle duplicate ways in the input OSM file (e.g. concatenation of 2 files).

Database:
  Identical ways are combined to reduce database size (~80% fewer ways stored).

Routing:
  Fix weight, height, width, length restriction routing.
  Allow up to 99 waypoints to be specified instead of 9.

Visualiser:
  Don't display speed limits for tracks and paths unless a value is set.
  Draw all super-segments that cross the selected boundary.

Web Pages:
  A few small changes, improved CSS, improved Javascript.
  Changed marker colour when waypoint not selected.

planetsplitter:
  Optional slim mode uses minimal memory at the expense of temporary files.

router:
  Less CPU time for routing (~30% less).

filedumper:
  Allow dumping individual nodes, segments and ways (for debug).


Version 1.1 of Routino released : Sat Jun 13 2009
-------------------------------------------------

Inputs:
  Improve parsing of OSM file (imperial units).
  Ignore nodes that are missing from the input OSM file.

Outputs:
  Create GPX route files as well as GPX track files.
  Read in an optional copyright.txt file and include contents in output.
  Make better choices about what to output in the abbreviated text file.

Routing:
  Allow generating a route with intermediate waypoints.
  Use preferences for highway types instead of yes/no choice.
  Choice of closest node to start/finish points ensures transport allowed.

Visualiser:
  Added data extraction function for viewing routing database data.

Web Pages:
  Include full set of web pages for creating customised online router.

Documentation:
  Included NEWS.txt file.
  Included documentation for installation of web pages.


Version 1.0 of Routino released : Wed Apr 08 2009
-------------------------------------------------

First version.
