Re: routino-www: fails to purge - command in postrm not found
Hi Uwe,
On 12/05/2014 07:13 PM, Sebastiaan Couwenberg wrote:
>>> In the mean time I'm updating my clone of the repo to
>>> incorporate the recent NMUs and prepare a new upload for unstable
>>> if Uwe is unable to do so.
>> I can do the upload if you like.
>
> Yes, please. All my changes are available in the git repository on Alioth.
The above changes were uploaded to testing-proposed-updates instead of
unstable, so I've prepared a new upload for unstable with the following
changes:
* Restructure control file with cme.
* Bump Standards-Version to 3.9.6, no changes.
* Use canonical Vcs-* URLs.
* Add patch to use hardening build flags.
* Remove period from package description.
Uwe, can you sponsor the upload to unstable too?
Release Team,
I believe that the changes in 2.7.2-2 & -3 are compliant with the Freeze
Policy, but the changes between 2.7-1.2 in testing and 2.7.2-2 in
testing-proposed-updates does contain a new upstream release not
complaint with the Freeze Policy.
The debdiff between 2.7-1.2 and 2.7.2-3 is attached.
Would the -3 upload to unstable be eligible for an unblock despite the
new upstream release?
Kind Regards,
Bas
--
GPG Key ID: 4096R/E88D4AF1
Fingerprint: 8182 DE41 7056 408D 6146 50D1 6750 F10A E88D 4AF1
diff -Nru routino-2.7/ChangeLog routino-2.7.2/ChangeLog
--- routino-2.7/ChangeLog 2014-03-22 17:21:07.000000000 +0100
+++ routino-2.7.2/ChangeLog 2014-06-26 19:41:20.000000000 +0200
@@ -1,3 +1,353 @@
+2014-06-26 Andrew M. Bishop <amb>
+
+ Version 2.7.2 released.
+
+2014-06-26 [r1584] Andrew M. Bishop <amb>
+
+ * FILES, doc/NEWS.txt, doc/README.txt, doc/html/readme.html:
+ Updated for version 2.7.2 release.
+
+2014-06-25 [r1583] Andrew M. Bishop <amb>
+
+ * doc/INSTALL.txt, doc/html/installation.html: Add a note about
+ another Perl module required if compiling from subversion.
+
+2014-06-25 [r1582] Andrew M. Bishop <amb>
+
+ * src/router.c: Clarify the reason for the unreachable code (#if 0)
+ and fix bug in it.
+
+2014-06-25 [r1581] Andrew M. Bishop <amb>
+
+ * src/errorlogx.c: Fix for compiler warning on 64-bit systems but
+ not 32-bit systems.
+
+2014-06-24 [r1580] Andrew M. Bishop <amb>
+
+ * src/output.c: Fix for revision r1565 that crashes on 64-bit
+ systems but not 32-bit systems.
+
+2014-06-24 [r1579] Andrew M. Bishop <amb>
+
+ * src/optimiser.c: Fix for revision r1553 that crashes on 64-bit
+ systems but not 32-bit systems.
+
+2014-06-09 [r1578] Andrew M. Bishop <amb>
+
+ * src/cache.h: Increase the size of the caches for the slim
+ programs by a factor of four (gives a large speed-up on virtual
+ machines with low memory and slow disks even though it makes
+ little difference on machines with lots of memory and fast
+ disks).
+
+2014-06-07 [r1577] Andrew M. Bishop <amb>
+
+ * doc/TAGGING.txt, doc/html/tagging.html: Document the default
+ assumptions about allowed transport types on ferry routes (none).
+
+2014-06-05 [r1576] Andrew M. Bishop <amb>
+
+ * web/translations/translate.pl: When creating the translated HTML
+ and XML files give the statistics for each file separately.
+
+2014-05-26 [r1575] Andrew M. Bishop <amb>
+
+ * web/translations/translation.de.txt: Add updated German
+ translations submitted via http://www.routino.org/translations/
+ on 2014-05-25.
+
+2014-05-21 [r1574] Andrew M. Bishop <amb>
+
+ * web/translations/translation.ru.txt: Add updated Russian
+ translations submitted via http://www.routino.org/translations/
+ around 2014-05-20.
+
+2014-05-20 [r1573] Andrew M. Bishop <amb>
+
+ * src/visualiser.c: When visualising segments include all of the
+ ones that overlap the selected region (not missing a few that
+ cross the edges).
+
+2014-05-19 [r1572] Andrew M. Bishop <amb>
+
+ * web/translations/translation.de.txt,
+ web/translations/translation.fr.txt,
+ web/translations/translation.nl.txt,
+ web/translations/translation.ru.txt,
+ web/translations/translations-body.xml,
+ xml/routino-translations.xml: Remove un-needed whitespace in
+ translations files.
+
+2014-05-17 Andrew M. Bishop <amb>
+
+ Version 2.7.1 released.
+
+2014-05-17 [r1570] Andrew M. Bishop <amb>
+
+ * FILES, doc/NEWS.txt, doc/README.txt, doc/html/readme.html: Update
+ documentation for version 2.7.1.
+
+2014-05-17 [r1569] Andrew M. Bishop <amb>
+
+ * web/Makefile: Re-create the xml/routino-translations.xml file if
+ the translations are updated or the file is deleted.
+
+2014-05-17 [r1568] Andrew M. Bishop <amb>
+
+ * xml/routino-translations.xml: Add updated German translations
+ submitted via http://www.routino.org/translations/ around
+ 2014-04-11 and 2014-05-02.
+
+2014-05-12 [r1567] Andrew M. Bishop <amb>
+
+ * src/prunex.c: When pruning short segments take the highway types
+ into account when sharing the pruned segment length between the
+ two neighbouring segments.
+
+2014-05-10 [r1565-1566] Andrew M. Bishop <amb>
+
+ * src/test, src/test/a-b-c-d.sh (added),
+ src/test/coincident-waypoint.osm (added),
+ src/test/coincident-waypoint.sh (added),
+ src/test/expected/coincident-waypoint-WP01.txt (added),
+ src/test/expected/coincident-waypoint-WP02.txt (added),
+ src/test/expected/coincident-waypoint-WP03.txt (added),
+ src/test/expected/coincident-waypoint-WP04.txt (added): Add test
+ cases for routes with contain two consecutive coincident
+ waypoints.
+
+ * src/fakes.c, src/fakes.h, src/output.c, src/router.c: Don't crash
+ if the specified route contains two consecutive coincident
+ waypoints (route instructions at those points may not be
+ perfect).
+
+2014-05-09 [r1564] Andrew M. Bishop <amb>
+
+ * src/output.c, src/test/expected/loops-WP01.txt,
+ src/test/expected/loops-WP02.txt,
+ src/test/expected/loops-WP06.txt,
+ src/test/expected/loops-WP07.txt: Fix bug with results output
+ that would miss a segment and get the distance/time wrong if a
+ waypoint node was passed again on the way to the next waypoint.
+
+2014-05-05 [r1563] Andrew M. Bishop <amb>
+
+ * src/optimiser.c: Remove some left-over debugging print
+ statements.
+
+2014-05-03 [r1562] Andrew M. Bishop <amb>
+
+ * web/translations/translation.de.txt: Add updated German
+ translations submitted via http://www.routino.org/translations/
+ around 2014-05-02. (Some of the changes from the 2014-04-11
+ submission were not merged last time, they have been included
+ this time).
+
+2014-05-02 [r1561] Andrew M. Bishop <amb>
+
+ * web/translations/translation.de.txt: Add updated German
+ translations submitted via http://www.routino.org/translations/
+ around 2014-04-11.
+
+2014-04-30 [r1560] Andrew M. Bishop <amb>
+
+ * doc/USAGE.txt, doc/html/usage.html, src/filedumper.c,
+ src/osmparser.c, src/visualiser.c, src/visualiser.h,
+ web/translations/translation.en.txt,
+ web/translations/visualiser.html, web/www/routino/visualiser.cgi,
+ web/www/routino/visualiser.leaflet.js,
+ web/www/routino/visualiser.openlayers.js: Update the visualiser
+ web page to allow displaying the "cyclebothways" highway type and
+ the "roundabout" highway type. Also "cyclebothways" is no longer
+ a property so removed from that part of the visualiser.
+
+2014-04-29 [r1559] Andrew M. Bishop <amb>
+
+ * src/filedumper.c, src/optimiser.c, src/osmparser.c, src/output.c,
+ src/segments.c, src/types.c, src/types.h,
+ xml/routino-profiles.xml: Remove the "cyclebothways" property and
+ replace it with a "cyclebothways" highway type. This means that
+ it is no longer possible to choose a preference for this type of
+ highway when calculating a route. There was never really any
+ reason for allowing users to do this since they can't specify a
+ preference for oneway streets. It does however mean that the
+ broken Javascript in the router web page (no entry field for this
+ property) is fixed. Unfortunately this means that a database
+ created by previous versions are not compatible with this one.
+
+2014-04-28 [r1558] Andrew M. Bishop <amb>
+
+ * doc/TAGGING.txt, doc/html/tagging.html: Add some missing items
+ into the documentation related to cycling both ways.
+
+2014-04-28 [r1557] Andrew M. Bishop <amb>
+
+ * web/Makefile: Fix bug with updating XML files in web/data
+ directory (Makefile error).
+
+2014-04-28 [r1556] Andrew M. Bishop <amb>
+
+ * src/test, src/test/cycle-both-ways.osm (added),
+ src/test/cycle-both-ways.sh (added), src/test/cycle-drive.sh
+ (added), src/test/expected/cycle-both-ways-WP01.txt (added),
+ src/test/expected/cycle-both-ways-WP02.txt (added): Add a test
+ case for the ability to cycle both ways on highways that allow
+ it. Tests the roundabout exit naming as well as shortest route.
+
+2014-04-28 [r1555] Andrew M. Bishop <amb>
+
+ * src/test/fake-node-with-loop.osm, src/test/prune-straight.osm,
+ src/test/roundabout-waypoints.osm: Remove unneeded tag from <osm>
+ XML element.
+
+2014-04-27 [r1553-1554] Andrew M. Bishop <amb>
+
+ * src/test, src/test/expected/fake-node-with-loop-WP01.txt (added),
+ src/test/expected/fake-node-with-loop-WP02.txt (added),
+ src/test/fake-node-with-loop.osm (added),
+ src/test/fake-node-with-loop.sh (added): Add test case for the
+ bug with particular arrangement of a fake node (waypoint in
+ middle of segment) and a roundabout.
+
+ * src/optimiser.c, src/segments.h: Fix bug with particular
+ arrangement of a fake node (waypoint in middle of segment) and a
+ roundabout. The FindFinishRoutes() function was invalidly
+ allowing a U-turn which the later parts of the route calculation
+ didn't and therefore failed to find a route.
+
+2014-04-26 [r1552] Andrew M. Bishop <amb>
+
+ * doc/INSTALL.txt, doc/html/installation.html,
+ web/www/routino/search.cgi, web/www/routino/search.pl: Correct
+ the list of Perl modules required to be installed to use the
+ search function.
+
+2014-04-24 [r1551] Andrew M. Bishop <amb>
+
+ * xml/scripts/drive.pl, xml/scripts/walk.pl: Omit some more
+ properties from the special case tagging rules.
+
+2014-04-14 [r1550] Andrew M. Bishop <amb>
+
+ * src/optimiser.c: Revert r1462 which makes no noticeable
+ difference to the speed in normal operation but makes a lot of
+ difference for databases created with the special "drive" tagging
+ rules.
+
+2014-04-14 [r1549] Andrew M. Bishop <amb>
+
+ * src/router.c: Check the number of waypoints after considering the
+ --help and --help-profile options.
+
+2014-04-12 [r1548] Andrew M. Bishop <amb>
+
+ * web/www/routino/router.leaflet.js,
+ web/www/routino/router.openlayers.js: Disable the route
+ calculation buttons if fewer than two waypoints are active (more
+ cases).
+
+2014-04-12 [r1545-1547] Andrew M. Bishop <amb>
+
+ * web/Makefile: Automatically update the translated files if the
+ translation files or HTML templates change.
+
+ * web/translations/router.html, web/www/routino/router.css,
+ web/www/routino/router.leaflet.js,
+ web/www/routino/router.openlayers.js: Disable the route
+ calculation buttons if fewer than two waypoints are active.
+
+ * src/router.c: Refuse to calculate a route if fewer than two
+ waypoints are specified.
+
+2014-04-08 [r1544] Andrew M. Bishop <amb>
+
+ * web/translations/translate.pl: Make script work with older
+ versions of Perl.
+
+2014-04-06 [r1543] Andrew M. Bishop <amb>
+
+ * src/output.c: Change routing instructions if on a bicycle and
+ cyclebothways is enabled on the highways at the junctions (e.g.
+ different count of roundabout exits).
+
+2014-04-05 [r1540-1542] Andrew M. Bishop <amb>
+
+ * src/test, src/test/expected/roundabout-waypoints-WP01.txt
+ (added), src/test/expected/roundabout-waypoints-WP02.txt (added),
+ src/test/expected/roundabout-waypoints-WP03.txt (added),
+ src/test/expected/roundabout-waypoints-WP04.txt (added),
+ src/test/expected/roundabout-waypoints-WP05.txt (added),
+ src/test/expected/roundabout-waypoints-WP06.txt (added),
+ src/test/expected/roundabout-waypoints-WP07.txt (added),
+ src/test/roundabout-waypoints.osm (added),
+ src/test/roundabout-waypoints.sh (added): Add test case for
+ router error when waypoint is on a roundabout. [Test case also
+ unintentionally detected the super-segment merging bug.]
+
+ * src/test/Makefile: Compile programs before running tests (fix
+ Makefile bug).
+
+ * src/superx.c: Fix bug with merging super-segments and segments -
+ an improvement on fix that was applied in version 2.7.
+
+2014-04-04 [r1539] Andrew M. Bishop <amb>
+
+ * src/output.c: Fix router error when waypoint is on a roundabout
+ (stops crash).
+
+2014-04-02 [r1537-1538] Andrew M. Bishop <amb>
+
+ * web/translations/translate.pl: Don't use HTML character entity
+ encoding for UTF-8 characters in the HTML.
+
+ * web/translations/translation.de.txt,
+ web/translations/translation.fr.txt,
+ web/translations/translation.nl.txt,
+ web/translations/translation.ru.txt: Trivial changes to the
+ translation files to put them all into the same order.
+
+2014-04-01 [r1536] Andrew M. Bishop <amb>
+
+ * web/translations/router.html, web/translations/translate.pl,
+ web/translations/translation.ru.txt,
+ web/translations/translations-body.xml,
+ web/translations/visualiser.html: Use '~~' delimiters in the
+ templates for the special-case replacement strings (like the
+ language name).
+
+2014-03-31 [r1535] Andrew M. Bishop <amb>
+
+ * web/translations/router.html, web/translations/translate.pl,
+ web/translations/visualiser.html: Use '$$' delimiters in the
+ templates for the multi-line replacement strings (to match the
+ files of translation phrases).
+
+2014-03-25 [r1534] Andrew M. Bishop <amb>
+
+ * web/translations/translation.ru.txt, web/www/routino,
+ xml/routino-translations.xml: Add Russian translations submitted
+ via http://www.routino.org/translations/ around 2014-03-23.
+
+2014-03-24 [r1533] Andrew M. Bishop <amb>
+
+ * web/translations/translate.pl,
+ web/translations/translation.de.txt,
+ web/translations/translation.en.txt,
+ web/translations/translation.fr.txt,
+ web/translations/translation.nl.txt,
+ web/translations/translation.ru.txt (added),
+ web/translations/translations-body.xml (added),
+ web/translations/translations-head.xml (added),
+ web/translations/translations-tail.xml (added): Create the
+ routino-translations.xml file from the translated language files
+ in the same way as the HTML. Reverse engineer the existing XML
+ file into the translation files for the languages.
+
+2014-03-23 [r1532] Andrew M. Bishop <amb>
+
+ * doc/README.txt, doc/html/readme.html: Fixed typo in subversion
+ command line example.
+
2014-03-22 Andrew M. Bishop <amb>
Version 2.7 released.
diff -Nru routino-2.7/debian/apache.conf routino-2.7.2/debian/apache.conf
--- routino-2.7/debian/apache.conf 2014-04-22 08:11:32.000000000 +0200
+++ routino-2.7.2/debian/apache.conf 2014-12-05 18:45:15.000000000 +0100
@@ -1,13 +1,13 @@
Alias /routino /usr/share/routino/www
<Directory /usr/share/routino/www>
-AddHandler cgi-script .cgi
-LanguagePriority en
-ForceLanguagePriority Prefer Fallback
-Options +ExecCGI
-AllowOverride None
-Require ip 127.0.0.0/255.0.0.0
-Require host localhost
-<FilesMatch .*\.pl$>
- Require all denied
-</FilesMatch>
+ AddHandler cgi-script .cgi
+ LanguagePriority en
+ ForceLanguagePriority Prefer Fallback
+ Options +ExecCGI
+ AllowOverride None
+ Require ip 127.0.0.0/255.0.0.0
+ Require host localhost
+ <FilesMatch .*\.pl$>
+ Require all denied
+ </FilesMatch>
</Directory>
diff -Nru routino-2.7/debian/changelog routino-2.7.2/debian/changelog
--- routino-2.7/debian/changelog 2014-12-03 21:55:19.000000000 +0100
+++ routino-2.7.2/debian/changelog 2014-12-06 11:59:32.000000000 +0100
@@ -1,3 +1,34 @@
+routino (2.7.2-3) unstable; urgency=medium
+
+ * Team upload.
+ * Restructure control file with cme.
+ * Bump Standards-Version to 3.9.6, no changes.
+ * Use canonical Vcs-* URLs.
+ * Add patch to use hardening build flags.
+ * Remove period from package description.
+
+ -- Bas Couwenberg <sebastic@xs4all.nl> Sat, 06 Dec 2014 11:59:30 +0100
+
+routino (2.7.2-2) testing-proposed-updates; urgency=medium
+
+ * Team upload.
+ * Incorporate changes from NMUs:
+ - 2.7-1.1 Build-Depend on zlib1g-dev (closes: #769012)
+ - 2.7-1.2 Don't fail on removal of non-existing directory
+ * Set Debian GIS Project as Maintainer, move Thibaut Gridel to Uploaders.
+ * Add gbp.conf to use pristine-tar by default.
+ * Add prerm for routino-www to remove the Apache configuration.
+ * Verified that apache configuration works with Apache 2.4.
+ (closes: #669788)
+
+ -- Uwe Steinmann <steinm@debian.org> Fri, 05 Dec 2014 17:27:13 +0100
+
+routino (2.7.2-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Uwe Steinmann <steinm@debian.org> Thu, 30 Oct 2014 6:45:27 +0100
+
routino (2.7-1.2) testing-proposed-updates; urgency=medium
* Non-maintainer upload.
diff -Nru routino-2.7/debian/control routino-2.7.2/debian/control
--- routino-2.7/debian/control 2014-07-23 11:27:44.000000000 +0200
+++ routino-2.7.2/debian/control 2014-12-06 11:56:59.000000000 +0100
@@ -1,29 +1,38 @@
Source: routino
+Maintainer: Debian GIS Project <pkg-grass-devel@lists.alioth.debian.org>
+Uploaders: Uwe Steinmann <steinm@debian.org>,
+ Thibaut Gridel <tgridel@free.fr>
Section: misc
Priority: extra
-Maintainer: Thibaut Gridel <tgridel@free.fr>
-Uploaders: Uwe Steinmann <steinm@debian.org>
-Build-Depends: debhelper (>= 7.0.50~), flex, libbz2-dev, zlib1g-dev
-Standards-Version: 3.9.5
+Build-Depends: debhelper (>= 7.0.50~),
+ flex,
+ libbz2-dev,
+ zlib1g-dev
+Standards-Version: 3.9.6
+Vcs-Browser: http://anonscm.debian.org/cgit/pkg-grass/routino.git
+Vcs-Git: git://anonscm.debian.org/pkg-grass/routino.git
Homepage: http://www.routino.org/
-Vcs-Git: git://git.debian.org/pkg-grass/routino.git
-Vcs-Browser: http://git.debian.org/?p=pkg-grass/routino.git
-
Package: routino
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: Set of tools to find a path between two points.
+Depends: ${shlibs:Depends},
+ ${misc:Depends}
+Description: Set of tools to find a path between two points
Routino is an application for finding a route between two points
using the dataset of topographical information collected by
OpenStreetMap
Package: routino-www
Architecture: all
-Depends: apache2 | httpd, libjs-leaflet, javascript-common, routino, ${misc:Depends}
+Depends: apache2 | httpd,
+ libjs-leaflet,
+ javascript-common,
+ routino,
+ ${misc:Depends}
Description: Web frontend for routino
Routino is an application for finding a route between two points
using the dataset of topographical information collected by
OpenStreetMap
.
This is the web frontend to the router.
+
diff -Nru routino-2.7/debian/gbp.conf routino-2.7.2/debian/gbp.conf
--- routino-2.7/debian/gbp.conf 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/debian/gbp.conf 2014-12-05 18:44:46.000000000 +0100
@@ -0,0 +1,16 @@
+[DEFAULT]
+
+# The default name for the upstream branch is "upstream".
+# Change it if the name is different (for instance, "master").
+upstream-branch = upstream
+
+# The default name for the Debian branch is "master".
+# Change it if the name is different (for instance, "debian/unstable").
+debian-branch = master
+
+# git-import-orig uses the following names for the upstream tags.
+# Change the value if you are not using git-import-orig
+upstream-tag = upstream/%(version)s
+
+# Always use pristine-tar.
+pristine-tar = True
diff -Nru routino-2.7/debian/patches/hardening routino-2.7.2/debian/patches/hardening
--- routino-2.7/debian/patches/hardening 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/debian/patches/hardening 2014-12-06 11:56:59.000000000 +0100
@@ -0,0 +1,23 @@
+Description: Use hardening flags in Makefile.conf.
+Author: Bas Couwenberg <sebastic@xs4all.nl>
+
+--- a/Makefile.conf
++++ b/Makefile.conf
+@@ -31,7 +31,6 @@ datadir=$(prefix)/share/routino
+ CC=gcc
+ LD=gcc
+
+-
+ # Language dialect selection
+ CFLAGS=-std=c99
+
+@@ -79,3 +78,9 @@ CFLAGS+=-D_FILE_OFFSET_BITS=64
+
+ # Required to compile on Linux without a warning about pread() and pwrite() functions.
+ CFLAGS+=-D_POSIX_C_SOURCE=200809L
++
++
++# Hardening flags
++CFLAGS+=-fstack-protector-strong -Wformat -Werror=format-security
++CFLAGS+=-D_FORTIFY_SOURCE=2
++LDFLAGS+=-Wl,-z,relro
diff -Nru routino-2.7/debian/patches/series routino-2.7.2/debian/patches/series
--- routino-2.7/debian/patches/series 2014-04-17 08:42:29.000000000 +0200
+++ routino-2.7.2/debian/patches/series 2014-12-06 11:31:02.000000000 +0100
@@ -5,3 +5,4 @@
install_documentation
maploader
mapprops
+hardening
diff -Nru routino-2.7/debian/routino-www.postinst routino-2.7.2/debian/routino-www.postinst
--- routino-2.7/debian/routino-www.postinst 2014-04-17 11:17:41.000000000 +0200
+++ routino-2.7.2/debian/routino-www.postinst 2014-12-05 18:45:15.000000000 +0100
@@ -27,7 +27,7 @@
if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
. /usr/share/apache2/apache2-maintscript-helper
- apache2_invoke enconf routino-www
+ apache2_invoke enconf routino-www || exit $?
elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then
[ -d /etc/apache2/conf.d/ ] && [ ! -L /etc/apache2/conf.d/routino-www.conf ] && ln -s ../conf-available/routino-www.conf /etc/apache2/conf.d/routino-www.conf
fi
diff -Nru routino-2.7/debian/routino-www.prerm routino-2.7.2/debian/routino-www.prerm
--- routino-2.7/debian/routino-www.prerm 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/debian/routino-www.prerm 2014-12-05 18:45:15.000000000 +0100
@@ -0,0 +1,28 @@
+#! /bin/sh
+# postrm script for routino-www
+#
+set -e
+
+if [ "$DPKG_DEBUG" = "developer" ]; then
+ set -x
+fi
+
+apache_uninstall() {
+ COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true)
+
+ if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
+ . /usr/share/apache2/apache2-maintscript-helper
+ apache2_invoke disconf routino-www || exit $?
+ elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then
+ [ ! -L /etc/apache2/conf.d/routino-www.conf ] || rm /etc/apache2/conf.d/routino-www.conf
+ fi
+
+ rm /etc/apache2/conf-available/routino-www.conf
+}
+
+if [ "$1" = "deconfigure" ]; then
+ apache_uninstall
+fi
+
+#DEBHELPER#
+
diff -Nru routino-2.7/doc/html/installation.html routino-2.7.2/doc/html/installation.html
--- routino-2.7/doc/html/installation.html 2014-03-01 12:52:18.000000000 +0100
+++ routino-2.7.2/doc/html/installation.html 2014-06-25 20:09:27.000000000 +0200
@@ -113,10 +113,10 @@
</pre>
To make full use of the location search feature on the Routino web page you will
-need to install one extra perl package.
+need to install some extra perl packages.
<pre class="boxed">
-apt-get install libjson-pp-perl
+apt-get install libwww-perl liburi-perl libjson-pp-perl
</pre>
Finally to make the web pages work you will need to add the extra lines to the
@@ -188,14 +188,22 @@
<p>
+To compile the source code from subversion requires the Perl Graphics::Magick
+module to generate the web page icons (on Linux this might be in a package
+called libgraphics-magick-perl). The released source code packages contains the
+icons so this package is not required for compilation.
+
+<p>
+
To use the web page interface an http server is required. Instructions below
are for Apache but any server that supports CGIs should work.
<p>
The web pages use the Perl scripting language and a number of the default Perl
-modules. To use the search function on the router web page the additional Perl
-module "JSON::PP" must be installed.
+modules. To use the search function on the router web page the Perl module
+JSON::PP must be installed (on Linux this might be in a package called
+libjson-pp-perl if not part of the standard Perl installation).
<h2 id="H_1_3">Compilation</h2>
diff -Nru routino-2.7/doc/html/readme.html routino-2.7.2/doc/html/readme.html
--- routino-2.7/doc/html/readme.html 2014-03-22 14:36:07.000000000 +0100
+++ routino-2.7.2/doc/html/readme.html 2014-06-25 20:38:35.000000000 +0200
@@ -202,13 +202,17 @@
Version 2.6 of Routino was released on 6th July 2013.
<br>
Version 2.7 of Routino was released on 22nd March 2014.
+<br>
+Version 2.7.1 of Routino was released on 17th May 2014.
+<br>
+Version 2.7.2 of Routino was released on 26th June 2014.
<p>
The full version history is available in the NEWS.txt file.
-<h3 id="H_1_5_1" title="Changes">Changes in Versions 2.7</h3>
+<h3 id="H_1_5_1" title="Changes_2.7">Changes in Versions 2.7</h3>
Version 2.7 - mostly web page usability improvements.
@@ -258,8 +262,72 @@
<p>
<b>Note:</b> Note: This version is compatible with databases from version 2.6.
+<h3 id="H_1_5_2" title="Changes_2.7.1">Changes in Versions 2.7.1</h3>
+
+Version 2.7.1 - mostly bug fixes (some from version 2.7, but mostly older ones).
+
+<dl>
+ <dt>Bug fixes:
+ <dd>Fix typo in documentation for command to get SVN version.
+ <br>Fix router crash when waypoint is on roundabout.
+ <br>Don't duplicate super-segments when merging them with normal segments.
+ <br>Change routing instructions for bicycle if highways allow cycling both ways.
+ <br>Make translation script work with older versions of Perl.
+ <br>Fix router crash if fewer than two waypoints are specified.
+ <br>Revert router speed decrease with special-case tagging rules.
+ <br>Fix web page search function when it returns non-ASCII text.
+ <br>Fix router failure due to invalid assumption about allowed U-turn.
+ <br>Fix bug with updating XML files in web/data directory (Makefile error).
+ <br>Fix router web page error due to absence of cyclebothways property entry.
+ <br>Fix results error if a waypoint node was passed again on way to next waypoint.
+ <br>Fix router crash when route contains consecutive coincident waypoints.
+ <br>Fix bug with slightly incorrect distances when pruning short segments.
+
+ <dt>Test cases:
+ <dd>Create new test case for roundabout waypoint bug fixed in this version.
+ <br>Create new test case for invalid U-turn assumption bug fixed in this version.
+ <br>Create new test case for cycling both ways.
+ <br>Create new test case for consecutive coincident waypoints.
+
+ <dt>router:
+ <dd>Remove cyclebothways as a property that can be used as a routing preference.
+
+ <dt>Web pages:
+ <dd>Disallow route calculation if fewer than two waypoints are selected.
+ <br>Update visualiser for change of cyclebothways handling.
+
+ <dt>Translations:
+ <dd>Updated Russian translations.
+ <br>Updated German translations.
+</dl>
+
+<p>
+<b>Note:</b> This version is not compatible with databases from previous versions.
+
+
+<h3 id="H_1_5_3" title="Changes_2.7.2">Changes in Versions 2.7.2</h3>
+
+Version 2.7.2 - mostly bug fixes introduced in version 2.7.1 on 64-bit systems.
+
+<dl>
+ <dt>Bug fixes:
+ <dd>Make the visualiser display all segments including those crossing the border.
+ <br>Fix two errors that cause crashes only on 64-bit systems.
+
+ <dt>planetsplitter / router:
+ <dd>Increase the size of the caches for the slim programs by a factor of four.
+
+ <dt>Translations:
+ <dd>Updated Russian translations.
+ <br>Updated German translations.
+</dl>
+
+<p>
+<b>Note:</b> This version is compatible with databases from version 2.7.1.
+
+
-<h3 id="H_1_5_2">License</h3>
+<h2 id="H_1_6">License</h2>
This program is free software: you can redistribute it and/or modify it under
the terms of the
@@ -275,30 +343,30 @@
software.
-<h3 id="H_1_5_3">Copyright</h3>
+<h3 id="H_1_7">Copyright</h3>
Routino is copyright Andrew M. Bishop 2008-2014.
-<h2 id="H_1_6">Homepage</h2>
+<h2 id="H_1_8">Homepage</h2>
The <a title="Homepage" href="http://www.routino.org/">Routino homepage</a>
has the latest news about the program.
-<h2 id="H_1_7">Download</h2>
+<h2 id="H_1_9">Download</h2>
The <a title="Download directory" href="http://www.routino.org/download/">download directory</a>
contains the latest version of the source code.
-<h3 id="H_1_7_2">Subversion</h3>
+<h3 id="H_1_9_1">Subversion</h3>
The source code can also be downloaded from the
<a title="SVN Repository" href="http://routino.org/svn/trunk/">Subversion repository</a>
with a command like the following:
<pre class="boxed">
-svn co http://gedanken.org.uk/svn/cxref/trunk cxref
+svn co http://routino.org/svn/trunk routino
</pre>
<p>
diff -Nru routino-2.7/doc/html/tagging.html routino-2.7.2/doc/html/tagging.html
--- routino-2.7/doc/html/tagging.html 2014-01-27 20:26:37.000000000 +0100
+++ routino-2.7.2/doc/html/tagging.html 2014-06-07 12:46:44.000000000 +0200
@@ -698,6 +698,18 @@
<td class="center">no
<td class="center">no
<td class="center">no
+ <tr>
+ <td class="left">ferry (3)
+ <td class="center">no
+ <td class="center">no
+ <td class="center">no
+ <td class="center">no
+ <td class="center">no
+ <td class="center">no
+ <td class="center">no
+ <td class="center">no
+ <td class="center">no
+ <td class="center">no
</table>
<p>
@@ -708,6 +720,9 @@
<br>
Note 2: A path allows bicycle or horse access by default only if actually
labelled as a highway of type "bridleway".
+ <br>
+ Note 3: Ferry routes must be explicitly tagged with the allowed transport
+ types, it is not sensible to try to guess.
</i>
<p>
@@ -757,6 +772,9 @@
<tr>
<td class="center">steps
<td class="center">
+ <tr>
+ <td class="center">ferry
+ <td class="center">
</table>
<p>
@@ -832,7 +850,12 @@
<p>
A highway that is tagged as <em>cycleway</em> with one of several values will
allow bicycle access. If the value of the <em>cycleway</em> tag
-is <em>opposite_lane</em> then the <em>cyclebothways</em> tag is set.
+is <em>opposite_lane</em>, <em>opposite_track</em> or <em>opposite</em> then
+the <em>cyclebothways</em> tag is set.
+
+<p>
+A highway that is tagged as <em>oneway:bicycle</em> with the value <em>no</em>
+will also cause the <em>cyclebothways</em> tag to be set.
<h4 id="H_1_3_2_4" title="Specific access">Specific Access Permissions</h4>
diff -Nru routino-2.7/doc/html/usage.html routino-2.7.2/doc/html/usage.html
--- routino-2.7/doc/html/usage.html 2014-02-22 13:15:34.000000000 +0100
+++ routino-2.7.2/doc/html/usage.html 2014-04-30 20:21:00.000000000 +0200
@@ -489,8 +489,8 @@
<ul>
<li>junctions = segment count at each junction.
<li>super = super-node and super-segments.
- <li>oneway = oneway segments.
- <li>highway-* = segments of the specified highway type
+ <li>waytype-* = segments of oneway, cyclebothways or roundabout type.
+ <li>highway-* = segments of the specified highway type
(e.g. highway-primary to display segments ofprimary roads).
<li>transport-* = segments allowing the specified transport type
(e.g. transport-foot to display segments accessible on foot).
diff -Nru routino-2.7/doc/INSTALL.txt routino-2.7.2/doc/INSTALL.txt
--- routino-2.7/doc/INSTALL.txt 2014-03-20 20:55:31.000000000 +0100
+++ routino-2.7.2/doc/INSTALL.txt 2014-06-25 20:11:38.000000000 +0200
@@ -53,9 +53,9 @@
sh -x install.sh
To make full use of the location search feature on the Routino web page
- you will need to install one extra perl package.
+ you will need to install some extra perl packages.
- apt-get install libjson-pp-perl
+ apt-get install libwww-perl liburi-perl libjson-pp-perl
Finally to make the web pages work you will need to add the extra lines
to the Apache configuration file as described in the Configuration of
@@ -111,13 +111,20 @@
called liblzma-dev). The xz function is not enabled by default but can
be enabled by uncommenting two lines in the file 'Makefile.conf'.
+ To compile the source code from subversion requires the Perl
+ Graphics::Magick module to generate the web page icons (on Linux this
+ might be in a package called libgraphics-magick-perl). The released
+ source code packages contains the icons so this package is not required
+ for compilation.
+
To use the web page interface an http server is required. Instructions
below are for Apache but any server that supports CGIs should work.
The web pages use the Perl scripting language and a number of the
default Perl modules. To use the search function on the router web page
- the additional Perl module "JSON::PP" must be installed.
-
+ the Perl module JSON::PP must be installed (on Linux this might be in a
+ package called libjson-pp-perl if not part of the standard Perl
+ installation).
Compilation
-----------
@@ -274,7 +281,7 @@
the Routino documentation.
-Configuration of web server
+Configuration of Web Server
---------------------------
The file 'www/routino/.htaccess' contains all of the Apache
diff -Nru routino-2.7/doc/NEWS.txt routino-2.7.2/doc/NEWS.txt
--- routino-2.7/doc/NEWS.txt 2014-03-22 14:41:47.000000000 +0100
+++ routino-2.7.2/doc/NEWS.txt 2014-06-25 20:40:26.000000000 +0200
@@ -1,3 +1,61 @@
+Version 2.7.2 of Routino released : Thu May 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
-------------------------------------------------
@@ -43,7 +101,8 @@
Note: This version has removed specific support for IE6 and IE7 browsers.
-Note: This version is compatible with databases from version 2.6.
+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
diff -Nru routino-2.7/doc/README.txt routino-2.7.2/doc/README.txt
--- routino-2.7/doc/README.txt 2014-03-22 14:39:08.000000000 +0100
+++ routino-2.7.2/doc/README.txt 2014-06-25 20:38:23.000000000 +0200
@@ -71,11 +71,10 @@
A live demonstration of the router for the UK is available on the
internet in both OpenLayers and Leaflet versions:
+
http://www.routino.org/uk-leaflet/
http://www.routino.org/uk-openlayers/
- http://www.routino.org/uk/
-
The source code download available below also includes a set of files
that can be used to create your own interactive map.
@@ -127,6 +126,8 @@
Version 2.5.1 of Routino was released on 20th April 2013.
Version 2.6 of Routino was released on 6th July 2013.
Version 2.7 of Routino was released on 22nd March 2014.
+ Version 2.7.1 of Routino was released on 17th May 2014.
+ Version 2.7.2 of Routino was released on 26th June 2014.
The full version history is available in the NEWS.txt file.
@@ -154,7 +155,7 @@
Homepage
--------
- The latest information about the program can be found on the homepage:
+ The Routino homepage has the latest news about the program:
http://www.routino.org/
@@ -172,7 +173,7 @@
The source code can also be downloaded from the Subversion repository
with a command like the following:
- svn co http://gedanken.org.uk/svn/cxref/trunk cxref
+ svn co http://routino.org/svn/trunk routino
The source code can also be browsed in the Subversion viewer which also
has a list of the latest changes:
diff -Nru routino-2.7/doc/TAGGING.txt routino-2.7.2/doc/TAGGING.txt
--- routino-2.7/doc/TAGGING.txt 2014-01-27 20:28:45.000000000 +0100
+++ routino-2.7.2/doc/TAGGING.txt 2014-06-07 12:49:35.000000000 +0200
@@ -387,11 +387,14 @@
cycleway yes no yes yes no no no no no no
path yes yes(2) yes yes(2) no no no no no no
steps yes no no no no no no no no no
+ ferry (3) no no no no no no no no no no
Note 1: A trunk road may legally allow foot, horse or wheelchair access
but in the absence of other tags is considered to be too dangerous.
Note 2: A path allows bicycle or horse access by default only if
actually labelled as a highway of type "bridleway".
+ Note 3: Ferry routes must be explicitly tagged with the allowed
+ transport types, it is not sensible to try to guess.
Finally for the highway tag a number of default properties are added
depending on the highway type.
@@ -410,6 +413,7 @@
cycleway paved
path paved (3)
steps
+ ferry
Note 1: A highway of this type has the multilane property by default if
it is oneway.
@@ -462,8 +466,12 @@
type would not normally do so.
A highway that is tagged as cycleway with one of several values will
- allow bicycle access. If the value of the cycleway tag is opposite_lane
- then the cyclebothways tag is set.
+ allow bicycle access. If the value of the cycleway tag is
+ opposite_lane, opposite_track or opposite then the cyclebothways tag is
+ set.
+
+ A highway that is tagged as oneway:bicycle with the value no will also
+ cause the cyclebothways tag to be set.
Specific Access Permissions
- - - - - - - - - - - - - -
@@ -545,4 +553,4 @@
--------
-Copyright 2008-2013 Andrew M. Bishop.
+Copyright 2008-2014 Andrew M. Bishop.
diff -Nru routino-2.7/doc/USAGE.txt routino-2.7.2/doc/USAGE.txt
--- routino-2.7/doc/USAGE.txt 2014-02-22 13:22:35.000000000 +0100
+++ routino-2.7.2/doc/USAGE.txt 2014-04-30 20:21:24.000000000 +0200
@@ -504,7 +504,8 @@
o junctions = segment count at each junction.
o super = super-node and super-segments.
- o oneway = oneway segments.
+ o waytype-* = segments of oneway, cyclebothways or
+ roundabout type.
o highway-* = segments of the specified highway type (e.g.
highway-primary to display segments ofprimary roads).
o transport-* = segments allowing the specified transport
diff -Nru routino-2.7/INSTALL.txt routino-2.7.2/INSTALL.txt
--- routino-2.7/INSTALL.txt 2014-03-20 20:55:31.000000000 +0100
+++ routino-2.7.2/INSTALL.txt 2014-06-25 20:11:38.000000000 +0200
@@ -53,9 +53,9 @@
sh -x install.sh
To make full use of the location search feature on the Routino web page
- you will need to install one extra perl package.
+ you will need to install some extra perl packages.
- apt-get install libjson-pp-perl
+ apt-get install libwww-perl liburi-perl libjson-pp-perl
Finally to make the web pages work you will need to add the extra lines
to the Apache configuration file as described in the Configuration of
@@ -111,13 +111,20 @@
called liblzma-dev). The xz function is not enabled by default but can
be enabled by uncommenting two lines in the file 'Makefile.conf'.
+ To compile the source code from subversion requires the Perl
+ Graphics::Magick module to generate the web page icons (on Linux this
+ might be in a package called libgraphics-magick-perl). The released
+ source code packages contains the icons so this package is not required
+ for compilation.
+
To use the web page interface an http server is required. Instructions
below are for Apache but any server that supports CGIs should work.
The web pages use the Perl scripting language and a number of the
default Perl modules. To use the search function on the router web page
- the additional Perl module "JSON::PP" must be installed.
-
+ the Perl module JSON::PP must be installed (on Linux this might be in a
+ package called libjson-pp-perl if not part of the standard Perl
+ installation).
Compilation
-----------
@@ -274,7 +281,7 @@
the Routino documentation.
-Configuration of web server
+Configuration of Web Server
---------------------------
The file 'www/routino/.htaccess' contains all of the Apache
diff -Nru routino-2.7/NEWS.txt routino-2.7.2/NEWS.txt
--- routino-2.7/NEWS.txt 2014-03-22 14:41:47.000000000 +0100
+++ routino-2.7.2/NEWS.txt 2014-06-25 20:40:26.000000000 +0200
@@ -1,3 +1,61 @@
+Version 2.7.2 of Routino released : Thu May 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
-------------------------------------------------
@@ -43,7 +101,8 @@
Note: This version has removed specific support for IE6 and IE7 browsers.
-Note: This version is compatible with databases from version 2.6.
+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
diff -Nru routino-2.7/README.txt routino-2.7.2/README.txt
--- routino-2.7/README.txt 2014-03-22 14:39:08.000000000 +0100
+++ routino-2.7.2/README.txt 2014-06-25 20:38:23.000000000 +0200
@@ -71,11 +71,10 @@
A live demonstration of the router for the UK is available on the
internet in both OpenLayers and Leaflet versions:
+
http://www.routino.org/uk-leaflet/
http://www.routino.org/uk-openlayers/
- http://www.routino.org/uk/
-
The source code download available below also includes a set of files
that can be used to create your own interactive map.
@@ -127,6 +126,8 @@
Version 2.5.1 of Routino was released on 20th April 2013.
Version 2.6 of Routino was released on 6th July 2013.
Version 2.7 of Routino was released on 22nd March 2014.
+ Version 2.7.1 of Routino was released on 17th May 2014.
+ Version 2.7.2 of Routino was released on 26th June 2014.
The full version history is available in the NEWS.txt file.
@@ -154,7 +155,7 @@
Homepage
--------
- The latest information about the program can be found on the homepage:
+ The Routino homepage has the latest news about the program:
http://www.routino.org/
@@ -172,7 +173,7 @@
The source code can also be downloaded from the Subversion repository
with a command like the following:
- svn co http://gedanken.org.uk/svn/cxref/trunk cxref
+ svn co http://routino.org/svn/trunk routino
The source code can also be browsed in the Subversion viewer which also
has a list of the latest changes:
diff -Nru routino-2.7/src/cache.h routino-2.7.2/src/cache.h
--- routino-2.7/src/cache.h 2013-06-22 18:46:34.000000000 +0200
+++ routino-2.7.2/src/cache.h 2014-05-30 20:28:54.000000000 +0200
@@ -3,7 +3,7 @@
Part of the Routino routing software.
******************/ /******************
- This file Copyright 2013 Andrew M. Bishop
+ This file Copyright 2013-2014 Andrew M. Bishop
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@@ -33,7 +33,7 @@
/* Macros for constants */
-#define CACHEWIDTH 2048 /*+ The width of the cache. +*/
+#define CACHEWIDTH 8192 /*+ The width of the cache. +*/
#define CACHEDEPTH 16 /*+ The depth of the cache. +*/
diff -Nru routino-2.7/src/errorlogx.c routino-2.7.2/src/errorlogx.c
--- routino-2.7/src/errorlogx.c 2013-06-22 20:47:06.000000000 +0200
+++ routino-2.7.2/src/errorlogx.c 2014-06-25 19:33:12.000000000 +0200
@@ -930,7 +930,7 @@
{
int i;
char buffer[4096];
- off_t chunksize=(size>sizeof(buffer)?sizeof(buffer):size);
+ off_t chunksize=(size>(off_t)sizeof(buffer)?(off_t)sizeof(buffer):size);
ReadFileBuffered(oldfd,buffer,chunksize);
diff -Nru routino-2.7/src/fakes.c routino-2.7.2/src/fakes.c
--- routino-2.7/src/fakes.c 2013-06-06 19:38:22.000000000 +0200
+++ routino-2.7.2/src/fakes.c 2014-05-09 21:05:16.000000000 +0200
@@ -3,7 +3,7 @@
Part of the Routino routing software.
******************/ /******************
- This file Copyright 2008-2013 Andrew M. Bishop
+ This file Copyright 2008-2014 Andrew M. Bishop
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@@ -203,6 +203,33 @@
}
+/*++++++++++++++++++++++++++++++++++++++
+ Create a fake segment connecting a node to itself.
+
+ index_t CreateFakeNullSegment Returns the index of a fake segment.
+
+ Segments *segments The list of segments to use.
+
+ index_t node The node that is to be linked.
+
+ index_t segment The segment that is to be emulated.
+
+ int point The waypoint number.
+ ++++++++++++++++++++++++++++++++++++++*/
+
+index_t CreateFakeNullSegment(Segments *segments,index_t node,index_t segment,int point)
+{
+ Segment *segmentp=LookupSegment(segments,segment,1);
+
+ fake_segments[4*point-2].node1=node;
+ fake_segments[4*point-2].node2=node;
+ fake_segments[4*point-2].way=segmentp->way;
+ fake_segments[4*point-2].distance=0;
+
+ return(4*point-2+SEGMENT_FAKE);
+}
+
+
/*++++++++++++++++++++++++++++++++++++++
Lookup the latitude and longitude of a fake node.
diff -Nru routino-2.7/src/fakes.h routino-2.7.2/src/fakes.h
--- routino-2.7/src/fakes.h 2012-12-20 17:29:40.000000000 +0100
+++ routino-2.7.2/src/fakes.h 2014-05-09 21:04:54.000000000 +0200
@@ -3,7 +3,7 @@
Part of the Routino routing software.
******************/ /******************
- This file Copyright 2008-2012 Andrew M. Bishop
+ This file Copyright 2008-2014 Andrew M. Bishop
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@@ -39,6 +39,8 @@
index_t CreateFakes(Nodes *nodes,Segments *segments,int point,Segment *segmentp,index_t node1,index_t node2,distance_t dist1,distance_t dist2);
+index_t CreateFakeNullSegment(Segments *segments,index_t node,index_t segment,int point);
+
void GetFakeLatLong(index_t fakenode, double *latitude,double *longitude);
Segment *FirstFakeSegment(index_t fakenode);
diff -Nru routino-2.7/src/filedumper.c routino-2.7.2/src/filedumper.c
--- routino-2.7/src/filedumper.c 2014-01-31 16:28:32.000000000 +0100
+++ routino-2.7.2/src/filedumper.c 2014-04-30 20:20:42.000000000 +0200
@@ -3,7 +3,7 @@
Part of the Routino routing software.
******************/ /******************
- This file Copyright 2008-2013 Andrew M. Bishop
+ This file Copyright 2008-2014 Andrew M. Bishop
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@@ -170,8 +170,12 @@
OutputJunctions(OSMNodes,OSMSegments,OSMWays,OSMRelations,latmin,latmax,lonmin,lonmax);
else if(!strcmp(option_data,"super"))
OutputSuper(OSMNodes,OSMSegments,OSMWays,OSMRelations,latmin,latmax,lonmin,lonmax);
- else if(!strcmp(option_data,"oneway"))
- OutputOneway(OSMNodes,OSMSegments,OSMWays,OSMRelations,latmin,latmax,lonmin,lonmax);
+ else if(!strcmp(option_data,"waytype-oneway"))
+ OutputWaytype(OSMNodes,OSMSegments,OSMWays,OSMRelations,latmin,latmax,lonmin,lonmax,Highway_OneWay);
+ else if(!strcmp(option_data,"waytype-cyclebothways"))
+ OutputWaytype(OSMNodes,OSMSegments,OSMWays,OSMRelations,latmin,latmax,lonmin,lonmax,Highway_CycleBothWays);
+ else if(!strcmp(option_data,"waytype-roundabout"))
+ OutputWaytype(OSMNodes,OSMSegments,OSMWays,OSMRelations,latmin,latmax,lonmin,lonmax,Highway_Roundabout);
else if(!strncmp(option_data,"highway",7) && option_data[7]=='-' && (highway=HighwayType(option_data+8))!=Highway_None)
OutputHighway(OSMNodes,OSMSegments,OSMWays,OSMRelations,latmin,latmax,lonmin,lonmax,highway);
else if(!strncmp(option_data,"transport",9) && option_data[9]=='-' && (transport=TransportType(option_data+10))!=Transport_None)
@@ -553,7 +557,11 @@
printf("Way %"Pindex_t"\n",item);
if(*name)
printf(" name=%s\n",name);
- printf(" type=%02x (%s%s%s)\n",wayp->type,HighwayName(HIGHWAY(wayp->type)),wayp->type&Highway_OneWay?",One-Way":"",wayp->type&Highway_Roundabout?",Roundabout":"");
+ printf(" type=%02x (%s%s%s%s)\n",wayp->type,
+ HighwayName(HIGHWAY(wayp->type)),
+ wayp->type&Highway_OneWay?",One-Way":"",
+ wayp->type&Highway_CycleBothWays?",Cycle-Both-Ways":"",
+ wayp->type&Highway_Roundabout?",Roundabout":"");
printf(" allow=%02x (%s)\n",wayp->allow,AllowedNameList(wayp->allow));
if(wayp->props)
printf(" props=%02x (%s)\n",wayp->props,PropertiesNameList(wayp->props));
@@ -854,6 +862,9 @@
if(wayp->type & Highway_OneWay)
printf(" <tag k='oneway' v='yes' />\n");
+ if(wayp->type & Highway_CycleBothWays)
+ printf(" <tag k='cyclebothways' v='yes' />\n");
+
if(wayp->type & Highway_Roundabout)
printf(" <tag k='roundabout' v='yes' />\n");
@@ -1026,6 +1037,9 @@
if(wayp->type & Highway_OneWay)
printf(" <tag k='oneway' v='yes' />\n");
+ if(wayp->type & Highway_CycleBothWays)
+ printf(" <tag k='cyclebothways' v='yes' />\n");
+
if(wayp->type & Highway_Roundabout)
printf(" <tag k='roundabout' v='yes' />\n");
@@ -1227,7 +1241,7 @@
" <data-type> can be selected from:\n"
" junctions = segment count at each junction.\n"
" super = super-node and super-segments.\n"
- " oneway = oneway segments.\n"
+ " waytype-* = segments of oneway, cyclebothways or roundabout type.\n"
" highway-* = segments of the specified highway type.\n"
" transport-* = segments allowing the specified transport type.\n"
" barrier-* = nodes disallowing the specified transport type.\n"
diff -Nru routino-2.7/src/optimiser.c routino-2.7.2/src/optimiser.c
--- routino-2.7/src/optimiser.c 2014-01-27 20:14:12.000000000 +0100
+++ routino-2.7.2/src/optimiser.c 2014-06-24 19:54:37.000000000 +0200
@@ -176,7 +176,7 @@
wayp=LookupWay(ways,segmentp->way,1);
- if(!(wayp->props&Properties_CycleBothWays))
+ if(!(wayp->type&Highway_CycleBothWays))
goto endloop;
}
@@ -236,10 +236,13 @@
goto endloop;
for(i=1;i<Property_Count;i++)
- if(wayp->props & PROPERTIES(i))
- segment_pref*=profile->props_yes[i];
- else
- segment_pref*=profile->props_no[i];
+ if(ways->file.props & PROPERTIES(i))
+ {
+ if(wayp->props & PROPERTIES(i))
+ segment_pref*=profile->props_yes[i];
+ else
+ segment_pref*=profile->props_no[i];
+ }
/* profile preferences must allow this highway */
if(segment_pref==0)
@@ -411,7 +414,7 @@
while(result3)
{
if((results->start_node!=result3->node || results->prev_segment!=result3->segment) &&
- !IsFakeNode(result3->node) && IsSuperNode(LookupNode(nodes,result3->node,5)))
+ !IsFakeNode(result3->node) && IsSuperNode(LookupNode(nodes,result3->node,3)))
{
Result *result5=result1;
index_t superseg=FindSuperSegment(nodes,segments,ways,relations,profile,result3->node,result3->segment);
@@ -420,6 +423,8 @@
{
result5=InsertResult(results,result3->node,result3->segment);
+ result5->score=result3->score;
+
result5->prev=result1;
}
@@ -505,7 +510,7 @@
wayp=LookupWay(ways,segmentp->way,1);
- if(!(wayp->props&Properties_CycleBothWays))
+ if(!(wayp->type&Highway_CycleBothWays))
goto endloop;
}
@@ -549,10 +554,13 @@
goto endloop;
for(i=1;i<Property_Count;i++)
- if(wayp->props & PROPERTIES(i))
- segment_pref*=profile->props_yes[i];
- else
- segment_pref*=profile->props_no[i];
+ if(ways->file.props & PROPERTIES(i))
+ {
+ if(wayp->props & PROPERTIES(i))
+ segment_pref*=profile->props_yes[i];
+ else
+ segment_pref*=profile->props_no[i];
+ }
/* profile preferences must allow this highway */
if(segment_pref==0)
@@ -707,15 +715,15 @@
if(IsFakeSegment(finish_segment))
finish_segment=IndexRealSegment(finish_segment);
- supernodep=LookupNode(nodes,finish_node,5); /* finish_node cannot be a fake node (must be a super-node) */
- supersegmentp=LookupSegment(segments,finish_segment,2); /* finish_segment cannot be a fake segment. */
+ supernodep=LookupNode(nodes,finish_node,3); /* finish_node cannot be a fake node (must be a super-node) */
+ supersegmentp=LookupSegment(segments,finish_segment,4); /* finish_segment cannot be a fake segment. */
if(IsSuperSegment(supersegmentp))
return(finish_segment);
/* Loop across all segments */
- supersegmentp=FirstSegment(segments,supernodep,3); /* supernode cannot be a fake node (must be a super-node) */
+ supersegmentp=FirstSegment(segments,supernodep,4); /* supernode cannot be a fake node (must be a super-node) */
while(supersegmentp)
{
@@ -805,11 +813,11 @@
node1=result1->node;
seg1=result1->segment;
- node1p=LookupNode(nodes,node1,1); /* node1 cannot be a fake node */
+ node1p=LookupNode(nodes,node1,3); /* node1 cannot be a fake node */
/* Loop across all segments */
- segmentp=FirstSegment(segments,node1p,1); /* node1 cannot be a fake node */
+ segmentp=FirstSegment(segments,node1p,3); /* node1 cannot be a fake node */
while(segmentp)
{
@@ -829,9 +837,9 @@
if(profile->allow!=Transports_Bicycle)
goto endloop;
- wayp=LookupWay(ways,segmentp->way,1);
+ wayp=LookupWay(ways,segmentp->way,2);
- if(!(wayp->props&Properties_CycleBothWays))
+ if(!(wayp->type&Highway_CycleBothWays))
goto endloop;
}
@@ -843,7 +851,7 @@
node2=OtherNode(segmentp,node1);
- node2p=LookupNode(nodes,node2,2); /* node2 cannot be a fake node */
+ node2p=LookupNode(nodes,node2,4); /* node2 cannot be a fake node */
/* must not pass over super-node */
if(node2!=finish_node && IsSuperNode(node2p))
@@ -1003,7 +1011,7 @@
wayp=LookupWay(ways,segmentp->way,1);
- if(!(wayp->props&Properties_CycleBothWays))
+ if(!(wayp->type&Highway_CycleBothWays))
goto endloop;
}
@@ -1056,10 +1064,13 @@
goto endloop;
for(i=1;i<Property_Count;i++)
- if(wayp->props & PROPERTIES(i))
- segment_pref*=profile->props_yes[i];
- else
- segment_pref*=profile->props_no[i];
+ if(ways->file.props & PROPERTIES(i))
+ {
+ if(wayp->props & PROPERTIES(i))
+ segment_pref*=profile->props_yes[i];
+ else
+ segment_pref*=profile->props_no[i];
+ }
/* profile preferences must allow this highway */
if(segment_pref==0)
@@ -1240,7 +1251,7 @@
}
if(!IsFakeNode(result3->node))
- if(IsSuperNode(LookupNode(nodes,result3->node,5)))
+ if(IsSuperNode(LookupNode(nodes,result3->node,3)))
InsertInQueue(queue,result3,result3->score);
result3=NextResult(results,result3);
@@ -1303,7 +1314,7 @@
wayp=LookupWay(ways,segmentp->way,1);
- if(!(wayp->props&Properties_CycleBothWays))
+ if(!(wayp->type&Highway_CycleBothWays))
goto endloop;
}
@@ -1349,10 +1360,13 @@
goto endloop;
for(i=1;i<Property_Count;i++)
- if(wayp->props & PROPERTIES(i))
- segment_pref*=profile->props_yes[i];
- else
- segment_pref*=profile->props_no[i];
+ if(ways->file.props & PROPERTIES(i))
+ {
+ if(wayp->props & PROPERTIES(i))
+ segment_pref*=profile->props_yes[i];
+ else
+ segment_pref*=profile->props_no[i];
+ }
/* profile preferences must allow this highway */
if(segment_pref==0)
@@ -1489,7 +1503,7 @@
node1=result1->node;
seg1=result1->segment;
- if(IsFakeSegment(seg1))
+ if(seg1!=NO_SEGMENT && IsFakeSegment(seg1))
seg1r=IndexRealSegment(seg1);
else
seg1r=seg1;
@@ -1532,7 +1546,7 @@
wayp=LookupWay(ways,segmentp->way,1);
- if(!(wayp->props&Properties_CycleBothWays))
+ if(!(wayp->type&Highway_CycleBothWays))
goto endloop;
}
@@ -1550,11 +1564,24 @@
}
/* must not perform U-turn (unless profile allows) */
- if(profile->turns && (seg1==seg2 || seg1==seg2r || seg1r==seg2 || (seg1r==seg2r && IsFakeUTurn(seg1,seg2))))
- goto endloop;
+ if(profile->turns && seg1!=NO_SEGMENT)
+ {
+ if(IsFakeNode(node1) || !IsSuperNode(node1p))
+ {
+ if(seg1==seg2 || seg1==seg2r || seg1r==seg2 || (seg1r==seg2r && IsFakeUTurn(seg1,seg2)))
+ goto endloop;
+ }
+ else
+ {
+ index_t superseg=FindSuperSegment(nodes,segments,ways,relations,profile,node1,seg1);
+
+ if(seg2==superseg)
+ goto endloop;
+ }
+ }
/* must obey turn relations */
- if(turnrelation!=NO_RELATION)
+ if(turnrelation!=NO_RELATION && seg1!=NO_SEGMENT)
{
index_t turnrelation2=FindFirstTurnRelation2(relations,node1,seg2r); /* node2 -> node1 -> result1->next->node */
@@ -1585,10 +1612,13 @@
goto endloop;
for(i=1;i<Property_Count;i++)
- if(wayp->props & PROPERTIES(i))
- segment_pref*=profile->props_yes[i];
- else
- segment_pref*=profile->props_no[i];
+ if(ways->file.props & PROPERTIES(i))
+ {
+ if(wayp->props & PROPERTIES(i))
+ segment_pref*=profile->props_yes[i];
+ else
+ segment_pref*=profile->props_no[i];
+ }
/* profile preferences must allow this highway */
if(segment_pref==0)
diff -Nru routino-2.7/src/osmparser.c routino-2.7.2/src/osmparser.c
--- routino-2.7/src/osmparser.c 2014-01-27 20:33:27.000000000 +0100
+++ routino-2.7.2/src/osmparser.c 2014-04-29 20:33:27.000000000 +0200
@@ -413,7 +413,7 @@
{
Way way={0};
int oneway=0,area=0;
- int roundabout=0,lanes=0;
+ int roundabout=0,lanes=0,cyclebothways=0;
char *name=NULL,*ref=NULL,*refname=NULL;
way_t id;
int i;
@@ -529,7 +529,7 @@
if(!strcmp(k,"cyclebothways"))
{
if(ISTRUE(v))
- way.props|=Properties_CycleBothWays;
+ cyclebothways=1;
else if(!ISFALSE(v))
logerror("Way %"Pway_t" has an unrecognised tag 'cyclebothways' = '%s' (after tagging rules); using 'no'.\n",logerror_way(id),v);
recognised=1; break;
@@ -777,19 +777,28 @@
if(area && oneway)
{
- logerror("Way %"Pway_t" is an area and oneway; ignoring area tagging.\n",logerror_way(id));
+ logerror("Way %"Pway_t" is an area and oneway; ignoring area tag.\n",logerror_way(id));
area=0;
}
- if(!oneway && way.props&Properties_CycleBothWays)
+ if(cyclebothways && !oneway)
{
- logerror("Way %"Pway_t" is not oneway and cyclebothways; ignoring cyclebothways tagging.\n",logerror_way(id));
- way.props&=~Properties_CycleBothWays;
+ logerror("Way %"Pway_t" is cyclebothways but not oneway; ignoring cyclebothways tag.\n",logerror_way(id));
+ cyclebothways=0;
+ }
+
+ if(roundabout && !oneway)
+ {
+ logerror("Way %"Pway_t" is roundabout but not oneway; adding oneway tag.\n",logerror_way(id));
+ oneway=1;
}
if(!way.allow)
return;
+ if(cyclebothways)
+ way.type|=Highway_CycleBothWays;
+
if(oneway)
{
way.type|=Highway_OneWay;
diff -Nru routino-2.7/src/output.c routino-2.7.2/src/output.c
--- routino-2.7/src/output.c 2014-01-31 16:01:42.000000000 +0100
+++ routino-2.7.2/src/output.c 2014-06-24 20:24:44.000000000 +0200
@@ -40,6 +40,8 @@
#include "xmlparse.h"
+#define DEBUG 0
+
/* Constants */
#define IMP_IGNORE -1 /*+ Ignore this point. +*/
@@ -106,6 +108,7 @@
FILE *htmlfile=NULL,*gpxtrackfile=NULL,*gpxroutefile=NULL,*textfile=NULL,*textallfile=NULL;
char *prev_bearing=NULL,*prev_wayname=NULL;
+ index_t prev_node=NO_NODE;
distance_t cum_distance=0;
duration_t cum_duration=0;
@@ -323,11 +326,27 @@
do
{
+ int first=1;
int next_point=point;
distance_t junc_distance=0;
duration_t junc_duration=0;
Result *result;
+#if DEBUG
+ printf("Route section %d - waypoint %d to waypoint %d\n",point,results[point]->start_waypoint,results[point]->finish_waypoint);
+ printf(" start_node=%"Pindex_t" prev_segment=%"Pindex_t"\n",results[point]->start_node,results[point]->prev_segment);
+ printf(" finish_node=%"Pindex_t" last_segment=%"Pindex_t"\n",results[point]->finish_node,results[point]->last_segment);
+
+ Result *r=FindResult(results[point],results[point]->start_node,results[point]->prev_segment);
+
+ while(r)
+ {
+ printf(" node=%"Pindex_t" segment=%"Pindex_t" score=%f\n",r->node,r->segment,r->score);
+
+ r=r->next;
+ }
+#endif
+
result=FindResult(results[point],results[point]->start_node,results[point]->prev_segment);
/* Print the start of the segment */
@@ -382,7 +401,7 @@
/* Calculate the information about this segment */
- if(result->node!=results[point]->start_node) /* not first point of a section of the route */
+ if(!first) /* not first point of a section of the route */
{
if(IsFakeSegment(result->segment))
{
@@ -439,26 +458,57 @@
}
else
{
- Segment *segmentp=FirstSegment(segments,resultnodep,3);
+ Segment *segmentp;
+
+ if(resultnodep)
+ segmentp=FirstSegment(segments,resultnodep,3);
+ else
+ segmentp=FirstFakeSegment(result->node);
do
{
index_t othernode=OtherNode(segmentp,result->node);
+ index_t thissegment;
- if(othernode!=result->prev->node && IndexSegment(segments,segmentp)!=realsegment)
- if(IsNormalSegment(segmentp) && (!profile->oneway || !IsOnewayTo(segmentp,result->node)))
+ if(IsFakeNode(result->node))
+ thissegment=IndexFakeSegment(segmentp);
+ else
+ thissegment=IndexSegment(segments,segmentp);
+
+ if(othernode!=prev_node && othernode!=next_result->node &&
+ thissegment!=realsegment && IsNormalSegment(segmentp))
+ {
+ int canexit=1;
+
+ if(profile->oneway && IsOnewayTo(segmentp,result->node))
+ {
+ if(profile->allow!=Transports_Bicycle)
+ canexit=0;
+ else
+ {
+ Way *wayp=LookupWay(ways,segmentp->way,3);
+
+ if(!(wayp->type&Highway_CycleBothWays))
+ canexit=0;
+ }
+ }
+
+ if(canexit)
{
Way *wayp=LookupWay(ways,segmentp->way,3);
if(!(wayp->type&Highway_Roundabout))
- if(othernode!=next_result->node)
- {
- roundabout++;
- important=IMP_RB_NOT_EXIT;
- }
+ {
+ roundabout++;
+ important=IMP_RB_NOT_EXIT;
+ }
}
+ }
- segmentp=NextSegment(segments,segmentp,result->node);
+ if(resultnodep)
+ segmentp=NextSegment(segments,segmentp,result->node);
+ else
+ segmentp=NextFakeSegment(segmentp,result->node);
}
while(segmentp);
}
@@ -473,14 +523,14 @@
/* Decide if this is an important junction */
- if(roundabout) /* roundabout */
- ;
- else if(point_count==0) /* first point overall = Waypoint */
+ if(point_count==0) /* first point overall = Waypoint */
important=IMP_WAYPOINT;
- else if(result->node==results[point]->finish_node) /* Waypoint */
+ else if(result->next==NULL) /* Waypoint */
important=IMP_WAYPOINT;
- else if(result->node==results[point]->start_node) /* first point of a section of the route */
+ else if(first) /* first point of a section of the route */
important=IMP_IGNORE;
+ else if(roundabout) /* roundabout */
+ ;
else if(realsegment==next_realsegment) /* U-turn */
important=IMP_UTURN;
else if(resultnodep && (resultnodep->flags&NODE_MINIRNDBT))
@@ -493,8 +543,24 @@
{
index_t seg=IndexSegment(segments,segmentp);
- if(seg!=realsegment)
- if(IsNormalSegment(segmentp) && (!profile->oneway || !IsOnewayTo(segmentp,result->node)))
+ if(seg!=realsegment && IsNormalSegment(segmentp))
+ {
+ int cango=1;
+
+ if(profile->oneway && IsOnewayTo(segmentp,result->node))
+ {
+ if(profile->allow!=Transports_Bicycle)
+ cango=0;
+ else
+ {
+ Way *wayp=LookupWay(ways,segmentp->way,3);
+
+ if(!(wayp->type&Highway_CycleBothWays))
+ cango=0;
+ }
+ }
+
+ if(cango)
{
Way *wayp=LookupWay(ways,segmentp->way,3);
@@ -514,6 +580,7 @@
important=IMP_JUNCT_CONT;
}
}
+ }
segmentp=NextSegment(segments,segmentp,result->node);
}
@@ -522,7 +589,7 @@
/* Calculate the strings to be used */
- if(resultwayp && textallfile)
+ if(!first && textallfile)
{
waynameraw=WayName(ways,resultwayp);
if(!*waynameraw)
@@ -535,9 +602,13 @@
if(next_result && important>IMP_JUNCT_CONT)
{
- if(resultsegmentp && (htmlfile || textfile))
+ if(!first && (htmlfile || textfile))
{
- turn_int=(int)TurnAngle(nodes,resultsegmentp,next_resultsegmentp,result->node);
+ if(DISTANCE(resultsegmentp->distance)==0 || DISTANCE(next_resultsegmentp->distance)==0)
+ turn_int=0;
+ else
+ turn_int=(int)TurnAngle(nodes,resultsegmentp,next_resultsegmentp,result->node);
+
turn=translate_xml_turn[((202+turn_int)/45)%8];
}
@@ -552,7 +623,11 @@
if(htmlfile || gpxroutefile || textfile)
{
- next_bearing_int=(int)BearingAngle(nodes,next_resultsegmentp,next_result->node);
+ if(!first && DISTANCE(next_resultsegmentp->distance)==0)
+ next_bearing_int=(int)BearingAngle(nodes,resultsegmentp,result->node);
+ else
+ next_bearing_int=(int)BearingAngle(nodes,next_resultsegmentp,next_result->node);
+
next_bearing=translate_xml_heading[(4+(22+next_bearing_int)/45)%8];
}
}
@@ -601,7 +676,7 @@
}
else if(next_result) /* middle point */
{
- if(roundabout>1)
+ if(roundabout>1 && important!=IMP_WAYPOINT)
{
/* <tr class='n'><td class='l'>At:<td class='r'>Roundabout, take <span class='t'>the *Nth* exit</span> heading <span class='b'>*heading*</span> */
fprintf(htmlfile,"<tr class='n'><td class='l'>%s:<td class='r'>",translate_html_rbnode[0]);
@@ -799,6 +874,8 @@
if(important>IMP_JUNCT_CONT)
point_count++;
+
+ first=0;
}
while(point==next_point);
@@ -808,6 +885,11 @@
fprintf(gpxtrackfile,"</trkseg>\n");
point=next_point;
+
+ if(result)
+ prev_node=result->node;
+ else
+ prev_node=NO_NODE;
}
while(point<nresults);
diff -Nru routino-2.7/src/prunex.c routino-2.7.2/src/prunex.c
--- routino-2.7/src/prunex.c 2013-09-07 13:04:09.000000000 +0200
+++ routino-2.7.2/src/prunex.c 2014-05-12 20:12:59.000000000 +0200
@@ -3,7 +3,7 @@
Part of the Routino routing software.
******************/ /******************
- This file Copyright 2011-2013 Andrew M. Bishop
+ This file Copyright 2011-2014 Andrew M. Bishop
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@@ -593,7 +593,7 @@
WayX *wayx1,*wayx2,*wayx3;
NodeX *nodex2,*nodex3,*newnodex;
index_t newnode;
- int join12=1,join23=1;
+ int join12=1,join23=1,same13=1;
/* Check if pruning would collapse a loop */
@@ -694,10 +694,35 @@
PutBackNodeX(nodesx,newnodex);
- /* Modify segments */
+ /* Modify segments - update the distances */
- segmentx1->distance+=DISTANCE(segmentx2->distance)/2;
- segmentx3->distance+=DISTANCE(segmentx2->distance)-DISTANCE(segmentx2->distance)/2;
+ if(!IsOneway(segmentx1) && !IsOneway(segmentx3))
+ ;
+ else if(IsOneway(segmentx1) && IsOneway(segmentx3))
+ {
+ if(IsOnewayTo(segmentx1,node3) && !IsOnewayFrom(segmentx3,node3)) /* S1 is one-way but S3 doesn't continue */
+ same13=0;
+
+ if(IsOnewayFrom(segmentx1,node3) && !IsOnewayTo(segmentx3,node3)) /* S1 is one-way but S3 doesn't continue */
+ same13=0;
+ }
+ else
+ same13=0;
+
+ if(WaysCompare(&wayx1->way,&wayx3->way))
+ same13=0;
+
+ if(same13)
+ {
+ segmentx1->distance+=DISTANCE(segmentx2->distance)/2;
+ segmentx3->distance+=DISTANCE(segmentx2->distance)-DISTANCE(segmentx2->distance)/2;
+ }
+ else if(join12)
+ segmentx1->distance+=DISTANCE(segmentx2->distance);
+ else /* if(join23) */
+ segmentx3->distance+=DISTANCE(segmentx2->distance);
+
+ /* Modify segments - update the segments */
if(segmentx1->node1==node1)
{
diff -Nru routino-2.7/src/router.c routino-2.7.2/src/router.c
--- routino-2.7/src/router.c 2014-01-30 20:44:43.000000000 +0100
+++ routino-2.7.2/src/router.c 2014-06-25 19:43:28.000000000 +0200
@@ -61,7 +61,10 @@
/* Local functions */
static void print_usage(int detail,const char *argerr,const char *err);
-static Results *CalculateRoute(Nodes *nodes,Segments *segments,Ways *ways,Relations *relations,Profile *profile,index_t start_node,index_t prev_segment,index_t finish_node);
+
+static Results *CalculateRoute(Nodes *nodes,Segments *segments,Ways *ways,Relations *relations,Profile *profile,
+ index_t start_node,index_t prev_segment,index_t finish_node,
+ int start_waypoint,int finish_waypoint);
/*++++++++++++++++++++++++++++++++++++++
@@ -362,10 +365,6 @@
print_usage(0,argv[arg],NULL);
}
- for(waypoint=1;waypoint<=NWAYPOINTS;waypoint++)
- if(point_used[waypoint]==1 || point_used[waypoint]==2)
- print_usage(0,NULL,"All waypoints must have latitude and longitude.");
-
/* Print one of the profiles if requested */
if(help_profile)
@@ -393,6 +392,15 @@
return(0);
}
+ /* Check the waypoints are valid */
+
+ for(waypoint=1;waypoint<=NWAYPOINTS;waypoint++)
+ if(point_used[waypoint]==1 || point_used[waypoint]==2)
+ print_usage(0,NULL,"All waypoints must have latitude and longitude.");
+
+ if(first_waypoint>=last_waypoint)
+ print_usage(0,NULL,"At least two waypoints must be specified.");
+
/* Load in the translations */
if(option_html==0 && option_gpx_track==0 && option_gpx_route==0 && option_text==0 && option_text_all==0 && option_none==0)
@@ -528,9 +536,6 @@
if(start_node==NO_NODE)
continue;
- if(start_node==finish_node)
- continue;
-
if(first_node==NO_NODE)
first_node=start_node;
@@ -539,10 +544,7 @@
/* Calculate the route */
- results[nresults]=CalculateRoute(OSMNodes,OSMSegments,OSMWays,OSMRelations,profile,start_node,join_segment,finish_node);
-
- results[nresults]->start_waypoint=start_waypoint;
- results[nresults]->finish_waypoint=finish_waypoint;
+ results[nresults]=CalculateRoute(OSMNodes,OSMSegments,OSMWays,OSMRelations,profile,start_node,join_segment,finish_node,start_waypoint,finish_waypoint);
join_segment=results[nresults]->last_segment;
@@ -553,10 +555,7 @@
if(loop && finish_node!=NO_NODE)
{
- results[nresults]=CalculateRoute(OSMNodes,OSMSegments,OSMWays,OSMRelations,profile,finish_node,join_segment,first_node);
-
- results[nresults]->start_waypoint=last_waypoint;
- results[nresults]->finish_waypoint=first_waypoint;
+ results[nresults]=CalculateRoute(OSMNodes,OSMSegments,OSMWays,OSMRelations,profile,finish_node,join_segment,first_node,last_waypoint,first_waypoint);
nresults++;
}
@@ -574,9 +573,9 @@
/* Destroy the remaining results lists and data structures */
-#if 0
+#ifdef DEBUG_MEMORY_LEAK
- for(waypoint=0;waypoint<=nresults;waypoint++)
+ for(waypoint=0;waypoint<nresults;waypoint++)
FreeResultsList(results[waypoint]);
DestroyNodeList(OSMNodes);
@@ -610,34 +609,60 @@
index_t prev_segment The previous segment before the start node.
index_t finish_node The finish node.
+
+ int start_waypoint The starting waypoint.
+
+ int finish_waypoint The finish waypoint.
++++++++++++++++++++++++++++++++++++++*/
-static Results *CalculateRoute(Nodes *nodes,Segments *segments,Ways *ways,Relations *relations,Profile *profile,index_t start_node,index_t prev_segment,index_t finish_node)
+static Results *CalculateRoute(Nodes *nodes,Segments *segments,Ways *ways,Relations *relations,Profile *profile,
+ index_t start_node,index_t prev_segment,index_t finish_node,
+ int start_waypoint,int finish_waypoint)
{
- Results *begin,*end,*complete=NULL;
-
- /* Calculate the beginning of the route */
+ Results *complete=NULL;
- begin=FindStartRoutes(nodes,segments,ways,relations,profile,start_node,prev_segment,finish_node);
+ /* A special case if the first and last nodes are the same */
- if(begin)
+ if(start_node==finish_node)
{
- /* Check if the end of the route was reached */
+ index_t fake_segment;
+ Result *result1,*result2;
- if(begin->finish_node!=NO_NODE)
- complete=ExtendStartRoutes(nodes,segments,ways,relations,profile,begin,finish_node);
+ complete=NewResultsList(8);
+
+ if(prev_segment==NO_SEGMENT)
+ {
+ double lat,lon;
+ distance_t distmin,dist1,dist2;
+ index_t node1,node2;
+
+ GetLatLong(nodes,start_node,NULL,&lat,&lon);
+
+ prev_segment=FindClosestSegment(nodes,segments,ways,lat,lon,1,profile,&distmin,&node1,&node2,&dist1,&dist2);
+ }
+
+ fake_segment=CreateFakeNullSegment(segments,start_node,prev_segment,finish_waypoint);
+
+ result1=InsertResult(complete,start_node,prev_segment);
+ result2=InsertResult(complete,finish_node,fake_segment);
+
+ result1->next=result2;
+
+ complete->start_node=start_node;
+ complete->prev_segment=prev_segment;
+
+ complete->finish_node=finish_node;
+ complete->last_segment=prev_segment;
+
+ complete->last_segment=result2->segment;
}
else
{
- if(prev_segment!=NO_SEGMENT)
- {
- /* Try again but allow a U-turn at the start waypoint -
- this solves the problem of facing a dead-end that contains no super-nodes. */
+ Results *begin,*end;
- prev_segment=NO_SEGMENT;
+ /* Calculate the beginning of the route */
- begin=FindStartRoutes(nodes,segments,ways,relations,profile,start_node,prev_segment,finish_node);
- }
+ begin=FindStartRoutes(nodes,segments,ways,relations,profile,start_node,prev_segment,finish_node);
if(begin)
{
@@ -648,65 +673,88 @@
}
else
{
- fprintf(stderr,"Error: Cannot find initial section of route compatible with profile.\n");
- exit(EXIT_FAILURE);
- }
- }
+ if(prev_segment!=NO_SEGMENT)
+ {
+ /* Try again but allow a U-turn at the start waypoint -
+ this solves the problem of facing a dead-end that contains no super-nodes. */
- /* Calculate the rest of the route */
+ prev_segment=NO_SEGMENT;
- if(!complete)
- {
- Results *middle;
+ begin=FindStartRoutes(nodes,segments,ways,relations,profile,start_node,prev_segment,finish_node);
+ }
+
+ if(begin)
+ {
+ /* Check if the end of the route was reached */
- /* Calculate the end of the route */
+ if(begin->finish_node!=NO_NODE)
+ complete=ExtendStartRoutes(nodes,segments,ways,relations,profile,begin,finish_node);
+ }
+ else
+ {
+ fprintf(stderr,"Error: Cannot find initial section of route compatible with profile.\n");
+ exit(EXIT_FAILURE);
+ }
+ }
- end=FindFinishRoutes(nodes,segments,ways,relations,profile,finish_node);
+ /* Calculate the rest of the route */
- if(!end)
+ if(!complete)
{
- fprintf(stderr,"Error: Cannot find final section of route compatible with profile.\n");
- exit(EXIT_FAILURE);
- }
+ Results *middle;
- /* Calculate the middle of the route */
+ /* Calculate the end of the route */
- middle=FindMiddleRoute(nodes,segments,ways,relations,profile,begin,end);
+ end=FindFinishRoutes(nodes,segments,ways,relations,profile,finish_node);
- if(!middle && prev_segment!=NO_SEGMENT)
- {
- /* Try again but allow a U-turn at the start waypoint -
- this solves the problem of facing a dead-end that contains some super-nodes. */
+ if(!end)
+ {
+ fprintf(stderr,"Error: Cannot find final section of route compatible with profile.\n");
+ exit(EXIT_FAILURE);
+ }
- FreeResultsList(begin);
+ /* Calculate the middle of the route */
- begin=FindStartRoutes(nodes,segments,ways,relations,profile,start_node,NO_SEGMENT,finish_node);
+ middle=FindMiddleRoute(nodes,segments,ways,relations,profile,begin,end);
- if(begin)
- middle=FindMiddleRoute(nodes,segments,ways,relations,profile,begin,end);
- }
+ if(!middle && prev_segment!=NO_SEGMENT)
+ {
+ /* Try again but allow a U-turn at the start waypoint -
+ this solves the problem of facing a dead-end that contains some super-nodes. */
- FreeResultsList(end);
+ FreeResultsList(begin);
- if(!middle)
- {
- fprintf(stderr,"Error: Cannot find super-route compatible with profile.\n");
- exit(EXIT_FAILURE);
- }
+ begin=FindStartRoutes(nodes,segments,ways,relations,profile,start_node,NO_SEGMENT,finish_node);
- complete=CombineRoutes(nodes,segments,ways,relations,profile,begin,middle);
+ if(begin)
+ middle=FindMiddleRoute(nodes,segments,ways,relations,profile,begin,end);
+ }
- if(!complete)
- {
- fprintf(stderr,"Error: Cannot create combined route following super-route.\n");
- exit(EXIT_FAILURE);
- }
+ FreeResultsList(end);
- FreeResultsList(begin);
+ if(!middle)
+ {
+ fprintf(stderr,"Error: Cannot find super-route compatible with profile.\n");
+ exit(EXIT_FAILURE);
+ }
- FreeResultsList(middle);
+ complete=CombineRoutes(nodes,segments,ways,relations,profile,begin,middle);
+
+ if(!complete)
+ {
+ fprintf(stderr,"Error: Cannot create combined route following super-route.\n");
+ exit(EXIT_FAILURE);
+ }
+
+ FreeResultsList(begin);
+
+ FreeResultsList(middle);
+ }
}
+ complete->start_waypoint=start_waypoint;
+ complete->finish_waypoint=finish_waypoint;
+
#if DEBUG
Result *r=FindResult(complete,complete->start_node,complete->prev_segment);
diff -Nru routino-2.7/src/segments.c routino-2.7.2/src/segments.c
--- routino-2.7/src/segments.c 2014-01-27 20:03:43.000000000 +0100
+++ routino-2.7.2/src/segments.c 2014-05-09 20:24:08.000000000 +0200
@@ -159,7 +159,7 @@
if(profile->allow!=Transports_Bicycle)
goto endloop;
- if(!(wayp->props&Properties_CycleBothWays))
+ if(!(wayp->type&Highway_CycleBothWays))
goto endloop;
}
diff -Nru routino-2.7/src/segments.h routino-2.7.2/src/segments.h
--- routino-2.7/src/segments.h 2013-05-11 12:57:50.000000000 +0200
+++ routino-2.7.2/src/segments.h 2014-04-26 20:59:48.000000000 +0200
@@ -5,7 +5,7 @@
Part of the Routino routing software.
******************/ /******************
- This file Copyright 2008-2013 Andrew M. Bishop
+ This file Copyright 2008-2014 Andrew M. Bishop
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@@ -76,8 +76,8 @@
int fd; /*+ The file descriptor for the file. +*/
- Segment cached[3]; /*+ Three cached segments read from the file in slim mode. +*/
- index_t incache[3]; /*+ The indexes of the cached segments. +*/
+ Segment cached[4]; /*+ Three cached segments read from the file in slim mode. +*/
+ index_t incache[4]; /*+ The indexes of the cached segments. +*/
SegmentCache *cache; /*+ A RAM cache of segments read from the file. +*/
diff -Nru routino-2.7/src/superx.c routino-2.7.2/src/superx.c
--- routino-2.7/src/superx.c 2014-01-16 19:31:52.000000000 +0100
+++ routino-2.7.2/src/superx.c 2014-04-05 13:27:19.000000000 +0200
@@ -350,6 +350,7 @@
index_t i,j,lastj;
index_t merged=0,added=0;
SegmentsX *mergedsegmentsx;
+ SegmentX supersegmentx;
mergedsegmentsx=NewSegmentList();
@@ -384,8 +385,6 @@
while(j<supersegmentsx->number)
{
- SegmentX supersegmentx;
-
if(j!=lastj)
{
ReadFileBuffered(supersegmentsx->fd,&supersegmentx,sizeof(SegmentX));
@@ -429,15 +428,24 @@
printf_middle("Merging Segments: Segments=%"Pindex_t" Super=%"Pindex_t" Merged=%"Pindex_t" Added=%"Pindex_t,i+1,j,merged,added);
}
- while(j<supersegmentsx->number)
+ if(j<supersegmentsx->number)
{
- SegmentX supersegmentx;
+ if(j==lastj)
+ {
+ AppendSegmentList(mergedsegmentsx,supersegmentx.way,supersegmentx.node1,supersegmentx.node2,supersegmentx.distance|SEGMENT_SUPER);
+
+ j++;
+ }
- ReadFileBuffered(supersegmentsx->fd,&supersegmentx,sizeof(SegmentX));
+ while(j<supersegmentsx->number)
+ {
+ ReadFileBuffered(supersegmentsx->fd,&supersegmentx,sizeof(SegmentX));
- AppendSegmentList(mergedsegmentsx,supersegmentx.way,supersegmentx.node1,supersegmentx.node2,supersegmentx.distance|SEGMENT_SUPER);
- added++;
- j++;
+ AppendSegmentList(mergedsegmentsx,supersegmentx.way,supersegmentx.node1,supersegmentx.node2,supersegmentx.distance|SEGMENT_SUPER);
+
+ added++;
+ j++;
+ }
}
FinishSegmentList(mergedsegmentsx);
diff -Nru routino-2.7/src/test/a-b-c-d.sh routino-2.7.2/src/test/a-b-c-d.sh
--- routino-2.7/src/test/a-b-c-d.sh 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/a-b-c-d.sh 2014-05-10 10:03:42.000000000 +0200
@@ -0,0 +1,105 @@
+#!/bin/sh
+
+# Exit on error
+
+set -e
+
+# Test name
+
+name=`basename $0 .sh`
+
+# Slim or non-slim
+
+if [ "$1" = "slim" ]; then
+ slim="-slim"
+ dir="slim"
+else
+ slim=""
+ dir="fat"
+fi
+
+# Pruned or non-pruned
+
+if [ "$2" = "prune" ]; then
+ prune=""
+ pruned="-pruned"
+else
+ prune="--prune-none"
+ pruned=""
+fi
+
+# Create the output directory
+
+dir="$dir$pruned"
+
+[ -d $dir ] || mkdir $dir
+
+# Run the programs under a run-time debugger
+
+debugger=valgrind
+debugger=
+
+# Name related options
+
+osm=$name.osm
+log=$name$slim$pruned.log
+
+option_prefix="--prefix=$name"
+option_dir="--dir=$dir"
+
+# Generic program options
+
+option_planetsplitter="--loggable --tagging=../../xml/routino-tagging.xml --errorlog $prune"
+option_filedumper="--dump-osm"
+option_router="--loggable --transport=motorcar --profiles=../../xml/routino-profiles.xml --translations=copyright.xml"
+
+# Run planetsplitter
+
+echo "Running planetsplitter"
+
+echo ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm > $log
+$debugger ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm >> $log
+
+# Run filedumper
+
+echo "Running filedumper"
+
+echo ../filedumper$slim $option_dir $option_prefix $option_filedumper >> $log
+$debugger ../filedumper$slim $option_dir $option_prefix $option_filedumper > $dir/$osm
+
+# Waypoints
+
+waypoints=`perl waypoints.pl $osm list`
+
+# Run the router for each waypoint
+
+for waypoint in $waypoints; do
+
+ case $waypoint in
+ *a) waypoint=`echo $waypoint | sed -e 's%a$%%'` ;;
+ *) continue ;;
+ esac
+
+ echo "Running router : $waypoint"
+
+ waypoint_a=`perl waypoints.pl $osm ${waypoint}a 1`
+ waypoint_b=`perl waypoints.pl $osm ${waypoint}b 2`
+ waypoint_c=`perl waypoints.pl $osm ${waypoint}c 3`
+ waypoint_d=`perl waypoints.pl $osm ${waypoint}d 4`
+
+ [ -d $dir/$name-$waypoint ] || mkdir $dir/$name-$waypoint
+
+ echo ../router$slim $option_dir $option_prefix $option_osm $option_router $waypoint_a $waypoint_b $waypoint_c $waypoint_d >> $log
+ $debugger ../router$slim $option_dir $option_prefix $option_osm $option_router $waypoint_a $waypoint_b $waypoint_c $waypoint_d >> $log
+
+ mv shortest* $dir/$name-$waypoint
+
+ echo diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+
+ if ./is-fast-math; then
+ diff -U 0 expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt | 2>&1 egrep '^[-+] ' || true
+ else
+ diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+ fi
+
+done
diff -Nru routino-2.7/src/test/coincident-waypoint.osm routino-2.7.2/src/test/coincident-waypoint.osm
--- routino-2.7/src/test/coincident-waypoint.osm 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/coincident-waypoint.osm 2014-05-10 12:20:54.000000000 +0200
@@ -0,0 +1,101 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<osm version='0.6' generator='JOSM'>
+ <node id='4' visible='true' version='1' lat='-0.21661291636529073' lon='-0.520761488739697' />
+ <node id='6' visible='true' version='1' lat='-0.2163742693028532' lon='-0.5205061674081213' />
+ <node id='8' visible='true' version='1' lat='-0.2161202780565698' lon='-0.5207419121625206' />
+ <node id='10' visible='true' version='1' lat='-0.2163536787625498' lon='-0.5209987436557322' />
+ <node id='35' visible='true' version='1' lat='-0.21848333709591153' lon='-0.5218427454267438' />
+ <node id='37' visible='true' version='1' lat='-0.21855669147258072' lon='-0.5198307250334835' />
+ <node id='47' visible='true' version='1' lat='-0.21695597822189805' lon='-0.5206870145975311'>
+ <tag k='name' v='WP02a' />
+ </node>
+ <node id='48' visible='true' version='1' lat='-0.21775028231343874' lon='-0.5206857546917354'>
+ <tag k='name' v='WP01c' />
+ </node>
+ <node id='49' visible='true' version='1' lat='-0.21911476984589462' lon='-0.5207363917442211'>
+ <tag k='name' v='WP02d' />
+ </node>
+ <node id='59' visible='true' version='1' lat='-0.21852291461431964' lon='-0.5208066156936016' />
+ <node id='61' visible='true' version='1' lat='-0.21724703005097415' lon='-0.5218177543802404' />
+ <node id='62' visible='true' version='1' lat='-0.2172864966637643' lon='-0.5207796778404852' />
+ <node id='65' visible='true' version='1' lat='-0.2173314123555489' lon='-0.5198074556089362' />
+ <node id='89' visible='true' version='1' lat='-0.2190801322909824' lon='-0.5207370616265178'>
+ <tag k='name' v='WP01d' />
+ </node>
+ <node id='96' visible='true' version='1' lat='-0.21997515560812292' lon='-0.5208564106644373' />
+ <node id='97' visible='true' version='1' lat='-0.2197365085990034' lon='-0.5206010893328616' />
+ <node id='99' visible='true' version='1' lat='-0.21971591806329774' lon='-0.5210936655804727' />
+ <node id='105' visible='true' version='1' lat='-0.21851780554404734' lon='-0.5208002940891365'>
+ <tag k='name' v='WP02b' />
+ </node>
+ <node id='106' visible='true' version='1' lat='-0.21851780554404734' lon='-0.5208002940891365'>
+ <tag k='name' v='WP02c' />
+ </node>
+ <node id='113' visible='true' version='1' lat='-0.2170269645236478' lon='-0.5206865769695495'>
+ <tag k='name' v='WP03a' />
+ </node>
+ <node id='114' visible='true' version='1' lat='-0.2170269645236478' lon='-0.5206865769695495'>
+ <tag k='name' v='WP03b' />
+ </node>
+ <node id='118' visible='true' version='1' lat='-0.21914996849699317' lon='-0.5207357110104526'>
+ <tag k='name' v='WP03c' />
+ </node>
+ <node id='122' visible='true' version='1' lat='-0.2172821880270113' lon='-0.5207768336434417'>
+ <tag k='name' v='WP04a' />
+ </node>
+ <node id='123' visible='true' version='1' lat='-0.2172821880270113' lon='-0.5207768336434417'>
+ <tag k='name' v='WP04b' />
+ </node>
+ <node id='127' visible='true' version='1' lat='-0.21851780554404734' lon='-0.5208002940891365'>
+ <tag k='name' v='WP04c' />
+ </node>
+ <node id='163' visible='true' version='1' lat='-0.21914996849699317' lon='-0.5207357110104526'>
+ <tag k='name' v='WP03d' />
+ </node>
+ <node id='166' visible='true' version='1' lat='-0.21851780554404734' lon='-0.5208002940891365'>
+ <tag k='name' v='WP04d' />
+ </node>
+ <node id='204' visible='true' version='1' lat='-0.21775028231343874' lon='-0.5206857546917354'>
+ <tag k='name' v='WP01b' />
+ </node>
+ <node id='208' visible='true' version='1' lat='-0.21691021404678168' lon='-0.5206872967320134'>
+ <tag k='name' v='WP01a' />
+ </node>
+ <node id='438' visible='true' version='1' lat='-0.21948251740942368' lon='-0.520836834087261' />
+ <way id='13' visible='true' version='1'>
+ <nd ref='4' />
+ <nd ref='6' />
+ <nd ref='8' />
+ <nd ref='10' />
+ <nd ref='4' />
+ <tag k='highway' v='primary' />
+ </way>
+ <way id='36' visible='true' version='1'>
+ <nd ref='35' />
+ <nd ref='59' />
+ <nd ref='37' />
+ <tag k='highway' v='footway' />
+ </way>
+ <way id='63' visible='true' version='1'>
+ <nd ref='61' />
+ <nd ref='62' />
+ <nd ref='65' />
+ <tag k='highway' v='footway' />
+ </way>
+ <way id='95' visible='true' version='1'>
+ <nd ref='96' />
+ <nd ref='97' />
+ <nd ref='438' />
+ <nd ref='99' />
+ <nd ref='96' />
+ <tag k='highway' v='primary' />
+ </way>
+ <way id='240' visible='true' version='1'>
+ <nd ref='438' />
+ <nd ref='59' />
+ <nd ref='62' />
+ <nd ref='4' />
+ <tag k='highway' v='primary' />
+ <tag k='name' v='main 1' />
+ </way>
+</osm>
diff -Nru routino-2.7/src/test/coincident-waypoint.sh routino-2.7.2/src/test/coincident-waypoint.sh
--- routino-2.7/src/test/coincident-waypoint.sh 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/coincident-waypoint.sh 2014-05-10 10:03:42.000000000 +0200
@@ -0,0 +1,105 @@
+#!/bin/sh
+
+# Exit on error
+
+set -e
+
+# Test name
+
+name=`basename $0 .sh`
+
+# Slim or non-slim
+
+if [ "$1" = "slim" ]; then
+ slim="-slim"
+ dir="slim"
+else
+ slim=""
+ dir="fat"
+fi
+
+# Pruned or non-pruned
+
+if [ "$2" = "prune" ]; then
+ prune=""
+ pruned="-pruned"
+else
+ prune="--prune-none"
+ pruned=""
+fi
+
+# Create the output directory
+
+dir="$dir$pruned"
+
+[ -d $dir ] || mkdir $dir
+
+# Run the programs under a run-time debugger
+
+debugger=valgrind
+debugger=
+
+# Name related options
+
+osm=$name.osm
+log=$name$slim$pruned.log
+
+option_prefix="--prefix=$name"
+option_dir="--dir=$dir"
+
+# Generic program options
+
+option_planetsplitter="--loggable --tagging=../../xml/routino-tagging.xml --errorlog $prune"
+option_filedumper="--dump-osm"
+option_router="--loggable --transport=motorcar --profiles=../../xml/routino-profiles.xml --translations=copyright.xml"
+
+# Run planetsplitter
+
+echo "Running planetsplitter"
+
+echo ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm > $log
+$debugger ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm >> $log
+
+# Run filedumper
+
+echo "Running filedumper"
+
+echo ../filedumper$slim $option_dir $option_prefix $option_filedumper >> $log
+$debugger ../filedumper$slim $option_dir $option_prefix $option_filedumper > $dir/$osm
+
+# Waypoints
+
+waypoints=`perl waypoints.pl $osm list`
+
+# Run the router for each waypoint
+
+for waypoint in $waypoints; do
+
+ case $waypoint in
+ *a) waypoint=`echo $waypoint | sed -e 's%a$%%'` ;;
+ *) continue ;;
+ esac
+
+ echo "Running router : $waypoint"
+
+ waypoint_a=`perl waypoints.pl $osm ${waypoint}a 1`
+ waypoint_b=`perl waypoints.pl $osm ${waypoint}b 2`
+ waypoint_c=`perl waypoints.pl $osm ${waypoint}c 3`
+ waypoint_d=`perl waypoints.pl $osm ${waypoint}d 4`
+
+ [ -d $dir/$name-$waypoint ] || mkdir $dir/$name-$waypoint
+
+ echo ../router$slim $option_dir $option_prefix $option_osm $option_router $waypoint_a $waypoint_b $waypoint_c $waypoint_d >> $log
+ $debugger ../router$slim $option_dir $option_prefix $option_osm $option_router $waypoint_a $waypoint_b $waypoint_c $waypoint_d >> $log
+
+ mv shortest* $dir/$name-$waypoint
+
+ echo diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+
+ if ./is-fast-math; then
+ diff -U 0 expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt | 2>&1 egrep '^[-+] ' || true
+ else
+ diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+ fi
+
+done
diff -Nru routino-2.7/src/test/cycle-both-ways.osm routino-2.7.2/src/test/cycle-both-ways.osm
--- routino-2.7/src/test/cycle-both-ways.osm 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/cycle-both-ways.osm 2014-04-28 20:01:41.000000000 +0200
@@ -0,0 +1,107 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<osm version='0.6' generator='JOSM'>
+ <node id='3' visible='true' version='1' lat='-0.2217201380129468' lon='-0.5209275966384278' />
+ <node id='4' visible='true' version='1' lat='-0.21828070777942268' lon='-0.5207912709437164' />
+ <node id='6' visible='true' version='1' lat='-0.21804206074333024' lon='-0.5205359496121407' />
+ <node id='8' visible='true' version='1' lat='-0.21778806952505525' lon='-0.52077169436654' />
+ <node id='10' visible='true' version='1' lat='-0.21802147020530807' lon='-0.5210285258597515' />
+ <node id='21' visible='true' version='1' lat='-0.2221908395649969' lon='-0.5209415430673436' />
+ <node id='22' visible='true' version='1' lat='-0.22195451857008858' lon='-0.5207002437384278' />
+ <node id='24' visible='true' version='1' lat='-0.22193543526189635' lon='-0.5211703062894754' />
+ <node id='43' visible='true' version='1' lat='-0.21930218575050586' lon='-0.5189086431233668' />
+ <node id='45' visible='true' version='1' lat='-0.22081066523325596' lon='-0.5189389950470827' />
+ <node id='47' visible='true' version='1' lat='-0.21834718947014287' lon='-0.5188894277663167' />
+ <node id='50' visible='true' version='1' lat='-0.2218359709346708' lon='-0.5189596250943859' />
+ <node id='204' visible='true' version='1' lat='-0.22140697109084054' lon='-0.5208125513491403'>
+ <tag k='name' v='WPstart' />
+ </node>
+ <node id='208' visible='true' version='1' lat='-0.22131959074544644' lon='-0.5188644539458277'>
+ <tag k='name' v='WPfinish' />
+ </node>
+ <node id='242' visible='true' version='1' lat='-0.21969184942143533' lon='-0.520508838695913' />
+ <node id='244' visible='true' version='1' lat='-0.2200812203297903' lon='-0.5205220270076113' />
+ <node id='246' visible='true' version='1' lat='-0.21966460614165306' lon='-0.5211903128432791' />
+ <node id='248' visible='true' version='1' lat='-0.22006229057645915' lon='-0.5212037827409091' />
+ <node id='253' visible='true' version='1' lat='-0.21927153579637806' lon='-0.5195315927529504' />
+ <node id='255' visible='true' version='1' lat='-0.2207678018006232' lon='-0.5197417721359917' />
+ <node id='257' visible='true' version='1' lat='-0.22054261127446687' lon='-0.5220737624335469' />
+ <node id='259' visible='true' version='1' lat='-0.21914142570197062' lon='-0.5220187154522741' />
+ <node id='345' visible='true' version='1' lat='-0.22026866394788633' lon='-0.5208635679861234' />
+ <node id='438' visible='true' version='1' lat='-0.21948172568612254' lon='-0.5208369137424373' />
+ <way id='5' visible='true' version='1'>
+ <nd ref='3' />
+ <nd ref='345' />
+ <tag k='highway' v='primary' />
+ <tag k='name' v='main 2' />
+ </way>
+ <way id='13' visible='true' version='1'>
+ <nd ref='4' />
+ <nd ref='6' />
+ <nd ref='8' />
+ <nd ref='10' />
+ <nd ref='4' />
+ <tag k='highway' v='primary' />
+ </way>
+ <way id='20' visible='true' version='1'>
+ <nd ref='21' />
+ <nd ref='22' />
+ <nd ref='3' />
+ <nd ref='24' />
+ <nd ref='21' />
+ <tag k='highway' v='primary' />
+ </way>
+ <way id='48' visible='true' version='1'>
+ <nd ref='47' />
+ <nd ref='43' />
+ <nd ref='45' />
+ <nd ref='50' />
+ <tag k='highway' v='primary' />
+ <tag k='name' v='main 3' />
+ </way>
+ <way id='239' visible='true' version='1'>
+ <nd ref='345' />
+ <nd ref='248' />
+ <nd ref='246' />
+ <nd ref='438' />
+ <nd ref='242' />
+ <nd ref='244' />
+ <nd ref='345' />
+ <tag k='highway' v='primary' />
+ <tag k='junction' v='roundabout' />
+ <tag k='name' v='roundabout' />
+ <tag k='oneway' v='yes' />
+ </way>
+ <way id='240' visible='true' version='1'>
+ <nd ref='438' />
+ <nd ref='4' />
+ <tag k='highway' v='primary' />
+ <tag k='name' v='main 1' />
+ </way>
+ <way id='254' visible='true' version='1'>
+ <nd ref='43' />
+ <nd ref='253' />
+ <nd ref='242' />
+ <tag k='highway' v='residential' />
+ </way>
+ <way id='256' visible='true' version='1'>
+ <nd ref='45' />
+ <nd ref='255' />
+ <nd ref='244' />
+ <tag k='cycleway' v='opposite' />
+ <tag k='highway' v='residential' />
+ <tag k='oneway' v='yes' />
+ </way>
+ <way id='258' visible='true' version='1'>
+ <nd ref='257' />
+ <nd ref='248' />
+ <tag k='highway' v='residential' />
+ <tag k='oneway' v='yes' />
+ </way>
+ <way id='260' visible='true' version='1'>
+ <nd ref='259' />
+ <nd ref='246' />
+ <tag k='cycleway' v='opposite' />
+ <tag k='highway' v='residential' />
+ <tag k='oneway' v='yes' />
+ </way>
+</osm>
diff -Nru routino-2.7/src/test/cycle-both-ways.sh routino-2.7.2/src/test/cycle-both-ways.sh
--- routino-2.7/src/test/cycle-both-ways.sh 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/cycle-both-ways.sh 2014-04-28 20:00:11.000000000 +0200
@@ -0,0 +1,105 @@
+#!/bin/sh
+
+# Exit on error
+
+set -e
+
+# Test name
+
+name=`basename $0 .sh`
+
+# Slim or non-slim
+
+if [ "$1" = "slim" ]; then
+ slim="-slim"
+ dir="slim"
+else
+ slim=""
+ dir="fat"
+fi
+
+# Pruned or non-pruned
+
+if [ "$2" = "prune" ]; then
+ prune=""
+ pruned="-pruned"
+else
+ prune="--prune-none"
+ pruned=""
+fi
+
+# Create the output directory
+
+dir="$dir$pruned"
+
+[ -d $dir ] || mkdir $dir
+
+# Run the programs under a run-time debugger
+
+debugger=valgrind
+debugger=
+
+# Name related options
+
+osm=$name.osm
+log=$name$slim$pruned.log
+
+option_prefix="--prefix=$name"
+option_dir="--dir=$dir"
+
+# Generic program options
+
+option_planetsplitter="--loggable --tagging=../../xml/routino-tagging.xml --errorlog $prune"
+option_filedumper="--dump-osm"
+option_router="--loggable --profiles=../../xml/routino-profiles.xml --translations=copyright.xml"
+
+# Run planetsplitter
+
+echo "Running planetsplitter"
+
+echo ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm > $log
+$debugger ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm >> $log
+
+# Run filedumper
+
+echo "Running filedumper"
+
+echo ../filedumper$slim $option_dir $option_prefix $option_filedumper >> $log
+$debugger ../filedumper$slim $option_dir $option_prefix $option_filedumper > $dir/$osm
+
+# Waypoints
+
+waypoints=`perl waypoints.pl $osm list`
+
+waypoint_start=`perl waypoints.pl $osm WPstart 1`
+waypoint_finish=`perl waypoints.pl $osm WPfinish 2`
+
+# Run the router for each transport type
+
+transports="motorcar bicycle"
+
+for transport in $transports; do
+
+ case $transport in
+ motorcar) waypoint=WP01 ;;
+ *) waypoint=WP02 ;;
+ esac
+
+ echo "Running router : $waypoint"
+
+ [ -d $dir/$name-$waypoint ] || mkdir $dir/$name-$waypoint
+
+ echo ../router$slim $option_dir $option_prefix $option_osm $option_router --transport=$transport $waypoint_start $waypoint_finish >> $log
+ $debugger ../router$slim $option_dir $option_prefix $option_osm $option_router --transport=$transport $waypoint_start $waypoint_finish >> $log
+
+ mv shortest* $dir/$name-$waypoint
+
+ echo diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+
+ if ./is-fast-math; then
+ diff -U 0 expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt | 2>&1 egrep '^[-+] ' || true
+ else
+ diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+ fi
+
+done
diff -Nru routino-2.7/src/test/cycle-drive.sh routino-2.7.2/src/test/cycle-drive.sh
--- routino-2.7/src/test/cycle-drive.sh 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/cycle-drive.sh 2014-04-28 20:00:11.000000000 +0200
@@ -0,0 +1,105 @@
+#!/bin/sh
+
+# Exit on error
+
+set -e
+
+# Test name
+
+name=`basename $0 .sh`
+
+# Slim or non-slim
+
+if [ "$1" = "slim" ]; then
+ slim="-slim"
+ dir="slim"
+else
+ slim=""
+ dir="fat"
+fi
+
+# Pruned or non-pruned
+
+if [ "$2" = "prune" ]; then
+ prune=""
+ pruned="-pruned"
+else
+ prune="--prune-none"
+ pruned=""
+fi
+
+# Create the output directory
+
+dir="$dir$pruned"
+
+[ -d $dir ] || mkdir $dir
+
+# Run the programs under a run-time debugger
+
+debugger=valgrind
+debugger=
+
+# Name related options
+
+osm=$name.osm
+log=$name$slim$pruned.log
+
+option_prefix="--prefix=$name"
+option_dir="--dir=$dir"
+
+# Generic program options
+
+option_planetsplitter="--loggable --tagging=../../xml/routino-tagging.xml --errorlog $prune"
+option_filedumper="--dump-osm"
+option_router="--loggable --profiles=../../xml/routino-profiles.xml --translations=copyright.xml"
+
+# Run planetsplitter
+
+echo "Running planetsplitter"
+
+echo ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm > $log
+$debugger ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm >> $log
+
+# Run filedumper
+
+echo "Running filedumper"
+
+echo ../filedumper$slim $option_dir $option_prefix $option_filedumper >> $log
+$debugger ../filedumper$slim $option_dir $option_prefix $option_filedumper > $dir/$osm
+
+# Waypoints
+
+waypoints=`perl waypoints.pl $osm list`
+
+waypoint_start=`perl waypoints.pl $osm WPstart 1`
+waypoint_finish=`perl waypoints.pl $osm WPfinish 2`
+
+# Run the router for each transport type
+
+transports="motorcar bicycle"
+
+for transport in $transports; do
+
+ case $transport in
+ motorcar) waypoint=WP01 ;;
+ *) waypoint=WP02 ;;
+ esac
+
+ echo "Running router : $waypoint"
+
+ [ -d $dir/$name-$waypoint ] || mkdir $dir/$name-$waypoint
+
+ echo ../router$slim $option_dir $option_prefix $option_osm $option_router --transport=$transport $waypoint_start $waypoint_finish >> $log
+ $debugger ../router$slim $option_dir $option_prefix $option_osm $option_router --transport=$transport $waypoint_start $waypoint_finish >> $log
+
+ mv shortest* $dir/$name-$waypoint
+
+ echo diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+
+ if ./is-fast-math; then
+ diff -U 0 expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt | 2>&1 egrep '^[-+] ' || true
+ else
+ diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+ fi
+
+done
diff -Nru routino-2.7/src/test/expected/coincident-waypoint-WP01.txt routino-2.7.2/src/test/expected/coincident-waypoint-WP01.txt
--- routino-2.7/src/test/expected/coincident-waypoint-WP01.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/coincident-waypoint-WP01.txt 2014-05-10 12:10:00.000000000 +0200
@@ -0,0 +1,12 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.216904 -0.520770 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.217286 -0.520780 7 Junct- 0.042 0.03 0.04 0.0 96 181 main 1
+ -0.217741 -0.520789 -2 Waypt 0.050 0.03 0.09 0.1 96 181 main 1
+ -0.217741 -0.520789 -3 Waypt 0.000 0.00 0.09 0.1 96 270 main 1
+ -0.218523 -0.520806 6 Junct- 0.086 0.05 0.18 0.1 96 181 main 1
+ -0.219080 -0.520824 -4 Waypt 0.061 0.04 0.24 0.1 96 181 main 1
diff -Nru routino-2.7/src/test/expected/coincident-waypoint-WP02.txt routino-2.7.2/src/test/expected/coincident-waypoint-WP02.txt
--- routino-2.7/src/test/expected/coincident-waypoint-WP02.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/coincident-waypoint-WP02.txt 2014-05-10 12:10:00.000000000 +0200
@@ -0,0 +1,11 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.216959 -0.520771 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.217286 -0.520780 7 Junct- 0.036 0.02 0.04 0.0 96 181 main 1
+ -0.218523 -0.520806 6 Waypt 0.137 0.09 0.17 0.1 96 181 main 1
+ -0.218523 -0.520806 6 Waypt 0.000 0.00 0.17 0.1 96 270 main 1
+ -0.219117 -0.520825 -4 Waypt 0.065 0.04 0.24 0.1 96 181 main 1
diff -Nru routino-2.7/src/test/expected/coincident-waypoint-WP03.txt routino-2.7.2/src/test/expected/coincident-waypoint-WP03.txt
--- routino-2.7/src/test/expected/coincident-waypoint-WP03.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/coincident-waypoint-WP03.txt 2014-05-10 12:10:00.000000000 +0200
@@ -0,0 +1,12 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.217022 -0.520773 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.217022 -0.520773 -2 Waypt 0.000 0.00 0.00 0.0 96 270 main 1
+ -0.217286 -0.520780 7 Junct- 0.029 0.02 0.03 0.0 96 181 main 1
+ -0.218523 -0.520806 6 Junct- 0.137 0.09 0.17 0.1 96 181 main 1
+ -0.219153 -0.520826 -3 Waypt 0.069 0.04 0.23 0.1 96 181 main 1
+ -0.219153 -0.520826 -4 Waypt 0.000 0.00 0.23 0.1 96 270 main 1
diff -Nru routino-2.7/src/test/expected/coincident-waypoint-WP04.txt routino-2.7.2/src/test/expected/coincident-waypoint-WP04.txt
--- routino-2.7/src/test/expected/coincident-waypoint-WP04.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/coincident-waypoint-WP04.txt 2014-05-10 12:21:00.000000000 +0200
@@ -0,0 +1,10 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.217286 -0.520780 7 Waypt 0.000 0.00 0.00 0.0
+ -0.217286 -0.520780 7 Waypt 0.000 0.00 0.00 0.0 96 270 main 1
+ -0.218523 -0.520806 6 Waypt 0.137 0.09 0.14 0.1 96 181 main 1
+ -0.218523 -0.520806 6 Waypt 0.000 0.00 0.14 0.1 96 270 main 1
diff -Nru routino-2.7/src/test/expected/cycle-both-ways-WP01.txt routino-2.7.2/src/test/expected/cycle-both-ways-WP01.txt
--- routino-2.7/src/test/expected/cycle-both-ways-WP01.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/cycle-both-ways-WP01.txt 2014-04-28 20:05:18.000000000 +0200
@@ -0,0 +1,16 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.221402 -0.520913 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.220268 -0.520863 8* Junct 0.125 0.08 0.12 0.1 96 2 main 2
+ -0.220062 -0.521204 2 Inter 0.044 0.03 0.17 0.1 96 301 roundabout
+ -0.219665 -0.521190 3 Inter 0.044 0.03 0.21 0.1 96 1 roundabout
+ -0.219482 -0.520837 9* Junct- 0.044 0.03 0.26 0.2 96 62 roundabout
+ -0.219692 -0.520509 15* Junct 0.043 0.03 0.30 0.2 96 122 roundabout
+ -0.219271 -0.519532 17 Inter 0.118 0.15 0.42 0.3 48 66 residential road
+ -0.219302 -0.518908 20* Junct 0.069 0.09 0.49 0.4 48 92 residential road
+ -0.220811 -0.518939 19* Junct- 0.167 0.10 0.65 0.5 96 181 main 3
+ -0.221319 -0.518949 -2 Waypt 0.056 0.04 0.71 0.6 96 181 main 3
diff -Nru routino-2.7/src/test/expected/cycle-both-ways-WP02.txt routino-2.7.2/src/test/expected/cycle-both-ways-WP02.txt
--- routino-2.7/src/test/expected/cycle-both-ways-WP02.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/cycle-both-ways-WP02.txt 2014-04-28 20:05:18.000000000 +0200
@@ -0,0 +1,16 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.221402 -0.520913 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.220268 -0.520863 8* Junct 0.125 0.38 0.12 0.4 20 2 main 2
+ -0.220062 -0.521204 2 Inter 0.044 0.13 0.17 0.5 20 301 roundabout
+ -0.219665 -0.521190 3 Junct- 0.044 0.13 0.21 0.6 20 1 roundabout
+ -0.219482 -0.520837 9* Junct- 0.044 0.13 0.26 0.8 20 62 roundabout
+ -0.219692 -0.520509 15* Junct- 0.043 0.13 0.30 0.9 20 122 roundabout
+ -0.220082 -0.520522 14* Junct 0.043 0.13 0.34 1.0 20 181 roundabout
+ -0.220768 -0.519742 16 Inter 0.115 0.34 0.46 1.4 20 131 residential road
+ -0.220811 -0.518939 19* Junct 0.089 0.27 0.55 1.6 20 93 residential road
+ -0.221319 -0.518949 -2 Waypt 0.056 0.17 0.60 1.8 20 181 main 3
diff -Nru routino-2.7/src/test/expected/fake-node-with-loop-WP01.txt routino-2.7.2/src/test/expected/fake-node-with-loop-WP01.txt
--- routino-2.7/src/test/expected/fake-node-with-loop-WP01.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/fake-node-with-loop-WP01.txt 2014-04-27 16:59:00.000000000 +0200
@@ -0,0 +1,19 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.216904 -0.520770 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.217286 -0.520780 10 Junct- 0.042 0.03 0.04 0.0 96 181 main 1
+ -0.218086 -0.520797 -2 Waypt 0.088 0.06 0.13 0.1 96 181 main 1
+ -0.218523 -0.520806 9 Junct- 0.048 0.03 0.18 0.1 96 181 main 1
+ -0.219482 -0.520837 8* Junct 0.106 0.07 0.28 0.2 96 181 main 1
+ -0.219692 -0.520509 14 Junct- 0.043 0.03 0.33 0.2 96 122 roundabout
+ -0.220082 -0.520522 13 Junct- 0.043 0.03 0.37 0.2 96 181 roundabout
+ -0.220268 -0.520863 7 Inter 0.043 0.03 0.41 0.3 96 241 roundabout
+ -0.220062 -0.521204 4 Junct- 0.044 0.03 0.46 0.3 96 301 roundabout
+ -0.219665 -0.521190 5 Junct- 0.044 0.03 0.50 0.3 96 1 roundabout
+ -0.219482 -0.520837 8* Junct 0.044 0.03 0.55 0.3 96 62 roundabout
+ -0.218523 -0.520806 9 Junct- 0.106 0.07 0.65 0.4 96 1 main 1
+ -0.217741 -0.520789 -3 Waypt 0.086 0.05 0.74 0.5 96 1 main 1
diff -Nru routino-2.7/src/test/expected/fake-node-with-loop-WP02.txt routino-2.7.2/src/test/expected/fake-node-with-loop-WP02.txt
--- routino-2.7/src/test/expected/fake-node-with-loop-WP02.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/fake-node-with-loop-WP02.txt 2014-04-27 16:59:00.000000000 +0200
@@ -0,0 +1,18 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.216959 -0.520771 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.217286 -0.520780 10 Junct- 0.036 0.02 0.04 0.0 96 181 main 1
+ -0.218523 -0.520806 9 Junct- 0.137 0.09 0.17 0.1 96 181 main 1
+ -0.219171 -0.520827 -2 Waypt 0.071 0.04 0.24 0.1 96 181 main 1
+ -0.219482 -0.520837 8* Junct 0.034 0.02 0.28 0.2 96 181 main 1
+ -0.219692 -0.520509 14 Junct- 0.043 0.03 0.32 0.2 96 122 roundabout
+ -0.220082 -0.520522 13 Junct- 0.043 0.03 0.36 0.2 96 181 roundabout
+ -0.220268 -0.520863 7 Inter 0.043 0.03 0.41 0.2 96 241 roundabout
+ -0.220062 -0.521204 4 Junct- 0.044 0.03 0.45 0.3 96 301 roundabout
+ -0.219665 -0.521190 5 Junct- 0.044 0.03 0.49 0.3 96 1 roundabout
+ -0.219482 -0.520837 8* Junct 0.044 0.03 0.54 0.3 96 62 roundabout
+ -0.218842 -0.520816 -3 Waypt 0.070 0.04 0.61 0.4 96 1 main 1
diff -Nru routino-2.7/src/test/expected/loops-WP01.txt routino-2.7.2/src/test/expected/loops-WP01.txt
--- routino-2.7/src/test/expected/loops-WP01.txt 2012-12-20 17:29:38.000000000 +0100
+++ routino-2.7.2/src/test/expected/loops-WP01.txt 2014-05-09 16:03:58.000000000 +0200
@@ -16,8 +16,9 @@
-0.218776 -0.518838 18 Inter 0.055 0.07 0.62 0.7 48 143 loop 1
-0.219237 -0.519286 13* Junct 0.071 0.09 0.69 0.8 48 224 loop 1
-0.219910 -0.519112 17 Inter 0.077 0.10 0.77 0.9 48 165 loop 1
- -0.220695 -0.519489 11* Junct 0.052 0.07 0.82 0.9 48 209 loop 1
- -0.220739 -0.517801 19* Junct 0.187 0.23 1.00 1.2 48 91 high street
- -0.220784 -0.516035 30* Junct 0.196 0.24 1.20 1.4 48 91 high street
- -0.220311 -0.516015 31* Junct- 0.052 0.03 1.25 1.5 96 2 main 2
- -0.219596 -0.515984 -3 Waypt 0.079 0.05 1.33 1.5 96 2 main 2
+ -0.220280 -0.519256 15* Junct- 0.044 0.06 0.81 0.9 48 201 loop 1
+ -0.220695 -0.519489 11* Junct 0.052 0.07 0.86 1.0 48 209 loop 1
+ -0.220739 -0.517801 19* Junct 0.187 0.23 1.05 1.2 48 91 high street
+ -0.220784 -0.516035 30* Junct 0.196 0.24 1.25 1.5 48 91 high street
+ -0.220311 -0.516015 31* Junct- 0.052 0.03 1.30 1.5 96 2 main 2
+ -0.219596 -0.515984 -3 Waypt 0.079 0.05 1.38 1.6 96 2 main 2
diff -Nru routino-2.7/src/test/expected/loops-WP02.txt routino-2.7.2/src/test/expected/loops-WP02.txt
--- routino-2.7/src/test/expected/loops-WP02.txt 2012-12-20 17:29:38.000000000 +0100
+++ routino-2.7.2/src/test/expected/loops-WP02.txt 2014-05-09 16:03:58.000000000 +0200
@@ -15,9 +15,10 @@
-0.218380 -0.519134 16 Inter 0.056 0.07 0.56 0.6 48 41 loop 1
-0.218776 -0.518838 18 Inter 0.055 0.07 0.62 0.7 48 143 loop 1
-0.219237 -0.519286 13* Junct 0.071 0.09 0.69 0.8 48 224 loop 1
- -0.220280 -0.519256 15* Junct- 0.044 0.06 0.73 0.8 48 201 loop 1
- -0.220695 -0.519489 11* Junct 0.052 0.07 0.79 0.9 48 209 loop 1
- -0.220739 -0.517801 19* Junct 0.187 0.23 0.97 1.1 48 91 high street
- -0.220784 -0.516035 30* Junct 0.196 0.24 1.17 1.4 48 91 high street
- -0.220311 -0.516015 31* Junct- 0.052 0.03 1.22 1.4 96 2 main 2
- -0.219596 -0.515984 -3 Waypt 0.079 0.05 1.30 1.5 96 2 main 2
+ -0.219910 -0.519112 17 Inter 0.077 0.10 0.77 0.9 48 165 loop 1
+ -0.220280 -0.519256 15* Junct- 0.044 0.06 0.81 0.9 48 201 loop 1
+ -0.220695 -0.519489 11* Junct 0.052 0.07 0.86 1.0 48 209 loop 1
+ -0.220739 -0.517801 19* Junct 0.187 0.23 1.05 1.2 48 91 high street
+ -0.220784 -0.516035 30* Junct 0.196 0.24 1.25 1.5 48 91 high street
+ -0.220311 -0.516015 31* Junct- 0.052 0.03 1.30 1.5 96 2 main 2
+ -0.219596 -0.515984 -3 Waypt 0.079 0.05 1.38 1.6 96 2 main 2
diff -Nru routino-2.7/src/test/expected/loops-WP06.txt routino-2.7.2/src/test/expected/loops-WP06.txt
--- routino-2.7/src/test/expected/loops-WP06.txt 2012-12-20 17:29:38.000000000 +0100
+++ routino-2.7.2/src/test/expected/loops-WP06.txt 2014-05-09 16:03:58.000000000 +0200
@@ -17,7 +17,8 @@
-0.218805 -0.517131 25 Inter 0.056 0.07 0.81 0.9 48 139 loop 2
-0.219266 -0.517579 21* Junct 0.071 0.09 0.88 1.0 48 224 loop 2
-0.219946 -0.517397 24 Inter 0.078 0.10 0.95 1.1 48 165 loop 2
- -0.220739 -0.517801 19* Junct 0.054 0.07 1.01 1.2 48 207 loop 2
- -0.220784 -0.516035 30* Junct 0.196 0.24 1.21 1.4 48 91 high street
- -0.220311 -0.516015 31* Junct- 0.052 0.03 1.26 1.5 96 2 main 2
- -0.219596 -0.515984 -3 Waypt 0.079 0.05 1.34 1.5 96 2 main 2
+ -0.220301 -0.517576 22* Junct- 0.044 0.06 1.00 1.2 48 206 loop 2
+ -0.220739 -0.517801 19* Junct 0.054 0.07 1.05 1.2 48 207 loop 2
+ -0.220784 -0.516035 30* Junct 0.196 0.24 1.25 1.5 48 91 high street
+ -0.220311 -0.516015 31* Junct- 0.052 0.03 1.30 1.5 96 2 main 2
+ -0.219596 -0.515984 -3 Waypt 0.079 0.05 1.38 1.6 96 2 main 2
diff -Nru routino-2.7/src/test/expected/loops-WP07.txt routino-2.7.2/src/test/expected/loops-WP07.txt
--- routino-2.7/src/test/expected/loops-WP07.txt 2012-12-20 17:29:38.000000000 +0100
+++ routino-2.7.2/src/test/expected/loops-WP07.txt 2014-05-09 16:03:58.000000000 +0200
@@ -16,8 +16,9 @@
-0.218417 -0.517462 23* Junct- 0.053 0.07 0.75 0.9 48 38 loop 2
-0.218805 -0.517131 25 Inter 0.056 0.07 0.81 0.9 48 139 loop 2
-0.219266 -0.517579 21* Junct 0.071 0.09 0.88 1.0 48 224 loop 2
- -0.220301 -0.517576 22* Junct- 0.044 0.06 0.92 1.1 48 206 loop 2
- -0.220739 -0.517801 19* Junct 0.054 0.07 0.97 1.1 48 207 loop 2
- -0.220784 -0.516035 30* Junct 0.196 0.24 1.17 1.4 48 91 high street
- -0.220311 -0.516015 31* Junct- 0.052 0.03 1.22 1.4 96 2 main 2
- -0.219596 -0.515984 -3 Waypt 0.079 0.05 1.30 1.5 96 2 main 2
+ -0.219946 -0.517397 24 Inter 0.078 0.10 0.95 1.1 48 165 loop 2
+ -0.220301 -0.517576 22* Junct- 0.044 0.06 1.00 1.2 48 206 loop 2
+ -0.220739 -0.517801 19* Junct 0.054 0.07 1.05 1.2 48 207 loop 2
+ -0.220784 -0.516035 30* Junct 0.196 0.24 1.25 1.5 48 91 high street
+ -0.220311 -0.516015 31* Junct- 0.052 0.03 1.30 1.5 96 2 main 2
+ -0.219596 -0.515984 -3 Waypt 0.079 0.05 1.38 1.6 96 2 main 2
diff -Nru routino-2.7/src/test/expected/roundabout-waypoints-WP01.txt routino-2.7.2/src/test/expected/roundabout-waypoints-WP01.txt
--- routino-2.7/src/test/expected/roundabout-waypoints-WP01.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/roundabout-waypoints-WP01.txt 2014-04-05 13:22:45.000000000 +0200
@@ -0,0 +1,12 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.218454 -0.520798 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.219482 -0.520837 9* Waypt 0.113 0.07 0.11 0.1 96 182 main 1
+ -0.219692 -0.520509 15 Junct- 0.043 0.03 0.16 0.1 96 122 roundabout
+ -0.220082 -0.520522 14 Junct- 0.043 0.03 0.20 0.1 96 181 roundabout
+ -0.220268 -0.520863 8* Junct 0.043 0.03 0.24 0.1 96 241 roundabout
+ -0.221566 -0.520921 -3 Waypt 0.143 0.09 0.39 0.2 96 182 main 2
diff -Nru routino-2.7/src/test/expected/roundabout-waypoints-WP02.txt routino-2.7.2/src/test/expected/roundabout-waypoints-WP02.txt
--- routino-2.7/src/test/expected/roundabout-waypoints-WP02.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/roundabout-waypoints-WP02.txt 2014-04-05 13:22:45.000000000 +0200
@@ -0,0 +1,13 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.218454 -0.520798 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.219482 -0.520837 9* Junct 0.113 0.07 0.11 0.1 96 182 main 1
+ -0.219577 -0.520689 -2 Waypt 0.019 0.01 0.13 0.1 96 122 roundabout
+ -0.219692 -0.520509 15 Junct- 0.023 0.01 0.15 0.1 96 122 roundabout
+ -0.220082 -0.520522 14 Junct- 0.043 0.03 0.20 0.1 96 181 roundabout
+ -0.220268 -0.520863 8* Junct 0.043 0.03 0.24 0.1 96 241 roundabout
+ -0.221566 -0.520921 -3 Waypt 0.143 0.09 0.38 0.2 96 182 main 2
diff -Nru routino-2.7/src/test/expected/roundabout-waypoints-WP03.txt routino-2.7.2/src/test/expected/roundabout-waypoints-WP03.txt
--- routino-2.7/src/test/expected/roundabout-waypoints-WP03.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/roundabout-waypoints-WP03.txt 2014-04-05 13:22:45.000000000 +0200
@@ -0,0 +1,12 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.218454 -0.520798 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.219482 -0.520837 9* Junct 0.113 0.07 0.11 0.1 96 182 main 1
+ -0.219692 -0.520509 15 Waypt 0.043 0.03 0.16 0.1 96 122 roundabout
+ -0.220082 -0.520522 14 Junct- 0.043 0.03 0.20 0.1 96 181 roundabout
+ -0.220268 -0.520863 8* Junct 0.043 0.03 0.24 0.1 96 241 roundabout
+ -0.221566 -0.520921 -3 Waypt 0.143 0.09 0.39 0.2 96 182 main 2
diff -Nru routino-2.7/src/test/expected/roundabout-waypoints-WP04.txt routino-2.7.2/src/test/expected/roundabout-waypoints-WP04.txt
--- routino-2.7/src/test/expected/roundabout-waypoints-WP04.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/roundabout-waypoints-WP04.txt 2014-04-05 13:22:45.000000000 +0200
@@ -0,0 +1,13 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.218454 -0.520798 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.219482 -0.520837 9* Junct 0.113 0.07 0.11 0.1 96 182 main 1
+ -0.219692 -0.520509 15 Junct- 0.043 0.03 0.16 0.1 96 122 roundabout
+ -0.219878 -0.520515 -2 Waypt 0.020 0.01 0.18 0.1 96 181 roundabout
+ -0.220082 -0.520522 14 Junct- 0.022 0.01 0.20 0.1 96 181 roundabout
+ -0.220268 -0.520863 8* Junct 0.043 0.03 0.24 0.1 96 241 roundabout
+ -0.221566 -0.520921 -3 Waypt 0.143 0.09 0.38 0.2 96 182 main 2
diff -Nru routino-2.7/src/test/expected/roundabout-waypoints-WP05.txt routino-2.7.2/src/test/expected/roundabout-waypoints-WP05.txt
--- routino-2.7/src/test/expected/roundabout-waypoints-WP05.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/roundabout-waypoints-WP05.txt 2014-04-05 13:22:45.000000000 +0200
@@ -0,0 +1,12 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.218454 -0.520798 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.219482 -0.520837 9* Junct 0.113 0.07 0.11 0.1 96 182 main 1
+ -0.219692 -0.520509 15 Junct- 0.043 0.03 0.16 0.1 96 122 roundabout
+ -0.220082 -0.520522 14 Waypt 0.043 0.03 0.20 0.1 96 181 roundabout
+ -0.220268 -0.520863 8* Junct 0.043 0.03 0.24 0.1 96 241 roundabout
+ -0.221566 -0.520921 -3 Waypt 0.143 0.09 0.39 0.2 96 182 main 2
diff -Nru routino-2.7/src/test/expected/roundabout-waypoints-WP06.txt routino-2.7.2/src/test/expected/roundabout-waypoints-WP06.txt
--- routino-2.7/src/test/expected/roundabout-waypoints-WP06.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/roundabout-waypoints-WP06.txt 2014-04-05 13:22:45.000000000 +0200
@@ -0,0 +1,13 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.218454 -0.520798 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.219482 -0.520837 9* Junct 0.113 0.07 0.11 0.1 96 182 main 1
+ -0.219692 -0.520509 15 Junct- 0.043 0.03 0.16 0.1 96 122 roundabout
+ -0.220082 -0.520522 14 Junct- 0.043 0.03 0.20 0.1 96 181 roundabout
+ -0.220171 -0.520685 -2 Waypt 0.020 0.01 0.22 0.1 96 241 roundabout
+ -0.220268 -0.520863 8* Junct 0.022 0.01 0.24 0.1 96 241 roundabout
+ -0.221566 -0.520921 -3 Waypt 0.143 0.09 0.38 0.2 96 182 main 2
diff -Nru routino-2.7/src/test/expected/roundabout-waypoints-WP07.txt routino-2.7.2/src/test/expected/roundabout-waypoints-WP07.txt
--- routino-2.7/src/test/expected/roundabout-waypoints-WP07.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/expected/roundabout-waypoints-WP07.txt 2014-04-05 13:22:45.000000000 +0200
@@ -0,0 +1,12 @@
+# Creator : Routino - http://www.routino.org/
+# Source : Routino test cases - (c) Andrew M. Bishop
+# License : GNU Affero General Public License v3 or later
+#
+#Latitude Longitude Node Type Segment Segment Total Total Speed Bearing Highway
+# Dist Durat'n Dist Durat'n
+ -0.218454 -0.520798 -1 Waypt 0.000 0.00 0.00 0.0
+ -0.219482 -0.520837 9* Junct 0.113 0.07 0.11 0.1 96 182 main 1
+ -0.219692 -0.520509 15 Junct- 0.043 0.03 0.16 0.1 96 122 roundabout
+ -0.220082 -0.520522 14 Junct- 0.043 0.03 0.20 0.1 96 181 roundabout
+ -0.220268 -0.520863 8* Waypt 0.043 0.03 0.24 0.1 96 241 roundabout
+ -0.221566 -0.520921 -3 Waypt 0.143 0.09 0.39 0.2 96 182 main 2
diff -Nru routino-2.7/src/test/fake-node-with-loop.osm routino-2.7.2/src/test/fake-node-with-loop.osm
--- routino-2.7/src/test/fake-node-with-loop.osm 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/fake-node-with-loop.osm 2014-04-28 19:17:25.000000000 +0200
@@ -0,0 +1,102 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<osm version='0.6' generator='JOSM'>
+ <node id='4' visible='true' version='1' lat='-0.21661291636529073' lon='-0.520761488739697' />
+ <node id='6' visible='true' version='1' lat='-0.2163742693028532' lon='-0.5205061674081213' />
+ <node id='8' visible='true' version='1' lat='-0.2161202780565698' lon='-0.5207419121625206' />
+ <node id='10' visible='true' version='1' lat='-0.2163536787625498' lon='-0.5209987436557322' />
+ <node id='35' visible='true' version='1' lat='-0.21848333709591153' lon='-0.5218427454267438' />
+ <node id='37' visible='true' version='1' lat='-0.21855669147258072' lon='-0.5198307250334835' />
+ <node id='47' visible='true' version='1' lat='-0.21695596294699857' lon='-0.5206845368680583'>
+ <tag k='name' v='WP02a' />
+ </node>
+ <node id='48' visible='true' version='1' lat='-0.21775028231343874' lon='-0.5206857546917354'>
+ <tag k='name' v='WP01c' />
+ </node>
+ <node id='49' visible='true' version='1' lat='-0.2188482915170263' lon='-0.5207295158812542'>
+ <tag k='name' v='WP02c' />
+ </node>
+ <node id='59' visible='true' version='1' lat='-0.21852291461431964' lon='-0.5208066156936016' />
+ <node id='61' visible='true' version='1' lat='-0.21724703005097415' lon='-0.5218177543802404' />
+ <node id='62' visible='true' version='1' lat='-0.2172864966637643' lon='-0.5207796778404852' />
+ <node id='65' visible='true' version='1' lat='-0.2173314123555489' lon='-0.5198074556089362' />
+ <node id='89' visible='true' version='1' lat='-0.21917467817079206' lon='-0.5207413591979394'>
+ <tag k='name' v='WP02b' />
+ </node>
+ <node id='204' visible='true' version='1' lat='-0.21809098400469543' lon='-0.5207047848008673'>
+ <tag k='name' v='WP01b' />
+ </node>
+ <node id='208' visible='true' version='1' lat='-0.21691021404678168' lon='-0.5206872967320134'>
+ <tag k='name' v='WP01a' />
+ </node>
+ <node id='242' visible='true' version='1' lat='-0.21969184942143533' lon='-0.520508838695913' />
+ <node id='244' visible='true' version='1' lat='-0.2200812203297903' lon='-0.5205220270076113' />
+ <node id='246' visible='true' version='1' lat='-0.21966460614165306' lon='-0.5211903128432791' />
+ <node id='248' visible='true' version='1' lat='-0.22006229057645915' lon='-0.5212037827409091' />
+ <node id='253' visible='true' version='1' lat='-0.21927153579637806' lon='-0.5195315927529504' />
+ <node id='255' visible='true' version='1' lat='-0.2207678018006232' lon='-0.5197417721359917' />
+ <node id='257' visible='true' version='1' lat='-0.22054261127446687' lon='-0.5220737624335469' />
+ <node id='259' visible='true' version='1' lat='-0.21914142570197062' lon='-0.5220187154522741' />
+ <node id='345' visible='true' version='1' lat='-0.22026866394788633' lon='-0.5208635679861234' />
+ <node id='438' visible='true' version='1' lat='-0.21948172568612254' lon='-0.5208369137424373' />
+ <way id='13' visible='true' version='1'>
+ <nd ref='4' />
+ <nd ref='6' />
+ <nd ref='8' />
+ <nd ref='10' />
+ <nd ref='4' />
+ <tag k='highway' v='primary' />
+ </way>
+ <way id='36' visible='true' version='1'>
+ <nd ref='35' />
+ <nd ref='59' />
+ <nd ref='37' />
+ <tag k='highway' v='footway' />
+ </way>
+ <way id='63' visible='true' version='1'>
+ <nd ref='61' />
+ <nd ref='62' />
+ <nd ref='65' />
+ <tag k='highway' v='footway' />
+ </way>
+ <way id='239' visible='true' version='1'>
+ <nd ref='345' />
+ <nd ref='248' />
+ <nd ref='246' />
+ <nd ref='438' />
+ <nd ref='242' />
+ <nd ref='244' />
+ <nd ref='345' />
+ <tag k='highway' v='primary' />
+ <tag k='junction' v='roundabout' />
+ <tag k='name' v='roundabout' />
+ <tag k='oneway' v='yes' />
+ </way>
+ <way id='240' visible='true' version='1'>
+ <nd ref='438' />
+ <nd ref='59' />
+ <nd ref='62' />
+ <nd ref='4' />
+ <tag k='highway' v='primary' />
+ <tag k='name' v='main 1' />
+ </way>
+ <way id='254' visible='true' version='1'>
+ <nd ref='253' />
+ <nd ref='242' />
+ <tag k='highway' v='residential' />
+ </way>
+ <way id='256' visible='true' version='1'>
+ <nd ref='255' />
+ <nd ref='244' />
+ <tag k='highway' v='residential' />
+ </way>
+ <way id='258' visible='true' version='1'>
+ <nd ref='257' />
+ <nd ref='248' />
+ <tag k='highway' v='residential' />
+ </way>
+ <way id='260' visible='true' version='1'>
+ <nd ref='259' />
+ <nd ref='246' />
+ <tag k='highway' v='residential' />
+ </way>
+</osm>
diff -Nru routino-2.7/src/test/fake-node-with-loop.sh routino-2.7.2/src/test/fake-node-with-loop.sh
--- routino-2.7/src/test/fake-node-with-loop.sh 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/fake-node-with-loop.sh 2013-06-06 20:15:58.000000000 +0200
@@ -0,0 +1,104 @@
+#!/bin/sh
+
+# Exit on error
+
+set -e
+
+# Test name
+
+name=`basename $0 .sh`
+
+# Slim or non-slim
+
+if [ "$1" = "slim" ]; then
+ slim="-slim"
+ dir="slim"
+else
+ slim=""
+ dir="fat"
+fi
+
+# Pruned or non-pruned
+
+if [ "$2" = "prune" ]; then
+ prune=""
+ pruned="-pruned"
+else
+ prune="--prune-none"
+ pruned=""
+fi
+
+# Create the output directory
+
+dir="$dir$pruned"
+
+[ -d $dir ] || mkdir $dir
+
+# Run the programs under a run-time debugger
+
+debugger=valgrind
+debugger=
+
+# Name related options
+
+osm=$name.osm
+log=$name$slim$pruned.log
+
+option_prefix="--prefix=$name"
+option_dir="--dir=$dir"
+
+# Generic program options
+
+option_planetsplitter="--loggable --tagging=../../xml/routino-tagging.xml --errorlog $prune"
+option_filedumper="--dump-osm"
+option_router="--loggable --transport=motorcar --profiles=../../xml/routino-profiles.xml --translations=copyright.xml"
+
+# Run planetsplitter
+
+echo "Running planetsplitter"
+
+echo ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm > $log
+$debugger ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm >> $log
+
+# Run filedumper
+
+echo "Running filedumper"
+
+echo ../filedumper$slim $option_dir $option_prefix $option_filedumper >> $log
+$debugger ../filedumper$slim $option_dir $option_prefix $option_filedumper > $dir/$osm
+
+# Waypoints
+
+waypoints=`perl waypoints.pl $osm list`
+
+# Run the router for each waypoint
+
+for waypoint in $waypoints; do
+
+ case $waypoint in
+ *a) waypoint=`echo $waypoint | sed -e 's%a$%%'` ;;
+ *) continue ;;
+ esac
+
+ echo "Running router : $waypoint"
+
+ waypoint_a=`perl waypoints.pl $osm ${waypoint}a 1`
+ waypoint_b=`perl waypoints.pl $osm ${waypoint}b 2`
+ waypoint_c=`perl waypoints.pl $osm ${waypoint}c 3`
+
+ [ -d $dir/$name-$waypoint ] || mkdir $dir/$name-$waypoint
+
+ echo ../router$slim $option_dir $option_prefix $option_osm $option_router $waypoint_a $waypoint_b $waypoint_c >> $log
+ $debugger ../router$slim $option_dir $option_prefix $option_osm $option_router $waypoint_a $waypoint_b $waypoint_c >> $log
+
+ mv shortest* $dir/$name-$waypoint
+
+ echo diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+
+ if ./is-fast-math; then
+ diff -U 0 expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt | 2>&1 egrep '^[-+] ' || true
+ else
+ diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+ fi
+
+done
diff -Nru routino-2.7/src/test/Makefile routino-2.7.2/src/test/Makefile
--- routino-2.7/src/test/Makefile 2014-03-22 12:39:39.000000000 +0100
+++ routino-2.7.2/src/test/Makefile 2014-04-04 18:42:54.000000000 +0200
@@ -85,7 +85,7 @@
########
-$(ROUTINO_EXE) :
+$(ROUTINO_EXE) ::
cd .. && $(MAKE) $(notdir $@)
is-fast-math : is-fast-math.o
diff -Nru routino-2.7/src/test/prune-straight.osm routino-2.7.2/src/test/prune-straight.osm
--- routino-2.7/src/test/prune-straight.osm 2013-03-02 19:57:31.000000000 +0100
+++ routino-2.7.2/src/test/prune-straight.osm 2014-04-28 19:17:18.000000000 +0200
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<osm version='0.6' upload='true' generator='JOSM'>
+<osm version='0.6' generator='JOSM'>
<node id='122' visible='true' version='1' lat='-0.2202806356012029' lon='-0.5205283172729586' />
<node id='183' visible='true' version='1' lat='-0.22026900997513588' lon='-0.5197565898111836' />
<node id='203' visible='true' version='1' lat='-0.22025358651939986' lon='-0.5189993952842524' />
diff -Nru routino-2.7/src/test/roundabout-waypoints.osm routino-2.7.2/src/test/roundabout-waypoints.osm
--- routino-2.7/src/test/roundabout-waypoints.osm 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/roundabout-waypoints.osm 2014-04-28 19:17:13.000000000 +0200
@@ -0,0 +1,105 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<osm version='0.6' generator='JOSM'>
+ <node id='3' visible='true' version='1' lat='-0.2217201380129468' lon='-0.5209275966384278' />
+ <node id='4' visible='true' version='1' lat='-0.21828070777942268' lon='-0.5207912709437164' />
+ <node id='6' visible='true' version='1' lat='-0.21804206074333024' lon='-0.5205359496121407' />
+ <node id='8' visible='true' version='1' lat='-0.21778806952505525' lon='-0.52077169436654' />
+ <node id='10' visible='true' version='1' lat='-0.21802147020530807' lon='-0.5210285258597515' />
+ <node id='21' visible='true' version='1' lat='-0.2221908395649969' lon='-0.5209415430673436' />
+ <node id='22' visible='true' version='1' lat='-0.22195451857008858' lon='-0.5207002437384278' />
+ <node id='24' visible='true' version='1' lat='-0.22193543526189635' lon='-0.5211703062894754' />
+ <node id='204' visible='true' version='1' lat='-0.21845168535119228' lon='-0.5209389065396647'>
+ <tag k='name' v='WPstart' />
+ </node>
+ <node id='208' visible='true' version='1' lat='-0.22155124019804942' lon='-0.5210546105815851'>
+ <tag k='name' v='WPfinish' />
+ </node>
+ <node id='242' visible='true' version='1' lat='-0.21969184942143533' lon='-0.520508838695913'>
+ <tag k='name' v='WP03' />
+ </node>
+ <node id='244' visible='true' version='1' lat='-0.2200812203297903' lon='-0.5205220270076113'>
+ <tag k='name' v='WP05' />
+ </node>
+ <node id='246' visible='true' version='1' lat='-0.21966460614165306' lon='-0.5211903128432791' />
+ <node id='248' visible='true' version='1' lat='-0.22006229057645915' lon='-0.5212037827409091' />
+ <node id='253' visible='true' version='1' lat='-0.21927153579637806' lon='-0.5195315927529504' />
+ <node id='255' visible='true' version='1' lat='-0.2207678018006232' lon='-0.5197417721359917' />
+ <node id='257' visible='true' version='1' lat='-0.22054261127446687' lon='-0.5220737624335469' />
+ <node id='259' visible='true' version='1' lat='-0.21914142570197062' lon='-0.5220187154522741' />
+ <node id='269' visible='true' version='1' lat='-0.21987704814393666' lon='-0.5204373658084384'>
+ <tag k='name' v='WP04' />
+ </node>
+ <node id='270' visible='true' version='1' lat='-0.2202373530002358' lon='-0.5206475451914799'>
+ <tag k='name' v='WP06' />
+ </node>
+ <node id='345' visible='true' version='1' lat='-0.22026866394788633' lon='-0.5208635679861234'>
+ <tag k='name' v='WP07' />
+ </node>
+ <node id='381' visible='true' version='1' lat='-0.21952244127387813' lon='-0.5206514738187112'>
+ <tag k='name' v='WP02' />
+ </node>
+ <node id='438' visible='true' version='1' lat='-0.21948172568612254' lon='-0.5208369137424373'>
+ <tag k='name' v='WP01' />
+ </node>
+ <way id='5' visible='true' version='1'>
+ <nd ref='3' />
+ <nd ref='345' />
+ <tag k='highway' v='primary' />
+ <tag k='name' v='main 2' />
+ </way>
+ <way id='13' visible='true' version='1'>
+ <nd ref='4' />
+ <nd ref='6' />
+ <nd ref='8' />
+ <nd ref='10' />
+ <nd ref='4' />
+ <tag k='highway' v='primary' />
+ </way>
+ <way id='20' visible='true' version='1'>
+ <nd ref='21' />
+ <nd ref='22' />
+ <nd ref='3' />
+ <nd ref='24' />
+ <nd ref='21' />
+ <tag k='highway' v='primary' />
+ </way>
+ <way id='239' visible='true' version='1'>
+ <nd ref='345' />
+ <nd ref='248' />
+ <nd ref='246' />
+ <nd ref='438' />
+ <nd ref='242' />
+ <nd ref='244' />
+ <nd ref='345' />
+ <tag k='highway' v='primary' />
+ <tag k='junction' v='roundabout' />
+ <tag k='name' v='roundabout' />
+ <tag k='oneway' v='yes' />
+ </way>
+ <way id='240' visible='true' version='1'>
+ <nd ref='438' />
+ <nd ref='4' />
+ <tag k='highway' v='primary' />
+ <tag k='name' v='main 1' />
+ </way>
+ <way id='254' visible='true' version='1'>
+ <nd ref='253' />
+ <nd ref='242' />
+ <tag k='highway' v='residential' />
+ </way>
+ <way id='256' visible='true' version='1'>
+ <nd ref='255' />
+ <nd ref='244' />
+ <tag k='highway' v='residential' />
+ </way>
+ <way id='258' visible='true' version='1'>
+ <nd ref='257' />
+ <nd ref='248' />
+ <tag k='highway' v='residential' />
+ </way>
+ <way id='260' visible='true' version='1'>
+ <nd ref='259' />
+ <nd ref='246' />
+ <tag k='highway' v='residential' />
+ </way>
+</osm>
diff -Nru routino-2.7/src/test/roundabout-waypoints.sh routino-2.7.2/src/test/roundabout-waypoints.sh
--- routino-2.7/src/test/roundabout-waypoints.sh 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/src/test/roundabout-waypoints.sh 2013-06-06 20:16:41.000000000 +0200
@@ -0,0 +1,103 @@
+#!/bin/sh
+
+# Exit on error
+
+set -e
+
+# Test name
+
+name=`basename $0 .sh`
+
+# Slim or non-slim
+
+if [ "$1" = "slim" ]; then
+ slim="-slim"
+ dir="slim"
+else
+ slim=""
+ dir="fat"
+fi
+
+# Pruned or non-pruned
+
+if [ "$2" = "prune" ]; then
+ prune=""
+ pruned="-pruned"
+else
+ prune="--prune-none"
+ pruned=""
+fi
+
+# Create the output directory
+
+dir="$dir$pruned"
+
+[ -d $dir ] || mkdir $dir
+
+# Run the programs under a run-time debugger
+
+debugger=valgrind
+debugger=
+
+# Name related options
+
+osm=$name.osm
+log=$name$slim$pruned.log
+
+option_prefix="--prefix=$name"
+option_dir="--dir=$dir"
+
+# Generic program options
+
+option_planetsplitter="--loggable --tagging=../../xml/routino-tagging.xml --errorlog $prune"
+option_filedumper="--dump-osm"
+option_router="--loggable --transport=motorcar --profiles=../../xml/routino-profiles.xml --translations=copyright.xml"
+
+# Run planetsplitter
+
+echo "Running planetsplitter"
+
+echo ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm > $log
+$debugger ../planetsplitter$slim $option_dir $option_prefix $option_planetsplitter $osm >> $log
+
+# Run filedumper
+
+echo "Running filedumper"
+
+echo ../filedumper$slim $option_dir $option_prefix $option_filedumper >> $log
+$debugger ../filedumper$slim $option_dir $option_prefix $option_filedumper > $dir/$osm
+
+# Waypoints
+
+waypoints=`perl waypoints.pl $osm list`
+
+waypoint_start=`perl waypoints.pl $osm WPstart 1`
+waypoint_finish=`perl waypoints.pl $osm WPfinish 3`
+
+# Run the router for each waypoint
+
+for waypoint in $waypoints; do
+
+ [ ! $waypoint = "WPstart" ] || continue
+ [ ! $waypoint = "WPfinish" ] || continue
+
+ echo "Running router : $waypoint"
+
+ waypoint_test=`perl waypoints.pl $osm $waypoint 2`
+
+ [ -d $dir/$name-$waypoint ] || mkdir $dir/$name-$waypoint
+
+ echo ../router$slim $option_dir $option_prefix $option_osm $option_router $waypoint_start $waypoint_test $waypoint_finish >> $log
+ $debugger ../router$slim $option_dir $option_prefix $option_osm $option_router $waypoint_start $waypoint_test $waypoint_finish >> $log
+
+ mv shortest* $dir/$name-$waypoint
+
+ echo diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+
+ if ./is-fast-math; then
+ diff -U 0 expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt | 2>&1 egrep '^[-+] ' || true
+ else
+ diff -u expected/$name-$waypoint.txt $dir/$name-$waypoint/shortest-all.txt >> $log
+ fi
+
+done
diff -Nru routino-2.7/src/types.c routino-2.7.2/src/types.c
--- routino-2.7/src/types.c 2014-01-27 19:55:56.000000000 +0100
+++ routino-2.7.2/src/types.c 2014-04-28 20:16:26.000000000 +0200
@@ -163,11 +163,6 @@
return(Property_Bridge);
break;
- case 'c':
- if(!strcmp(property,"cyclebothways"))
- return(Property_CycleBothWays);
- break;
-
case 'f':
if(!strcmp(property,"footroute"))
return(Property_FootRoute);
@@ -241,6 +236,8 @@
case Highway_Count:
;
+ case Highway_CycleBothWays:
+ ;
case Highway_OneWay:
;
case Highway_Roundabout:
@@ -330,9 +327,6 @@
case Property_BicycleRoute:
return("bicycleroute");
- case Property_CycleBothWays:
- return("cyclebothways");
-
case Property_Count:
;
}
diff -Nru routino-2.7/src/types.h routino-2.7.2/src/types.h
--- routino-2.7/src/types.h 2014-01-29 20:58:25.000000000 +0100
+++ routino-2.7.2/src/types.h 2014-04-28 20:20:31.000000000 +0200
@@ -239,13 +239,14 @@
Highway_Count = 14, /* One more than the number of highway types. */
- Highway_OneWay = 32,
- Highway_Roundabout = 64,
- Highway_Area = 128
+ Highway_CycleBothWays = 16,
+ Highway_OneWay = 32,
+ Highway_Roundabout = 64,
+ Highway_Area = 128
}
Highway;
-#define HIGHWAY(xx) ((xx)&0x1f)
+#define HIGHWAY(xx) ((xx)&0x0f)
/*+ A bitmask of multiple highway types. +*/
typedef uint16_t highways_t;
@@ -338,9 +339,8 @@
Property_Tunnel = 4,
Property_FootRoute = 5,
Property_BicycleRoute = 6,
- Property_CycleBothWays= 7,
- Property_Count = 8 /* One more than the number of property types. */
+ Property_Count = 7 /* One more than the number of property types. */
}
Property;
@@ -361,7 +361,6 @@
Properties_Tunnel = PROPERTIES(Property_Tunnel ),
Properties_FootRoute = PROPERTIES(Property_FootRoute ),
Properties_BicycleRoute = PROPERTIES(Property_BicycleRoute ),
- Properties_CycleBothWays= PROPERTIES(Property_CycleBothWays),
Properties_ALL = PROPERTIES(Property_Count )-1
}
diff -Nru routino-2.7/src/visualiser.c routino-2.7.2/src/visualiser.c
--- routino-2.7/src/visualiser.c 2014-01-15 20:17:08.000000000 +0100
+++ routino-2.7.2/src/visualiser.c 2014-05-19 19:56:17.000000000 +0200
@@ -65,6 +65,7 @@
static Highway highways=Highway_None;
static Transports transports=Transports_None;
static Properties properties=Properties_None;
+static highway_t waytype=0;
/* Local functions */
@@ -72,7 +73,7 @@
static void output_junctions(index_t node,double latitude,double longitude);
static void output_super(index_t node,double latitude,double longitude);
-static void output_oneway(index_t node,double latitude,double longitude);
+static void output_waytype(index_t node,double latitude,double longitude);
static void output_highway(index_t node,double latitude,double longitude);
static void output_transport(index_t node,double latitude,double longitude);
static void output_barrier(index_t node,double latitude,double longitude);
@@ -259,9 +260,11 @@
double lonmin The minimum longitude.
double lonmax The maximum longitude.
+
+ highway_t mask A bit mask that must match the highway type.
++++++++++++++++++++++++++++++++++++++*/
-void OutputOneway(Nodes *nodes,Segments *segments,Ways *ways,Relations *relations,double latmin,double latmax,double lonmin,double lonmax)
+void OutputWaytype(Nodes *nodes,Segments *segments,Ways *ways,Relations *relations,double latmin,double latmax,double lonmin,double lonmax,highway_t mask)
{
/* Use local variables so that the callback doesn't need to pass them backwards and forwards */
@@ -277,12 +280,14 @@
/* Iterate through the nodes and process them */
- find_all_nodes(nodes,(callback_t)output_oneway);
+ waytype=mask;
+
+ find_all_nodes(nodes,(callback_t)output_waytype);
}
/*++++++++++++++++++++++++++++++++++++++
- Process a single node and all connected one-way segments (called as a callback).
+ Process a single node and all connected way-type segments (called as a callback).
index_t node The node to output.
@@ -291,7 +296,7 @@
double longitude The longitude of the node.
++++++++++++++++++++++++++++++++++++++*/
-static void output_oneway(index_t node,double latitude,double longitude)
+static void output_waytype(index_t node,double latitude,double longitude)
{
Node *nodep=LookupNode(OSMNodes,node,1);
Segment *segmentp;
@@ -302,18 +307,22 @@
{
if(IsNormalSegment(segmentp))
{
- index_t othernode=OtherNode(segmentp,node);
+ Way *wayp=LookupWay(OSMWays,segmentp->way,1);
- if(node>othernode)
+ if(wayp->type&waytype)
{
+ index_t othernode=OtherNode(segmentp,node);
double lat,lon;
GetLatLong(OSMNodes,othernode,NULL,&lat,&lon);
- if(IsOnewayFrom(segmentp,node))
- printf("segment%"Pindex_t" %.6f %.6f %.6f %.6f\n",IndexSegment(OSMSegments,segmentp),radians_to_degrees(latitude),radians_to_degrees(longitude),radians_to_degrees(lat),radians_to_degrees(lon));
- else if(IsOnewayFrom(segmentp,othernode))
- printf("segment%"Pindex_t" %.6f %.6f %.6f %.6f\n",IndexSegment(OSMSegments,segmentp),radians_to_degrees(lat),radians_to_degrees(lon),radians_to_degrees(latitude),radians_to_degrees(longitude));
+ if(node>othernode || (lat<LatMin || lat>LatMax || lon<LonMin || lon>LonMax))
+ {
+ if(IsOnewayFrom(segmentp,node))
+ printf("segment%"Pindex_t" %.6f %.6f %.6f %.6f\n",IndexSegment(OSMSegments,segmentp),radians_to_degrees(latitude),radians_to_degrees(longitude),radians_to_degrees(lat),radians_to_degrees(lon));
+ else if(IsOnewayFrom(segmentp,othernode))
+ printf("segment%"Pindex_t" %.6f %.6f %.6f %.6f\n",IndexSegment(OSMSegments,segmentp),radians_to_degrees(lat),radians_to_degrees(lon),radians_to_degrees(latitude),radians_to_degrees(longitude));
+ }
}
}
@@ -388,20 +397,17 @@
{
if(IsNormalSegment(segmentp))
{
- index_t othernode=OtherNode(segmentp,node);
+ Way *wayp=LookupWay(OSMWays,segmentp->way,1);
- if(node>othernode)
+ if(HIGHWAY(wayp->type)==highways)
{
- Way *wayp=LookupWay(OSMWays,segmentp->way,1);
-
- if(HIGHWAY(wayp->type)==highways)
- {
- double lat,lon;
+ index_t othernode=OtherNode(segmentp,node);
+ double lat,lon;
- GetLatLong(OSMNodes,othernode,NULL,&lat,&lon);
+ GetLatLong(OSMNodes,othernode,NULL,&lat,&lon);
+ if(node>othernode || (lat<LatMin || lat>LatMax || lon<LonMin || lon>LonMax))
printf("segment%"Pindex_t" %.6f %.6f %.6f %.6f\n",IndexSegment(OSMSegments,segmentp),radians_to_degrees(latitude),radians_to_degrees(longitude),radians_to_degrees(lat),radians_to_degrees(lon));
- }
}
}
@@ -476,20 +482,17 @@
{
if(IsNormalSegment(segmentp))
{
- index_t othernode=OtherNode(segmentp,node);
+ Way *wayp=LookupWay(OSMWays,segmentp->way,1);
- if(node>othernode)
+ if(wayp->allow&transports)
{
- Way *wayp=LookupWay(OSMWays,segmentp->way,1);
-
- if(wayp->allow&transports)
- {
- double lat,lon;
+ index_t othernode=OtherNode(segmentp,node);
+ double lat,lon;
- GetLatLong(OSMNodes,othernode,NULL,&lat,&lon);
+ GetLatLong(OSMNodes,othernode,NULL,&lat,&lon);
+ if(node>othernode || (lat<LatMin || lat>LatMax || lon<LonMin || lon>LonMax))
printf("segment%"Pindex_t" %.6f %.6f %.6f %.6f\n",IndexSegment(OSMSegments,segmentp),radians_to_degrees(latitude),radians_to_degrees(longitude),radians_to_degrees(lat),radians_to_degrees(lon));
- }
}
}
@@ -1029,20 +1032,17 @@
{
if(IsNormalSegment(segmentp))
{
- index_t othernode=OtherNode(segmentp,node);
+ Way *wayp=LookupWay(OSMWays,segmentp->way,1);
- if(node>othernode)
+ if(wayp->props&properties)
{
- Way *wayp=LookupWay(OSMWays,segmentp->way,1);
-
- if(wayp->props&properties)
- {
- double lat,lon;
+ index_t othernode=OtherNode(segmentp,node);
+ double lat,lon;
- GetLatLong(OSMNodes,othernode,NULL,&lat,&lon);
+ GetLatLong(OSMNodes,othernode,NULL,&lat,&lon);
+ if(node>othernode || (lat<LatMin || lat>LatMax || lon<LonMin || lon>LonMax))
printf("segment%"Pindex_t" %.6f %.6f %.6f %.6f\n",IndexSegment(OSMSegments,segmentp),radians_to_degrees(latitude),radians_to_degrees(longitude),radians_to_degrees(lat),radians_to_degrees(lon));
- }
}
}
diff -Nru routino-2.7/src/visualiser.h routino-2.7.2/src/visualiser.h
--- routino-2.7/src/visualiser.h 2013-05-15 20:59:08.000000000 +0200
+++ routino-2.7.2/src/visualiser.h 2014-04-29 20:14:13.000000000 +0200
@@ -3,7 +3,7 @@
Part of the Routino routing software.
******************/ /******************
- This file Copyright 2008-2013 Andrew M. Bishop
+ This file Copyright 2008-2014 Andrew M. Bishop
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@@ -33,7 +33,7 @@
void OutputSuper(Nodes *nodes,Segments *segments,Ways *ways,Relations *relations,double latmin,double latmax,double lonmin,double lonmax);
-void OutputOneway(Nodes *nodes,Segments *segments,Ways *ways,Relations *relations,double latmin,double latmax,double lonmin,double lonmax);
+void OutputWaytype(Nodes *nodes,Segments *segments,Ways *ways,Relations *relations,double latmin,double latmax,double lonmin,double lonmax,highway_t mask);
void OutputHighway(Nodes *nodes,Segments *segments,Ways *ways,Relations *relations,double latmin,double latmax,double lonmin,double lonmax,Highway highway);
diff -Nru routino-2.7/web/INSTALL.txt routino-2.7.2/web/INSTALL.txt
--- routino-2.7/web/INSTALL.txt 2014-03-20 20:55:31.000000000 +0100
+++ routino-2.7.2/web/INSTALL.txt 2014-06-25 20:11:38.000000000 +0200
@@ -53,9 +53,9 @@
sh -x install.sh
To make full use of the location search feature on the Routino web page
- you will need to install one extra perl package.
+ you will need to install some extra perl packages.
- apt-get install libjson-pp-perl
+ apt-get install libwww-perl liburi-perl libjson-pp-perl
Finally to make the web pages work you will need to add the extra lines
to the Apache configuration file as described in the Configuration of
@@ -111,13 +111,20 @@
called liblzma-dev). The xz function is not enabled by default but can
be enabled by uncommenting two lines in the file 'Makefile.conf'.
+ To compile the source code from subversion requires the Perl
+ Graphics::Magick module to generate the web page icons (on Linux this
+ might be in a package called libgraphics-magick-perl). The released
+ source code packages contains the icons so this package is not required
+ for compilation.
+
To use the web page interface an http server is required. Instructions
below are for Apache but any server that supports CGIs should work.
The web pages use the Perl scripting language and a number of the
default Perl modules. To use the search function on the router web page
- the additional Perl module "JSON::PP" must be installed.
-
+ the Perl module JSON::PP must be installed (on Linux this might be in a
+ package called libjson-pp-perl if not part of the standard Perl
+ installation).
Compilation
-----------
@@ -274,7 +281,7 @@
the Routino documentation.
-Configuration of web server
+Configuration of Web Server
---------------------------
The file 'www/routino/.htaccess' contains all of the Apache
diff -Nru routino-2.7/web/Makefile routino-2.7.2/web/Makefile
--- routino-2.7/web/Makefile 2014-03-22 13:03:03.000000000 +0100
+++ routino-2.7.2/web/Makefile 2014-05-17 15:18:12.000000000 +0200
@@ -48,6 +48,8 @@
PROFILE_FILES=profiles.pl \
profiles.js
+TRANS_FILES=$(wildcard $(WEBTRANSDIR)/translation.*.txt)
+
DOC_FILES=$(notdir $(wildcard $(DOCDIR)/html/*.html)) $(notdir $(wildcard $(DOCDIR)/html/*.css))
EXE_FILES=planetsplitter planetsplitter-slim \
@@ -71,13 +73,13 @@
all-data: all-xml
@[ -d $(WEBDATADIR) ] || mkdir -p $(WEBDATADIR)
@for file in $(STANDARD_XML_FILES); do \
- if [ ! -f $(WEBDATADIR)/$$file ] || [ routino-$$file -nt $(WEBDATADIR)/$$file ]; then \
+ if [ ! -f $(WEBDATADIR)/$$file ] || [ $(XMLDIR)/routino-$$file -nt $(WEBDATADIR)/$$file ]; then \
echo cp $(XMLDIR)/routino-$$file $(WEBDATADIR)/$$file ;\
cp -f $(XMLDIR)/routino-$$file $(WEBDATADIR)/$$file ;\
fi ;\
done
@for file in $(SPECIAL_XML_FILES); do \
- if [ ! -f $(WEBDATADIR)/$$file ] || [ $$file -nt $(WEBDATADIR)/$$file ]; then \
+ if [ ! -f $(WEBDATADIR)/$$file ] || [ $(XMLDIR)/$$file -nt $(WEBDATADIR)/$$file ]; then \
echo cp $(XMLDIR)/$$file $(WEBDATADIR)/$$file ;\
cp -f $(XMLDIR)/$$file $(WEBDATADIR)/$$file ;\
fi ;\
@@ -102,14 +104,22 @@
all-icons: $(WEBICONDIR)/ball-0.png
-$(WEBICONDIR)/ball-0.png:
- echo create-icons.pl
+$(WEBICONDIR)/ball-0.png: $(WEBICONDIR)/create-icons.pl
+ @echo create-icons.pl
@cd $(WEBICONDIR) && perl create-icons.pl
-all-translations: $(WEBWWWDIR)/router.html.en
+all-translations: $(WEBWWWDIR)/router.html.en $(WEBWWWDIR)/visualiser.html.en $(XMLDIR)/routino-translations.xml
+
+$(WEBWWWDIR)/router.html.en: $(WEBTRANSDIR)/router.html $(TRANS_FILES) $(WEBTRANSDIR)/translate.pl
+ @echo translate.pl
+ @cd $(WEBTRANSDIR) && perl translate.pl
+
+$(WEBWWWDIR)/visualiser.html.en: $(WEBTRANSDIR)/visualiser.html $(TRANS_FILES) $(WEBTRANSDIR)/translate.pl
+ @echo translate.pl
+ @cd $(WEBTRANSDIR) && perl translate.pl
-$(WEBWWWDIR)/router.html.en:
- echo translate.pl
+$(XMLDIR)/routino-translations.xml: $(WEBTRANSDIR)/translations-head.xml $(WEBTRANSDIR)/translations-body.xml $(WEBTRANSDIR)/translations-tail.xml $(TRANS_FILES) $(WEBTRANSDIR)/translate.pl
+ @echo translate.pl
@cd $(WEBTRANSDIR) && perl translate.pl
all-exe:
diff -Nru routino-2.7/web/translations/router.html routino-2.7.2/web/translations/router.html
--- routino-2.7/web/translations/router.html 2014-03-08 18:29:08.000000000 +0100
+++ routino-2.7.2/web/translations/router.html 2014-04-12 14:52:36.000000000 +0200
@@ -64,7 +64,7 @@
<form name="form" id="form" action="#" method="get" onsubmit="return false;">
<div class="hideshow_box">
<span class="hideshow_title">@@ROUTINO-ROUTER@@</span>
- @@ROUTER-INFO@@
+ $$ROUTER-INFO$$
<div class="center">
<a target="other" href="http://www.routino.org/">@@ROUTINO-WEBSITE@@</a>
|
@@ -79,12 +79,12 @@
<div id="hideshow_language_div" style="display: none;">
<table>
- $$LANGUAGES-META$$
+ **LANGUAGES-META**
<tr>
- <td><a id="lang_xx_url" href="router.html.xx" title="@@LANGUAGE-WEBPAGE@@">@@LANGUAGE@@</a>
- <td>(XX)
- <td><input name="language" type="radio" value="xx" onchange="formSetLanguage();" CHECKED-XX>
- $$LANGUAGES-META$$
+ <td><a id="lang_~~lang~~_url" href="router.html.~~lang~~" title="@@LANGUAGE-WEBPAGE@@">@@LANGUAGE@@</a>
+ <td>(~~LANG~~)
+ <td><input name="language" type="radio" value="~~lang~~" onchange="formSetLanguage();" ~~CHECKED~~>
+ **LANGUAGES-META**
</table>
<a target="translation" href="http://www.routino.org/translations/">Routino Translations</a>
</div>
@@ -237,8 +237,8 @@
<div class="hideshow_box">
<span class="hideshow_title">@@FIND-BOX@@</span>
- <input type="button" title="@@FIND-SHORTEST-ROUTE@@" id="shortest" value="@@SHORTEST-ROUTE@@" onclick="findRoute('shortest');">
- <input type="button" title="@@FIND-QUICKEST-ROUTE@@" id="quickest" value="@@QUICKEST-ROUTE@@" onclick="findRoute('quickest');">
+ <input type="button" title="@@FIND-SHORTEST-ROUTE@@" id="shortest" value="@@SHORTEST-ROUTE@@" onclick="findRoute('shortest');" disabled="disabled">
+ <input type="button" title="@@FIND-QUICKEST-ROUTE@@" id="quickest" value="@@QUICKEST-ROUTE@@" onclick="findRoute('quickest');" disabled="disabled">
</div>
<div class="hideshow_box">
@@ -254,7 +254,7 @@
<span class="hideshow_title">@@HELP-BOX@@</span>
<div id="hideshow_help_options_div">
<div class="scrollable">
- @@ROUTER-OPTIONS-HELP@@
+ $$ROUTER-OPTIONS-HELP$$
</div>
</div>
</div>
@@ -349,7 +349,7 @@
<span class="hideshow_title">@@HELP-BOX@@</span>
<div id="hideshow_help_route_div">
<div class="scrollable">
- @@ROUTER-RESULTS-HELP@@
+ $$ROUTER-RESULTS-HELP$$
</div>
</div>
</div>
@@ -365,7 +365,7 @@
<div class="hideshow_box">
<span class="hideshow_title">@@VISUALISER-BOX@@</span>
- @@ROUTER-VISUALISER-INFO@@
+ $$ROUTER-VISUALISER-INFO$$
<br>
<a id="visualiser_url" href="visualiser.html" target="visualiser">@@MAP-VIEW-LINK@@</a>
</div>
diff -Nru routino-2.7/web/translations/translate.pl routino-2.7.2/web/translations/translate.pl
--- routino-2.7/web/translations/translate.pl 2014-03-15 12:44:28.000000000 +0100
+++ routino-2.7.2/web/translations/translate.pl 2014-06-05 20:16:15.000000000 +0200
@@ -20,16 +20,13 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-# Use the perl encoding/decoding functions
-use Encode qw(decode encode);
-
use strict;
# Constants
my @translation_files=(<translation.*.txt>);
-my $xml_file="../data/translations.xml";
-my $output_dir="../www/routino";
+my $xml_output_file="../../xml/routino-translations.xml";
+my $html_output_dir="../www/routino";
my @html_template_files=(<*.html>);
@@ -37,7 +34,7 @@
my %translations=();
-# Read in the translations (HTML)
+# Read in the translations
foreach my $translation_file (@translation_files)
{
@@ -68,7 +65,7 @@
next if(m%^#%);
next if(m%^$%);
- # Single line entries
+ # Single line HTML entries
if(m%\@\@%)
{
@@ -82,16 +79,18 @@
{
$translations{$language}->{html}++;
$translations{$language}->{codes}->{$code}={};
- $translations{$language}->{codes}->{$code}->{text}=encode('ascii',decode('UTF-8',$text),Encode::FB_HTMLCREF);
- $translations{$language}->{codes}->{$code}->{used}=0;
+ $translations{$language}->{codes}->{$code}->{text}=$text;
+ $translations{$language}->{codes}->{$code}->{usedX}=0;
+ $translations{$language}->{codes}->{$code}->{usedR}=0;
+ $translations{$language}->{codes}->{$code}->{usedV}=0;
}
}
- # Multi-line entries
+ # Multi-line HTML entries
- if(m%\$\$([^\$]+)\$\$%)
+ if(m%(\$\$[^\$]+\$\$)%)
{
- my($code,$text)=("@@".$1."@@","");
+ my($code,$text)=($1,"");
while(<FILE>)
{
@@ -110,57 +109,38 @@
{
$translations{$language}->{html}++;
$translations{$language}->{codes}->{$code}={};
- $translations{$language}->{codes}->{$code}->{text}=encode('ascii',decode('UTF-8',$text),Encode::FB_HTMLCREF);
- $translations{$language}->{codes}->{$code}->{used}=0;
+ $translations{$language}->{codes}->{$code}->{text}=$text;
+ $translations{$language}->{codes}->{$code}->{usedX}=0;
+ $translations{$language}->{codes}->{$code}->{usedR}=0;
+ $translations{$language}->{codes}->{$code}->{usedV}=0;
}
}
- }
-
- close(FILE);
- }
-
-
-# Read in the translations (XML)
-
-open(XML,"<$xml_file");
-
-my $language="";
-
-while(<XML>)
- {
- if(m%<language +lang=["']([^"']+)["'] *>%)
- {
- # Add to list of languages
- $language=$1;
+ # Single line XML entries
- if(! defined $languages{$language})
+ if(m%\%\%%)
{
- $languages{$language}=1;
+ my($code,$text)=split("\t");
- $translations{$language}={};
- $translations{$language}->{codes}={};
- $translations{$language}->{html}=0;
- $translations{$language}->{xml}=0;
+ if(defined $translations{$language}->{codes}->{$code})
+ {
+ print STDERR "Language: $language DUPLICATED codeword '$code'\n";
+ }
+ else
+ {
+ $translations{$language}->{xml}++;
+ $translations{$language}->{codes}->{$code}={};
+ $translations{$language}->{codes}->{$code}->{text}=$text;
+ $translations{$language}->{codes}->{$code}->{usedX}=0;
+ $translations{$language}->{codes}->{$code}->{usedR}=0;
+ $translations{$language}->{codes}->{$code}->{usedV}=0;
+ }
}
-
- next;
}
- $language="" if(m%</language *>%);
-
- next if(!$language);
-
- # Count the phrases
-
- if(m%<[a-z]+% && m% +(text|string)=["']([^"']+)["']%)
- {
- $translations{$language}->{xml}++;
- }
+ close(FILE);
}
-close(XML);
-
# Sort out the languages
@@ -174,10 +154,15 @@
}
-# Create the files
+# Create the HTML files
foreach my $html_template_file (@html_template_files)
{
+ my $usedtype="";
+
+ $usedtype="R" if($html_template_file =~ m%router%);
+ $usedtype="V" if($html_template_file =~ m%visualiser%);
+
foreach my $language (@languages)
{
next if(!$translations{$language}->{html});
@@ -188,7 +173,7 @@
my $language_meta_string="";
open(HTML_IN ,"<$html_template_file");
- open(HTML_OUT,">$output_dir/$html_template_file.$language");
+ open(HTML_OUT,">$html_output_dir/$html_template_file.$language");
while(<HTML_IN>)
{
@@ -196,7 +181,7 @@
# Language selection - special handling
- if($line =~ m%\$\$LANGUAGES-META\$\$%)
+ if($line =~ m%\*\*LANGUAGES-META\*\*%)
{
$language_meta=1-$language_meta;
@@ -211,15 +196,15 @@
if($language eq $language2)
{
- $line =~ s%CHECKED-XX%checked%g;
+ $line =~ s%~~CHECKED~~%checked%g;
}
else
{
- $line =~ s%CHECKED-XX%%g;
+ $line =~ s%~~CHECKED~~%%g;
}
- $line =~ s%xx%$language2%g;
- $line =~ s%XX%$LANGUAGE2%g;
+ $line =~ s%~~lang~~%$language2%g;
+ $line =~ s%~~LANG~~%$LANGUAGE2%g;
if(!$translations{$language2}->{html})
{
@@ -231,10 +216,15 @@
$line =~ s%<input .+>%%;
}
- foreach my $code (keys $translations{$language}->{codes})
+ foreach my $code (keys %{$translations{$language2}->{codes}})
{
if($line =~ s%$code%$translations{$language2}->{codes}->{$code}->{text}%g)
- {$translations{$language2}->{codes}->{$code}->{used} = 1;}
+ {$translations{$language2}->{codes}->{$code}->{"used$usedtype"} = 1;}
+ }
+
+ if($line =~ m%((\@\@|\$\$|\*\*|\~\~)[^\@\$*~]+(\@\@|\$\$|\*\*|\~\~))%)
+ {
+ print STDERR " Unmatched codeword '$1' in line: $line";
}
# Remove un-needed spaces
@@ -258,22 +248,22 @@
# Replace with translated phrases
- foreach my $code (keys $translations{$language}->{codes})
+ foreach my $code (keys %{$translations{$language}->{codes}})
{
- if($line =~ s%$code%$translations{$language}->{codes}->{$code}->{text}%g)
- {$translations{$language}->{codes}->{$code}->{used} = 1;}
+ if($line =~ s%\Q$code\E%$translations{$language}->{codes}->{$code}->{text}%g)
+ {$translations{$language}->{codes}->{$code}->{"used$usedtype"} = 1;}
}
# Replace what is left with English phrases
- foreach my $code (keys $translations{$languages[0]}->{codes})
+ foreach my $code (keys %{$translations{$languages[0]}->{codes}})
{
- $line =~ s%$code%$translations{$languages[0]}->{codes}->{$code}->{text}%g;
+ $line =~ s%\Q$code\E%$translations{$languages[0]}->{codes}->{$code}->{text}%g;
}
- if($line =~ m%\@\@%)
+ if($line =~ m%((\@\@|\$\$|\*\*|\~\~)[^\@\$*~]+(\@\@|\$\$|\*\*|\~\~))%)
{
- print STDERR " Unmatched codeword in line: $line";
+ print STDERR " Unmatched codeword '$1' in line: $line";
}
# Remove un-needed spaces
@@ -291,13 +281,98 @@
}
-# Check the languages
+# Create the XML file
+
+open(XML_OUT,">$xml_output_file");
+
+open(XML_IN ,"<translations-head.xml");
+
+while(<XML_IN>)
+ {
+ print XML_OUT;
+ }
+
+close(XML_IN);
+
+foreach my $language (@languages)
+ {
+ next if(!$translations{$language}->{xml});
+
+ print "Language: $language File: translations.xml\n";
+
+ open(XML_IN ,"<translations-body.xml");
+
+ while(<XML_IN>)
+ {
+ my $line=$_;
+
+ $line =~ s%~~lang~~%$language%g;
+
+ # Replace with translated phrases
+
+ foreach my $code (keys %{$translations{$language}->{codes}})
+ {
+ if($line =~ s%$code%$translations{$language}->{codes}->{$code}->{text}%g)
+ {$translations{$language}->{codes}->{$code}->{usedX} = 1;}
+ }
+
+ # Replace what is left with a note about missing translations
+
+ if($line =~ m%\%\%%)
+ {
+ foreach my $code (keys %{$translations{$languages[0]}->{codes}})
+ {
+ $line =~ s%$code%$translations{$languages[0]}->{codes}->{$code}->{text}%g;
+ }
+
+ $line =~ s%<%<!-- TRANSLATION REQUIRED: %;
+ $line =~ s%>% -->%;
+
+ if($line =~ m%((\%\%|\~\~)[^\%~]+(\%\%|\~\~))%)
+ {
+ print STDERR " Unmatched codeword '$1' in line: $line";
+ }
+ }
+
+ print XML_OUT $line;
+ }
+
+ close(XML_IN);
+ }
+
+open(XML_IN ,"<translations-tail.xml");
+
+while(<XML_IN>)
+ {
+ print XML_OUT;
+ }
+
+close(XML_IN);
+
+close(XML_OUT);
+
+
+# Check the languages and usage
+
+my %usedX=();
+my %usedR=();
+my %usedV=();
foreach my $language (@languages)
{
- foreach my $code (keys $translations{$language}->{codes})
+ $usedX{$language}=0;
+ $usedR{$language}=0;
+ $usedV{$language}=0;
+
+ foreach my $code (keys %{$translations{$language}->{codes}})
{
- if(! $translations{$language}->{codes}->{$code}->{used})
+ $usedX{$language}+=$translations{$language}->{codes}->{$code}->{usedX};
+ $usedR{$language}+=$translations{$language}->{codes}->{$code}->{usedR};
+ $usedV{$language}+=$translations{$language}->{codes}->{$code}->{usedV};
+
+ if(! $translations{$language}->{codes}->{$code}->{usedX} &&
+ ! $translations{$language}->{codes}->{$code}->{usedR} &&
+ ! $translations{$language}->{codes}->{$code}->{usedV})
{
print STDERR "Language: $language UNUSED codeword: $code\n";
}
@@ -313,15 +388,17 @@
print "====================\n";
print "\n";
-print " Number Fraction\n";
-print "Language HTML XML HTML XML\n";
-print "-------- ---- --- ---- ---\n";
+print " Number Percentage Complete\n";
+print "Language XML HTML XML router visualiser\n";
+print "-------- --- ---- --- ------ ----------\n";
foreach my $language (@languages)
{
- printf("%-6s %3d %3d %4.0f%% %4.0f%%\n",$language,
- $translations{$language}->{html},
- $translations{$language}->{xml},
- 100.0*$translations{$language}->{html}/$translations{$languages[0]}->{html},
- 100.0*$translations{$language}->{xml} /$translations{$languages[0]}->{xml});
+ printf("%-6s %3d %3d %4.0f%% %4.0f%% %4.0f%%\n",
+ $language,
+ $translations{$language}->{xml},
+ $translations{$language}->{html},
+ 100.0*$usedX{$language}/$usedX{$languages[0]},
+ 100.0*$usedR{$language}/$usedR{$languages[0]},
+ 100.0*$usedV{$language}/$usedV{$languages[0]})
}
diff -Nru routino-2.7/web/translations/translation.de.txt routino-2.7.2/web/translations/translation.de.txt
--- routino-2.7/web/translations/translation.de.txt 2014-03-15 12:42:36.000000000 +0100
+++ routino-2.7.2/web/translations/translation.de.txt 2014-05-26 17:46:16.000000000 +0200
@@ -1,14 +1,98 @@
#
-# German language web-page translation phrases
+# German language translation phrases
#
-@@LANGUAGE@@ Deutsche
-@@LANGUAGE-WEBPAGE@@ Deutsche Webseite
+#
+# Router output XML definition
+#
+
+%%copyright_creator_string%% Urheber
+%%copyright_source_string%% Source
+%%copyright_source_text%% Basierend auf OpenStreetMap-Daten, erhältlich via http://www.openstreetmap.org/
+%%copyright_license_string%% Lizenz
+
+%%turn_-4%% Spitzkehre nach links
+%%turn_-3%% Scharf links
+%%turn_-2%% Links
+%%turn_-1%% Halb links
+%%turn_0%% Geradeaus
+%%turn_1%% Halb rechts
+%%turn_2%% Rechts
+%%turn_3%% Scharf rechts
+%%turn_4%% Spitzkehre nach rechts
+
+%%heading_-4%% Süd
+%%heading_-3%% Süd-West
+%%heading_-2%% West
+%%heading_-1%% Nord-West
+%%heading_0%% Nord
+%%heading_1%% Nord-Ost
+%%heading_2%% Ost
+%%heading_3%% Süd-Ost
+%%heading_4%% Süd
+
+%%ordinal_1%% Erste
+%%ordinal_2%% Zweite
+%%ordinal_3%% Dritte
+%%ordinal_4%% Vierte
+%%ordinal_5%% Fünfte
+%%ordinal_6%% Sechste
+%%ordinal_7%% Siebte
+%%ordinal_8%% Achte
+%%ordinal_9%% Neunte
+%%ordinal_10%% Zehnte
+
+%%highway_motorway%% Autobahn
+%%highway_trunk%% Schnellstraße
+%%highway_primary%% Bundesstraße
+%%highway_secondary%% Landstraße
+%%highway_tertiary%% Kreisstraße
+%%highway_unclassified%% Nebenstraße
+%%highway_residential%% Wohngebietsstraße
+%%highway_service%% Erschließungsweg
+%%highway_track%% Wirtschaftsweg
+%%highway_cycleway%% Radweg
+%%highway_path%% Weg
+%%highway_steps%% Treppe
+%%highway_ferry%% Fähre
+
+%%route_shortest%% Kürzeste
+%%route_quickest%% Schnellste
+
+%%output-html_waypoint_waypoint%% Wegpunkt
+%%output-html_waypoint_junction%% Anschlussstelle
+%%output-html_waypoint_roundabout%% Kreisverkehr
+%%output-html_title%% %s Route
+%%output-html_start_string%% Start
+%%output-html_start_text%% Bei %s halten Sie sich Richtung %s
+%%output-html_node_string%% Bei
+%%output-html_node_text%% Bei %s wenden Sie sich nach %s Richtung %s
+%%output-html_rbnode_string%% Verlassen Sie
+%%output-html_rbnode_text%% %s, nehmen Sie die %s Ausfahrt Richtung %s
+%%output-html_segment_string%% Folgen
+%%output-html_segment_text%% Folgen Sie der %s für %.3f km bzw. %.1f min
+%%output-html_stop_string%% Stop
+%%output-html_stop_text%% Sie sind bei %s angekommen
+%%output-html_total_string%% Gesamt
+%%output-html_total_text%% %.1f km, %.0f minuten
+
+%%output-gpx_waypoint_start%% START
+%%output-gpx_waypoint_inter%% INTER
+%%output-gpx_waypoint_trip%% TRIP
+%%output-gpx_waypoint_finish%% FINISH
+
+%%output-gpx_desc%% %s Strecke zwischen 'Start' und 'Ziel'
+%%output-gpx_name%% %s Strecke
+%%output-gpx_step%% %s auf '%s' für %.3f km, %.1f min
+%%output-gpx_final%% Gesamtstrecke %.1f km, %.0f minuten
#
# Router (and some shared) translations
#
+@@LANGUAGE@@ Deutsch
+@@LANGUAGE-WEBPAGE@@ Deutsche Webseite
+
@@ROUTER-TITLE@@ Routen Planer für OpenStreetMap Daten
@@OPTION-TAB@@ Optionen
@@ -38,9 +122,18 @@
@@STATUS-BOX@@ Status
@@SHORTEST-ROUTE@@ kürzester Weg
@@QUICKEST-ROUTE@@ schnellste Route
+
@@STATISTICS-BOX@@ Routino Statistik
@@VISUALISER-BOX@@ Routino Ansichten
+@@WAYPOINT-SEARCH@@ Nach Ort suchen
+@@WAYPOINT-CENTRE1@@ Karte auf Wegpunkt zentrieren
+@@WAYPOINT-UP@@ wegpunkt nach oben verschieben
+@@WAYPOINT-ADD@@ Neuer Wegpunkt nach diesem
+@@WAYPOINT-COORDS@@ Koordinaten des Orts
+@@WAYPOINT-CENTRE2@@ Wegpunkt auf Karte zentrieren
+@@WAYPOINT-DOWN@@ Wegpunkt nach unten verschieben
+@@WAYPOINT-REMOVE@@ Wegpunkt entfernen
@@WAYPOINT-REVERSE@@ Rückwärts
@@WAYPOINT-REVERSE-BUTTON@@ Rückwärts
@@ -83,6 +176,9 @@
@@RESTRICT-WIDTH@@ Breite
@@RESTRICT-LENGTH@@ Länge
+@@FIND-SHORTEST-ROUTE@@ Kürzeste Route finden
+@@FIND-QUICKEST-ROUTE@@ Schnellste Route finden
+
@@MAP-VIEW-LINK@@ anpassen dieser Kartenansicht
@@EDIT-OSM-DATA@@ Bearbeitet die OSM-Daten
@@ -103,10 +199,49 @@
@@DISPLAY-STATISTICS@@ zeige die Statistik
+@@JAVASCRIPT-REQUIRED@@ Um die interaktive Karte zu nutzen iWork Javascript benötigt.
+@@ROUTER@@ Router
+@@GEO-DATA@@ Geodaten
+@@TILES@@ Kacheln
+
#
# Visualiser specific translations
#
+@@VISUALISER-TITLE@@ Visualisierung der Routing-Daten
+
+@@INSTRUCTIONS-BOX@@ Anweisungen
+@@ROUTER-BOX@@ Routino Router
+
+@@NO-DATA-DISPLAYED@@ Keine Daten angezeigt
+
+@@VISUALISER-FAILED@@ Fehler bei der Erstellung der visuellen Daten!
+@@VISUALISER-NUM-JUNCTIONS@@ # Kreuzungen verarbeitet
+@@VISUALISER-NUM-SUPER@@ # Super-Knoten/Segmente verarbeitet
+@@VISUALISER-NUM-WAYTYPE@@ # Wegtypen Segmente verarbeitet
+@@VISUALISER-NUM-SEGMENTS@@ # Segmente verarbeitet
+@@VISUALISER-NUM-NODES@@ # Knoten verarbeitet
+@@VISUALISER-NUM-TURNS@@ # Abbiegebeschrängkungen verarbeitet
+@@VISUALISER-NUM-ERRORS@@ # Error Logs erstellt
+
+@@JUNCTIONS-BUTTON@@ Kreuzungen anzeigen
+@@JUNCTIONS-2@@ Aufeinandertreffen zweier Wege unterschiedlichen Typs.
+@@JUNCTIONS-3@@ Aufeinandertreffen von drei Wegen.
+@@JUNCTIONS-4@@ Aufeinandertreffen von vier Wegen.
+@@JUNCTIONS-5@@ Aufeinandertreffen von fünf Wegen.
+@@JUNCTIONS-6@@ Aufeinandertreffen von sechs Wegen.
+@@JUNCTIONS-MORE@@ Aufeinandertreffen von sieben oder mehr Wegen.
+
+@@SUPER-BUTTON@@ Super-Segments anzeigen
+
+@@WEIGHT-LIMIT-8@@ 8 Tonnen Wegbeschränkung
+
+@@HEIGHT-BUTTON@@ Maximale Höhe anzeigen
+
+@@WIDTH-BUTTON@@ Maximale Breite anzeigen
+
+@@CLEAR-DATA-BUTTON@@ Daten zurücksetzen
+
#
# Multi-line descriptive translations (router)
#
@@ -119,30 +254,30 @@
$$ROUTER-OPTIONS-HELP$$
<b>Schnellanleitung</b>
<br>
-Klicke auf die Marker-Bildchen (oben), um sie in der Mitte der Karte (rechts) zu positionieren. Dann
+Klicke auf die Marker-Bildchen (oben), um sie in der Mitte der Karte (rechts) zu positionieren. Dann
ziehe das Bildchen auf die genaue Position. Das Zoomen der Karte vor der Patzierung ist vermutlich am einfachsten.
Alternativ kann man die geografische Breite und Länge in den Kästchen eintragen.
<p>
-Wähle die Fortbewegungsart, die Vorgaben zur Wegnutzung, die Geschwindigkeitsvorgaben,
+Wähle die Fortbewegungsart, die Vorgaben zur Wegnutzung, die Geschwindigkeitsvorgaben,
die Vorgaben zur Wegbeschaffenheit und die anderen Vorgaben von den obigen Auswahlfeldern.
Ein Klick auf "kürzeste" oder "schnellste" ermittelt die entsprechende Verbindung und zeigt sie in der Karte an.
<p>
<b>Wegpunkte</b>
<br>
Ein Klick auf das Marker-Bildchen (oben) schaltet die Sichbarkeit in der Karte ein bzw. aus.
-Die Berechnung Route erfolgt in der Reihenfolge der Wegpunkte (so gut, wie es für die
+Die Berechnung Route erfolgt in der Reihenfolge der Wegpunkte (so gut, wie es für die
gewählte Fortbewegungsart möglich ist).
<p>
<b>Fortbewegungsart</b>
<br>
-Die Auswahl der Fortbewegungsart bestimmt die bei der Routenberechnung erlaubten Wegtypen und die
+Die Auswahl der Fortbewegungsart bestimmt die bei der Routenberechnung erlaubten Wegtypen und die
Vorgabeeinstellungen aller anderen Parameter.
<p>
<b>Vorgaben zur Wegnutzung</b>
<br>
Die Vorgaben zur Wegnutzung bestimmen die Priorisierung von Wegarten.
-Wenn z. B. Schnellstraßen mit 110% und Bundesstraßen mit 100% angegeben werden, wird
-bei zwei möglichen Wegwahlen die Schnellstraße solange bevorzugt wird, wie der
+Wenn z. B. Schnellstraßen mit 110% und Bundesstraßen mit 100% angegeben werden, wird
+bei zwei möglichen Wegwahlen die Schnellstraße solange bevorzugt wird, wie der
Längen(oder Zeit-)unterschied 10% nicht überschreitet.
<p>
<b>Geschwindigkeitsvorgaben</b>
@@ -152,16 +287,16 @@
<p>
<b>Vorgaben zur Wegbeschaffenheit</b>
<br>
-Die Vorgaben zur Wegbeschaffenheit werden als Prozentangaben verwendet, um die Verhältnisse
+Die Vorgaben zur Wegbeschaffenheit werden als Prozentangaben verwendet, um die Verhältnisse
der Wegbenutzung zu steuern.
Wenn z. B. befestigte Wege mit 75% angegeben sind, werden unbefestigte automatisch mit 25% angenommen, so
werden Wege ausgewählt, die mindestens drei mal länger auf befestigten Wegen verlaufen.
<p>
<b>andere Vorgaben</b>
<br>
-Die Berücksichtigung von Benutzungs-Begrenzungen durch Gewicht, Höhe, Länge und
-Breite ist möglich. Genauso können Einbahnstraßenbeschräkungen ignoriert werden
-(z. B. als Fußgänger).
+Die Berücksichtigung von Benutzungs-Begrenzungen durch Gewicht, Höhe, Länge und
+Breite ist möglich. Genauso können Einbahnstraßenbeschräkungen ignoriert werden
+(z. B. als Fußgänger).
$$ROUTER-OPTIONS-HELP$$
$$ROUTER-RESULTS-HELP$$
@@ -182,10 +317,10 @@
<dt>HTMLs
<dd>Eine Beschreibung der Route mit Anweisungen für jede wichtige Abzweigung.
<dt>GPX Track-Datei
- <dd>Die gleichen Informationen, die in der Karte angezeigt werden mit Punkten für jeden Abzweig
+ <dd>Die gleichen Informationen, die in der Karte angezeigt werden mit Punkten für jeden Abzweig
und Linien für jedes Teilstück.
<dt>GPX Routen-Datei
- <dd>Die gleichen Informationen, die im Text angezeigt werden mit einem Wegpunkt für
+ <dd>Die gleichen Informationen, die im Text angezeigt werden mit einem Wegpunkt für
jede wichtige Richtungsänderung.
<dt>Volltext-Datei
<dd>Eine aller Knoten und die Abstände zwischen ihnen, sowie die Gesamtentfernung vom i
@@ -196,9 +331,10 @@
$$ROUTER-RESULTS-HELP$$
$$ROUTER-VISUALISER-INFO$$
-Die Anzeige der Daten kann auf verschiedene Weise angepasst werden.
+Die Anzeige der Daten kann auf verschiedene Weise angepasst werden.
$$ROUTER-VISUALISER-INFO$$
#
# Multi-line descriptive translations (visualiser)
#
+
diff -Nru routino-2.7/web/translations/translation.en.txt routino-2.7.2/web/translations/translation.en.txt
--- routino-2.7/web/translations/translation.en.txt 2014-03-08 18:26:57.000000000 +0100
+++ routino-2.7.2/web/translations/translation.en.txt 2014-05-17 15:19:55.000000000 +0200
@@ -1,14 +1,98 @@
#
-# English language web-page translation phrases
+# English language translation phrases
#
-@@LANGUAGE@@ English
-@@LANGUAGE-WEBPAGE@@ English language webpage
+#
+# Router output XML definition
+#
+
+%%copyright_creator_string%% Creator
+%%copyright_source_string%% Source
+%%copyright_source_text%% Based on OpenStreetMap data from http://www.openstreetmap.org/
+%%copyright_license_string%% License
+
+%%turn_-4%% Very sharp left
+%%turn_-3%% Sharp left
+%%turn_-2%% Left
+%%turn_-1%% Slight left
+%%turn_0%% Straight on
+%%turn_1%% Slight right
+%%turn_2%% Right
+%%turn_3%% Sharp right
+%%turn_4%% Very sharp right
+
+%%heading_-4%% South
+%%heading_-3%% South-West
+%%heading_-2%% West
+%%heading_-1%% North-West
+%%heading_0%% North
+%%heading_1%% North-East
+%%heading_2%% East
+%%heading_3%% South-East
+%%heading_4%% South
+
+%%ordinal_1%% First
+%%ordinal_2%% Second
+%%ordinal_3%% Third
+%%ordinal_4%% Fourth
+%%ordinal_5%% Fifth
+%%ordinal_6%% Sixth
+%%ordinal_7%% Seventh
+%%ordinal_8%% Eighth
+%%ordinal_9%% Ninth
+%%ordinal_10%% Tenth
+
+%%highway_motorway%% motorway
+%%highway_trunk%% trunk road
+%%highway_primary%% primary road
+%%highway_secondary%% secondary road
+%%highway_tertiary%% tertiary road
+%%highway_unclassified%% unclassified road
+%%highway_residential%% residential road
+%%highway_service%% service road
+%%highway_track%% track
+%%highway_cycleway%% cycleway
+%%highway_path%% path
+%%highway_steps%% steps
+%%highway_ferry%% ferry
+
+%%route_shortest%% Shortest
+%%route_quickest%% Quickest
+
+%%output-html_waypoint_waypoint%% Waypoint
+%%output-html_waypoint_junction%% Junction
+%%output-html_waypoint_roundabout%% Roundabout
+%%output-html_title%% %s Route
+%%output-html_start_string%% Start
+%%output-html_start_text%% At %s, head %s
+%%output-html_node_string%% At
+%%output-html_node_text%% %s, go %s heading %s
+%%output-html_rbnode_string%% Leave
+%%output-html_rbnode_text%% %s, take the %s exit heading %s
+%%output-html_segment_string%% Follow
+%%output-html_segment_text%% %s for %.3f km, %.1f min
+%%output-html_stop_string%% Stop
+%%output-html_stop_text%% At %s
+%%output-html_total_string%% Total
+%%output-html_total_text%% %.1f km, %.0f minutes
+
+%%output-gpx_waypoint_start%% START
+%%output-gpx_waypoint_inter%% INTER
+%%output-gpx_waypoint_trip%% TRIP
+%%output-gpx_waypoint_finish%% FINISH
+
+%%output-gpx_desc%% %s route between 'start' and 'finish' waypoints
+%%output-gpx_name%% %s route
+%%output-gpx_step%% %s on '%s' for %.3f km, %.1f min
+%%output-gpx_final%% Total Journey %.1f km, %.0f minutes
#
# Router (and some shared) translations
#
+@@LANGUAGE@@ English
+@@LANGUAGE-WEBPAGE@@ English language webpage
+
@@ROUTER-TITLE@@ Route Planner for OpenStreetMap Data
@@OPTION-TAB@@ Options
@@ -92,7 +176,6 @@
@@PROPERTY-TUNNEL@@ Tunnel
@@PROPERTY-WALKINGROUTE@@ Walking Route
@@PROPERTY-BICYCLEROUTE@@ Bicycle Route
-@@PROPERTY-CYCLE-BOTHWAYS@@ Cycle Both Ways
@@RESTRICT-ONEWAY@@ Obey oneway streets
@@RESTRICT-TURNS@@ Obey turn restrictions
@@ -143,7 +226,7 @@
@@VISUALISER-FAILED@@ Failed to get visualiser data!
@@VISUALISER-NUM-JUNCTIONS@@ Processed # junctions
@@VISUALISER-NUM-SUPER@@ Processed # super-nodes/segments
-@@VISUALISER-NUM-ONEWAY@@ Processed # oneway segments
+@@VISUALISER-NUM-WAYTYPE@@ Processed # way type segments
@@VISUALISER-NUM-SEGMENTS@@ Processed # segments
@@VISUALISER-NUM-NODES@@ Processed # nodes
@@VISUALISER-NUM-TURNS@@ Processed # turn restrictions
@@ -154,7 +237,7 @@
$$JUNCTIONS-INFO$$
Each node that is a dead-end, a junction of two highways of different
types (or different properties) or a junction where more than two segments
-join are shown colour-coded:
+join are shown colour-coded.
$$JUNCTIONS-INFO$$
@@JUNCTIONS-1@@ only one highway - a dead-end.
@@JUNCTIONS-2@@ two highways of different types meet.
@@ -170,12 +253,16 @@
algorithm page for description).
$$SUPER-INFO$$
-@@ONEWAY-BUTTON@@ Display One-way Segments
-$$ONEWAY-INFO$$
-Each one-way segment is shown with a coloured triangle indicating the
-allowed direction. The colours of the triangles depend on the bearing
-of the highway segment.
-$$ONEWAY-INFO$$
+@@WAYTYPE-BUTTON@@ Display Way Type Segments
+$$WAYTYPE-INFO$$
+Each highway segment of special types (one-way, cycle-both-ways and roundabout) are
+shown. For one-way segments a coloured triangle indicates the allowed direction.
+The colours of the triangles depend on the bearing of the highway segment.
+$$WAYTYPE-INFO$$
+
+@@WAYTYPE-ONEWAY@@ One-way segments
+@@WAYTYPE-CYCLE-BOTH-WAYS@@ Cycle-both-way segments
+@@WAYTYPE-ROUNDABOUT@@ Roundabout segments
@@HIGHWAY-BUTTON@@ Display Highway Segments
$$HIGHWAY-INFO$$
diff -Nru routino-2.7/web/translations/translation.fr.txt routino-2.7.2/web/translations/translation.fr.txt
--- routino-2.7/web/translations/translation.fr.txt 2014-03-08 14:33:16.000000000 +0100
+++ routino-2.7.2/web/translations/translation.fr.txt 2014-05-17 15:57:31.000000000 +0200
@@ -1,14 +1,98 @@
#
-# French language web-page translation phrases
+# French language translation phrases
#
-@@LANGUAGE@@ Francais
-@@LANGUAGE-WEBPAGE@@ Francais
+#
+# Router output XML definition
+#
+
+%%copyright_creator_string%% Créateur
+%%copyright_source_string%% Source
+%%copyright_source_text%% Basé sur les données OpenStreetMap de http://www.openstreetmap.org/
+%%copyright_license_string%% License
+
+%%turn_-4%% demi-tour à gauche
+%%turn_-3%% Très à gauche
+%%turn_-2%% à gauche
+%%turn_-1%% Légèrement à gauche
+%%turn_0%% Tout droit
+%%turn_1%% légèrement à droite
+%%turn_2%% à droite
+%%turn_3%% très à droite
+%%turn_4%% demi-tour à droite
+
+%%heading_-4%% Sud
+%%heading_-3%% Dud-Ouest
+%%heading_-2%% Ouest
+%%heading_-1%% Nord-Ouest
+%%heading_0%% Nord
+%%heading_1%% Nord-Est
+%%heading_2%% Est
+%%heading_3%% Sud-Est
+%%heading_4%% Sud
+
+%%ordinal_1%% Premier
+%%ordinal_2%% Second
+%%ordinal_3%% Troisième
+%%ordinal_4%% Quatrième
+%%ordinal_5%% Cinquième
+%%ordinal_6%% Sixième
+%%ordinal_7%% Septième
+%%ordinal_8%% huitième
+%%ordinal_9%% Neuvième
+%%ordinal_10%% Dixième
+
+%%highway_motorway%% autoroute
+%%highway_trunk%% route de jonction
+%%highway_primary%% route nationale
+%%highway_secondary%% route départementale
+%%highway_tertiary%% route locale
+%%highway_unclassified%% route non classifiée
+%%highway_residential%% rue résidentielle
+%%highway_service%% rue de service
+%%highway_track%% chemin
+%%highway_cycleway%% voie cyclable
+%%highway_path%% sentier
+%%highway_steps%% escalier
+%%highway_ferry%% ferry
+
+%%route_shortest%% le plus court
+%%route_quickest%% le plus rapide
+
+%%output-html_waypoint_waypoint%% Etape
+%%output-html_waypoint_junction%% Croisement
+%%output-html_waypoint_roundabout%% rond-point
+%%output-html_title%% Itinéraire %s
+%%output-html_start_string%% Débute
+%%output-html_start_text%% à %s, direction %s
+%%output-html_node_string%% à
+%%output-html_node_text%% %s, aller %s direction %s
+%%output-html_rbnode_string%% Quitter
+%%output-html_rbnode_text%% %s, prendre le %s sortir direction %s
+%%output-html_segment_string%% Suivre
+%%output-html_segment_text%% %s pendant %.3f km, %.1f min
+%%output-html_stop_string%% S'arrêter
+%%output-html_stop_text%% à %s
+%%output-html_total_string%% Total
+%%output-html_total_text%% %.1f km, %.0f minutes
+
+%%output-gpx_waypoint_start%% DEBUT
+%%output-gpx_waypoint_inter%% INTER
+%%output-gpx_waypoint_trip%% POINT
+%%output-gpx_waypoint_finish%% FINAL
+
+%%output-gpx_desc%% Itinéraire %s entre les étapes 'début' et 'fin'
+%%output-gpx_name%% Itinéraire %s
+%%output-gpx_step%% %s sur '%s' pendant %.3f km, %.1f min
+%%output-gpx_final%% Trajet total %.1f km, %.0f minutes
#
# Router (and some shared) translations
#
+@@LANGUAGE@@ Francais
+@@LANGUAGE-WEBPAGE@@ Francais
+
@@ROUTER-TITLE@@ Calculateur d'itinéraire pour OpenStreetMap
@@OPTION-TAB@@ Options
@@ -22,7 +106,6 @@
@@ROUTINO-ROUTER@@ Itinéraires pour Openstreetmap Routino
@@ROUTINO-WEBSITE@@ site web Routino
-
@@DOCUMENTATION@@ Documentation
@@LANGUAGE-BOX@@ Langue
@@ -56,10 +139,10 @@
@@WAYPOINT-CENTRE2@@ Centrer cette étape sur la carte
@@WAYPOINT-DOWN@@ Placer cette étape après
@@WAYPOINT-REMOVE@@ supprimer cette étape
-@@WAYPOINT-REVERSE-BUTTON@@ Inverser l'ordre
@@WAYPOINT-REVERSE@@ Inverser l'ordre des étapes
-@@WAYPOINT-LOOP-BUTTON@@ Faire une boucle
+@@WAYPOINT-REVERSE-BUTTON@@ Inverser l'ordre
@@WAYPOINT-LOOP@@ Ajouter une nouvelle étape pour faire une boucle
+@@WAYPOINT-LOOP-BUTTON@@ Faire une boucle
@@TRANSPORT-FOOT@@ À pied
@@TRANSPORT-HORSE@@ À cheval
@@ -145,11 +228,11 @@
<b>Aide simplifiée</b>
<br>
Cliquer sur les icones de balises (ci-dessus) pour les placer sur la carte (droite). Puis
-les déplacer à la position choisie. Il sera sûrement plus facile de zoomer sur la carte
+les déplacer à la position choisie. Il sera sûrement plus facile de zoomer sur la carte
avant de placer les balises. Autre solution, taper la latitude et
la longitude dans les cases ci-dessus.
<p>
-Selectionner le mode de déplacement, les types de voies autorisées, les limitations de vitesse,
+Selectionner le mode de déplacement, les types de voies autorisées, les limitations de vitesse,
les propriétés des voies et les autres restrictions dans les options ci-dessus.
Selectionner "Le plus court" ou "Le plus rapide" pour calculer l'itinéraire et le visualiser
sur la carte.
@@ -169,7 +252,7 @@
<p>
<b>Préferences des voies</b>
<br>
-La préférence de voies est définie par un pourcentage et des itinéraires sont choisis
+La préférence de voies est définie par un pourcentage et des itinéraires sont choisis
qui essaient de suivre les voies préferrées.
Par exemple, si une voie "Primaire" a une préférence de "110%" et une voie "Secondaire"
une préférence de "100%", alors cela signifie qu'un itinéraire sur une voie primaire
@@ -185,8 +268,8 @@
La préférence de propriété est définie par un pourcentage et des itinéraires sont choisis
qui essaient de suivre les voies ayant cette propriété préférée.
Par exemple, si une voie goudronnée a une préférence de "75%", alors cela signifie que
-une voie non goudronnée obtient automatiquement une préférence de "25%" ce qui fait que
-un itinéraire sur une voie goudronnée peut avoir 3 fois la longueur d'une non goudronnée
+une voie non goudronnée obtient automatiquement une préférence de "25%" ce qui fait que
+un itinéraire sur une voie goudronnée peut avoir 3 fois la longueur d'une non goudronnée
et être sélectionnée.
<p>
<b>Autres restrictions</b>
@@ -207,14 +290,14 @@
<br>
Si le calculateur aboutie à une erreur, la cause la plus probable est que
il n'est pas possible de trouver un itinéraire entre les points sélectionnés.
-Por permettre de trouver un itinéraire, déplacer une ou des balises
+Por permettre de trouver un itinéraire, déplacer une ou des balises
ou changer les options de recherche.
<p>
<b>Formats d'affichage</b>
<br>
<dl>
<dt>Instructions HTML
- <dd>une description de l'itinéraire à prendre
+ <dd>une description de l'itinéraire à prendre
à chaque intersection importante.
<dt>Fichier chemin GPX
<dd>La même information qui est affichée sur la carte avec des points
@@ -223,7 +306,7 @@
<dd>La même information qui est affichée en texte pour l'itinéraire
avec une étape pour chaque intersection importante.
<dt>Fichier texte complet
- <dd>Une liste de tous les noeuds traversés ainsi que la distance
+ <dd>Une liste de tous les noeuds traversés ainsi que la distance
entre eux et la distance cumulée pour chaque étape de l'itinéraire.
<dt>Fichier texte
<dd>La même information qui est affichée en texte pour l'itinéraire.
@@ -238,3 +321,4 @@
#
# Multi-line descriptive translations (visualiser)
#
+
diff -Nru routino-2.7/web/translations/translation.nl.txt routino-2.7.2/web/translations/translation.nl.txt
--- routino-2.7/web/translations/translation.nl.txt 2014-03-08 13:14:48.000000000 +0100
+++ routino-2.7.2/web/translations/translation.nl.txt 2014-05-17 15:57:33.000000000 +0200
@@ -1,14 +1,98 @@
#
-# Dutch language web-page translation phrases
+# Dutch language translation phrases
#
-@@LANGUAGE@@ Nederlands
-@@LANGUAGE-WEBPAGE@@ Nederlandse web pagina
+#
+# Router output XML definition
+#
+
+%%copyright_creator_string%% Creator
+%%copyright_source_string%% Source
+%%copyright_source_text%% Gebouwd op OpenStreetMap data van http://www.openstreetmap.org/
+%%copyright_license_string%% License
+
+%%turn_-4%% Haarspeld naar links
+%%turn_-3%% Scherp links
+%%turn_-2%% Links
+%%turn_-1%% Half links
+%%turn_0%% Rechtdoor
+%%turn_1%% Half rechts
+%%turn_2%% Rechts
+%%turn_3%% Scherp rechts
+%%turn_4%% Haarspeld naar rechts
+
+%%heading_-4%% Zuid
+%%heading_-3%% Zuid-West
+%%heading_-2%% West
+%%heading_-1%% Noord-West
+%%heading_0%% Noord
+%%heading_1%% Noord-Oost
+%%heading_2%% Oost
+%%heading_3%% Zuid-Oost
+%%heading_4%% Zuid
+
+%%ordinal_1%% Eerste
+%%ordinal_2%% Tweede
+%%ordinal_3%% Derde
+%%ordinal_4%% Vierde
+%%ordinal_5%% Vijfde
+%%ordinal_6%% Zesde
+%%ordinal_7%% Zevende
+%%ordinal_8%% Achtste
+%%ordinal_9%% Negende
+%%ordinal_10%% Tiende
+
+%%highway_motorway%% Autostrade
+%%highway_trunk%% Autoweg
+%%highway_primary%% Provinciale weg
+%%highway_secondary%% Nationale weg
+%%highway_tertiary%% Doorgangsweg
+%%highway_unclassified%% Niet geclassificeerd
+%%highway_residential%% Woongebied
+%%highway_service%% Toegangsweg
+%%highway_track%% Veldweg
+%%highway_cycleway%% Fietspad
+%%highway_path%% Pad
+%%highway_steps%% Trap
+%%highway_ferry%% Veerboot
+
+%%route_shortest%% Kortste
+%%route_quickest%% Snelste
+
+%%output-html_waypoint_waypoint%% Punt
+%%output-html_waypoint_junction%% de splitsing
+%%output-html_waypoint_roundabout%% rotonde
+%%output-html_title%% %s Route
+%%output-html_start_string%% Start
+%%output-html_start_text%% Bij %s neemt u de richting %s
+%%output-html_node_string%% Bij
+%%output-html_node_text%% Bij %s gaat u %s richting %s
+%%output-html_rbnode_string%% Leave
+%%output-html_rbnode_text%% Aan de %s, neem de %s afslag richting %s
+%%output-html_segment_string%% Volg
+%%output-html_segment_text%% Volgt u de %s voor %.3f km %.1f min
+%%output-html_stop_string%% Stop
+%%output-html_stop_text%% U bent bij %s aangekomen
+%%output-html_total_string%% Totaal
+%%output-html_total_text%% %.1f km, %.0f minuten
+
+%%output-gpx_waypoint_start%% START
+%%output-gpx_waypoint_inter%% INTER
+%%output-gpx_waypoint_trip%% TRIP
+%%output-gpx_waypoint_finish%% FINISH
+
+%%output-gpx_desc%% %s Route tussen 'Start' und 'Finish'
+%%output-gpx_name%% %s Route
+%%output-gpx_step%% %s op '%s' voor %.3f km, %.1f min
+%%output-gpx_final%% Totaal trip %.1f km, %.0f minuten
#
# Router (and some shared) translations
#
+@@LANGUAGE@@ Nederlands
+@@LANGUAGE-WEBPAGE@@ Nederlandse web pagina
+
@@OPTION-TAB@@ Opties
@@RESULTS-TAB@@ Resultaten
@@ -111,12 +195,12 @@
<b>Quick Start</b>
<br>
Click op marker-icoontje (Waypoints) om ze op de map te plaatsen (rechts).
-Sleep ze vervolgens naar de gewenste positie.
-Het is best om eerst naar straat niveau te zoomen op de kaart.
+Sleep ze vervolgens naar de gewenste positie.
+Het is best om eerst naar straat niveau te zoomen op de kaart.
Selecteer het transport type, toegestane weg-types,
snelheidslimieten, wegeigenschappen en andere restricties uit de
opties.
-Selecteer "Kortste" of "Snelste" om de route te berekenen en te tekenen op de map.
+Selecteer "Kortste" of "Snelste" om de route te berekenen en te tekenen op de map.
<p>
<b>Coordinaten (Waypoints)</b>
<br>
@@ -133,7 +217,7 @@
<p>
<b>Voorkeur Wegtype</b>
<br>
-De voorkeur voor een bepaald type weg wordt uitgedrukt in een percentage.
+De voorkeur voor een bepaald type weg wordt uitgedrukt in een percentage.
Bijvoorbeeld wanneer u het Transport Type "Fiets" kiest, dan zal er
voor Autostrade 0% staan, en voor Fietspad 100%.
Wanneer u Autowegen, Nationale wegen wil vermijden of beperken bij
@@ -204,3 +288,4 @@
#
# Multi-line descriptive translations (visualiser)
#
+
diff -Nru routino-2.7/web/translations/translation.ru.txt routino-2.7.2/web/translations/translation.ru.txt
--- routino-2.7/web/translations/translation.ru.txt 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/web/translations/translation.ru.txt 2014-05-21 18:48:29.000000000 +0200
@@ -0,0 +1,168 @@
+#
+# Russian language translation phrases
+#
+
+#
+# Router output XML definition
+#
+
+%%copyright_creator_string%% Автор
+%%copyright_source_string%% Источник
+%%copyright_source_text%% Использованы данные OpenStreetMap http://www.openstreetmap.org/
+%%copyright_license_string%% Лицензия
+
+%%turn_-4%% очень крутой поворот налево
+%%turn_-3%% крутой поворот налево
+%%turn_-2%% налево
+%%turn_-1%% плавно налево
+%%turn_0%% прямо
+%%turn_1%% плавно направо
+%%turn_2%% направо
+%%turn_3%% крутой поворот направо
+%%turn_4%% очень крутой поворот направо
+
+%%heading_-4%% юг
+%%heading_-3%% юго-запад
+%%heading_-2%% запад
+%%heading_-1%% северо-запад
+%%heading_0%% север
+%%heading_1%% северо-восток
+%%heading_2%% восток
+%%heading_3%% юго-восток
+%%heading_4%% юг
+
+%%ordinal_1%% Первый
+%%ordinal_2%% Второй
+%%ordinal_3%% Третий
+%%ordinal_4%% Четвертый
+%%ordinal_5%% Пятый
+%%ordinal_6%% Шестой
+%%ordinal_7%% Седьмой
+%%ordinal_8%% Восьмой
+%%ordinal_9%% Девятый
+%%ordinal_10%% Десятый
+
+%%highway_motorway%% автомагистраль
+%%highway_trunk%% международная трасса
+%%highway_primary%% дорога регионального значения
+%%highway_secondary%% дорога областного значения
+%%highway_tertiary%% дорога районного значения
+%%highway_unclassified%% дорога местного значения
+%%highway_residential%% улица
+%%highway_service%% проезд
+%%highway_track%% дорога с/х назначения
+%%highway_cycleway%% велодорожка
+%%highway_path%% тропинка
+%%highway_steps%% лестница
+%%highway_ferry%% паром
+
+%%route_shortest%% Короткий
+%%route_quickest%% Быстрый
+
+%%output-html_waypoint_waypoint%% путевая точка
+%%output-html_waypoint_junction%% перекрестке
+%%output-html_title%% %s маршрут
+%%output-html_start_string%% Старт
+%%output-html_start_text%% %s, на %s
+%%output-html_node_string%% на
+%%output-html_node_text%% %s, %s, на %s
+%%output-html_rbnode_string%% Покинуть
+%%output-html_segment_string%% Следуйте
+%%output-html_segment_text%% по %s %.3f км, %.1f мин
+%%output-html_stop_string%% Стоп
+%%output-html_stop_text%% %s
+%%output-html_total_string%% Всего
+%%output-html_total_text%% %.1f км, %.0f минут
+
+%%output-gpx_waypoint_start%% Старт
+%%output-gpx_waypoint_inter%% INTER
+%%output-gpx_waypoint_trip%% TRIP
+%%output-gpx_waypoint_finish%% Финиш
+
+%%output-gpx_desc%% %s маршрут от 'Старта' до 'Финиша'
+%%output-gpx_name%% %s маршрут
+%%output-gpx_step%% на %s по '%s' %.3f км, %.1f мин
+%%output-gpx_final%% Всего - %.1f км, продолжительность - %.0f минут
+
+#
+# Router (and some shared) translations
+#
+
+@@LANGUAGE@@ Русский
+@@LANGUAGE-WEBPAGE@@ Русский
+
+@@OPTION-TAB-HELP@@ Задать настройки маршрутизации
+
+@@DOCUMENTATION@@ Документация
+
+@@LANGUAGE-BOX@@ Язык
+@@TRANSPORT-TYPE-BOX@@ Тип транспорта
+@@SPEED-LIMITS-BOX@@ Ограничения скорости
+@@OTHER-RESTRICTIONS-BOX@@ Другие ограничения
+@@HELP-BOX@@ Помощь
+
+@@STATUS-BOX@@ Статус
+@@SHORTEST-ROUTE@@ Кратчайший маршрут
+@@QUICKEST-ROUTE@@ Быстрейший маршрут
+
+@@TRANSPORT-HORSE@@ Лошадь
+@@TRANSPORT-WHEELCHAIR@@ Инвалидное кресло
+@@TRANSPORT-BICYCLE@@ Велосипед
+@@TRANSPORT-MOPED@@ Мопед
+@@TRANSPORT-MOTORCYCLE@@ Мотоцикл
+@@TRANSPORT-GOODS@@ Товары
+
+@@HIGHWAY-MOTORWAY@@ Автомагистраль
+
+@@PROPERTY-BRIDGE@@ Мост
+@@PROPERTY-TUNNEL@@ Туннель
+@@PROPERTY-WALKINGROUTE@@ Пеший маршрут
+@@PROPERTY-BICYCLEROUTE@@ Велодорожка
+
+@@RESTRICT-ONEWAY@@ Односторонняя улица
+@@RESTRICT-WEIGHT@@ Вес
+@@RESTRICT-HEIGHT@@ Высота
+@@RESTRICT-WIDTH@@ Ширина
+@@RESTRICT-LENGTH@@ Длина
+
+@@FIND-SHORTEST-ROUTE@@ Найти кратчайший маршрут
+@@FIND-QUICKEST-ROUTE@@ Найти быстрейший маршут
+
+@@TILES@@ Тайлы
+
+#
+# Visualiser specific translations
+#
+
+@@INSTRUCTIONS-BOX@@ Инструкции
+
+@@NO-DATA-DISPLAYED@@ Нет данных для отображения
+
+@@VISUALISER-NUM-NODES@@ Обработано # нод
+@@VISUALISER-NUM-TURNS@@ Обработано # ограничений поворотов
+
+@@TURNS-BUTTON@@ Показывать ограничения поворотов
+
+@@SPEED-BUTTON@@ Показывать ограничения скорости
+
+@@LIMIT-CHANGE@@ Изменить ограничения
+@@SPEED-LIMIT-80@@ Ограничение скорости 80 км/ч
+
+@@WEIGHT-BUTTON@@ Показывать ограничения по весу
+
+@@WEIGHT-LIMIT-8@@ Ограничение веса 8 тонн
+
+@@HEIGHT-BUTTON@@ Показывать ограничение по высоте
+
+@@HEIGHT-LIMIT-4@@ Ограничение высоты 4.0 метра
+
+@@WIDTH-BUTTON@@ Показывать ограничение ширины
+
+#
+# Multi-line descriptive translations (router)
+#
+
+#
+# Multi-line descriptive translations (visualiser)
+#
+
diff -Nru routino-2.7/web/translations/translations-body.xml routino-2.7.2/web/translations/translations-body.xml
--- routino-2.7/web/translations/translations-body.xml 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/web/translations/translations-body.xml 2014-05-17 15:56:35.000000000 +0200
@@ -0,0 +1,93 @@
+ <language lang="~~lang~~">
+
+ <!-- Copyright of the data being routed, not of this file -->
+ <copyright>
+ <creator string="%%copyright_creator_string%%" text="Routino - http://www.routino.org/" />
+ <source string="%%copyright_source_string%%" text="%%copyright_source_text%%" />
+ <license string="%%copyright_license_string%%" text="http://www.openstreetmap.org/copyright" />
+ </copyright>
+
+ <!-- Turn directions, 0 = ahead, -2 = left, +/-4 = behind, +2 = right -->
+ <turn direction="-4" string="%%turn_-4%%" />
+ <turn direction="-3" string="%%turn_-3%%" />
+ <turn direction="-2" string="%%turn_-2%%" />
+ <turn direction="-1" string="%%turn_-1%%" />
+ <turn direction="0" string="%%turn_0%%" />
+ <turn direction="1" string="%%turn_1%%" />
+ <turn direction="2" string="%%turn_2%%" />
+ <turn direction="3" string="%%turn_3%%" />
+ <turn direction="4" string="%%turn_4%%" />
+
+ <!-- Heading directions, 0 = North, -2 = West, +/-4 = South, +2 = East -->
+ <heading direction="-4" string="%%heading_-4%%" />
+ <heading direction="-3" string="%%heading_-3%%" />
+ <heading direction="-2" string="%%heading_-2%%" />
+ <heading direction="-1" string="%%heading_-1%%" />
+ <heading direction="0" string="%%heading_0%%" />
+ <heading direction="1" string="%%heading_1%%" />
+ <heading direction="2" string="%%heading_2%%" />
+ <heading direction="3" string="%%heading_3%%" />
+ <heading direction="4" string="%%heading_4%%" />
+
+ <!-- Ordinals, 1 = first, 2 = second ... -->
+ <ordinal number="1" string="%%ordinal_1%%" />
+ <ordinal number="2" string="%%ordinal_2%%" />
+ <ordinal number="3" string="%%ordinal_3%%" />
+ <ordinal number="4" string="%%ordinal_4%%" />
+ <ordinal number="5" string="%%ordinal_5%%" />
+ <ordinal number="6" string="%%ordinal_6%%" />
+ <ordinal number="7" string="%%ordinal_7%%" />
+ <ordinal number="8" string="%%ordinal_8%%" />
+ <ordinal number="9" string="%%ordinal_9%%" />
+ <ordinal number="10" string="%%ordinal_10%%" />
+
+ <!-- Highway names -->
+ <highway type="motorway" string="%%highway_motorway%%" />
+ <highway type="trunk" string="%%highway_trunk%%" />
+ <highway type="primary" string="%%highway_primary%%" />
+ <highway type="secondary" string="%%highway_secondary%%" />
+ <highway type="tertiary" string="%%highway_tertiary%%" />
+ <highway type="unclassified" string="%%highway_unclassified%%" />
+ <highway type="residential" string="%%highway_residential%%" />
+ <highway type="service" string="%%highway_service%%" />
+ <highway type="track" string="%%highway_track%%" />
+ <highway type="cycleway" string="%%highway_cycleway%%" />
+ <highway type="path" string="%%highway_path%%" />
+ <highway type="steps" string="%%highway_steps%%" />
+ <highway type="ferry" string="%%highway_ferry%%" />
+
+ <!-- The type of route -->
+ <route type="shortest" string="%%route_shortest%%" /> <!-- For the description and route name -->
+ <route type="quickest" string="%%route_quickest%%" /> <!-- For the description and route name -->
+
+ <!-- HTML output -->
+ <output-html>
+ <waypoint type="waypoint" string="%%output-html_waypoint_waypoint%%" /> <!-- For the chosen waypoints -->
+ <waypoint type="junction" string="%%output-html_waypoint_junction%%" /> <!-- For the interesting junctions -->
+ <waypoint type="roundabout" string="%%output-html_waypoint_roundabout%%" /> <!-- For roundabouts -->
+
+ <title text="%%output-html_title%%" /> <!-- %s = [shortest|quickest] -->
+
+ <start string="%%output-html_start_string%%" text="%%output-html_start_text%%" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [heading] -->
+ <node string="%%output-html_node_string%%" text="%%output-html_node_text%%" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [turn], 3rd %s = [heading] -->
+ <rbnode string="%%output-html_rbnode_string%%" text="%%output-html_rbnode_text%%" /> <!-- 1st %s = [roundabout], 2nd %s = [first|second|...], 3rd %s = [heading] -->
+ <segment string="%%output-html_segment_string%%" text="%%output-html_segment_text%%" /> <!-- 1st %s = street name -->
+ <stop string="%%output-html_stop_string%%" text="%%output-html_stop_text%%" /> <!-- 1st %s = [waypoint|junction] -->
+ <total string="%%output-html_total_string%%" text="%%output-html_total_text%%" />
+ </output-html>
+
+ <!-- GPX output -->
+ <output-gpx>
+ <waypoint type="start" string="%%output-gpx_waypoint_start%%" /> <!-- For the first route waypoint -->
+ <waypoint type="inter" string="%%output-gpx_waypoint_inter%%" /> <!-- For the intermediate route waypoints -->
+ <waypoint type="trip" string="%%output-gpx_waypoint_trip%%" /> <!-- For the other route points -->
+ <waypoint type="finish" string="%%output-gpx_waypoint_finish%%"/> <!-- For the last route waypoint -->
+
+ <desc text="%%output-gpx_desc%%" /> <!-- %s = [shortest|quickest] -->
+ <name text="%%output-gpx_name%%" /> <!-- %s = [shortest|quickest] -->
+ <step text="%%output-gpx_step%%" /> <!-- 1st %s = [turn], 2nd %s = street name -->
+ <final text="%%output-gpx_final%%" />
+ </output-gpx>
+
+ </language>
+
diff -Nru routino-2.7/web/translations/translations-head.xml routino-2.7.2/web/translations/translations-head.xml
--- routino-2.7/web/translations/translations-head.xml 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/web/translations/translations-head.xml 2014-03-24 19:53:38.000000000 +0100
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- ============================================================
+ An XML format file containing Routino output translations.
+
+ Part of the Routino routing software.
+ ============================================================
+ This file Copyright 2010-2014 Andrew M. Bishop
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ ============================================================ -->
+
+<routino-translations xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://www.routino.org/xml/routino-translations.xsd">
+
diff -Nru routino-2.7/web/translations/translations-tail.xml routino-2.7.2/web/translations/translations-tail.xml
--- routino-2.7/web/translations/translations-tail.xml 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/web/translations/translations-tail.xml 2014-03-24 20:18:38.000000000 +0100
@@ -0,0 +1 @@
+</routino-translations>
diff -Nru routino-2.7/web/translations/visualiser.html routino-2.7.2/web/translations/visualiser.html
--- routino-2.7/web/translations/visualiser.html 2014-03-08 18:27:26.000000000 +0100
+++ routino-2.7.2/web/translations/visualiser.html 2014-04-29 19:54:12.000000000 +0200
@@ -63,7 +63,7 @@
<div class="hideshow_box">
<span class="hideshow_title">@@VISUALISER-BOX@@</span>
- @@VISUALISER-INFO@@
+ $$VISUALISER-INFO$$
<div class="center">
<a target="other" href="http://www.routino.org/">@@ROUTINO-WEBSITE@@</a>
|
@@ -78,11 +78,11 @@
<div id="hideshow_language_div" style="display: none;">
<table>
- $$LANGUAGES-META$$
+ **LANGUAGES-META**
<tr>
- <td><a id="lang_xx_url" href="visualiser.html.xx" title="@@LANGUAGE-WEBPAGE@@">@@LANGUAGE@@</a>
- <td>(XX)
- $$LANGUAGES-META$$
+ <td><a id="lang_~~lang~~_url" href="visualiser.html.~~lang~~" title="@@LANGUAGE-WEBPAGE@@">@@LANGUAGE@@</a>
+ <td>(~~LANG~~)
+ **LANGUAGES-META**
</table>
<a target="translation" href="http://www.routino.org/translations/">Routino Translations</a>
</div>
@@ -90,7 +90,7 @@
<div class="hideshow_box">
<span class="hideshow_title">@@INSTRUCTIONS-BOX@@</span>
- @@VISUALISER-INSTRUCTIONS@@
+ $$VISUALISER-INSTRUCTIONS$$
</div>
<div class="hideshow_box">
@@ -110,8 +110,8 @@
<div id="result_status_super" style="display: none;">
<b>@@VISUALISER-NUM-SUPER@@</b>
</div>
- <div id="result_status_oneway" style="display: none;">
- <b>@@VISUALISER-NUM-ONEWAY@@</b>
+ <div id="result_status_waytype" style="display: none;">
+ <b>@@VISUALISER-NUM-WAYTYPE@@</b>
</div>
<div id="result_status_highway" style="display: none;">
<b>@@VISUALISER-NUM-SEGMENTS@@</b>
@@ -142,7 +142,7 @@
<span id="hideshow_junctions_hide" onclick="hideshow_hide('junctions');" class="hideshow_hide">-</span>
<input type="button" id="junctions" onclick="displayData('junctions');" value="@@JUNCTIONS-BUTTON@@">
<div id="hideshow_junctions_div" style="display: none;">
- @@JUNCTIONS-INFO@@
+ $$JUNCTIONS-INFO$$
<br>
<table>
<tr><td><img src="icons/ball-1.png" alt="1" ><td>@@JUNCTIONS-1@@
@@ -161,16 +161,23 @@
<span id="hideshow_super_hide" onclick="hideshow_hide('super');" class="hideshow_hide">-</span>
<input type="button" id="super" onclick="displayData('super');" value="@@SUPER-BUTTON@@">
<div id="hideshow_super_div" style="display: none;">
- @@SUPER-INFO@@
+ $$SUPER-INFO$$
</div>
</div>
<div class="hideshow_box">
- <span id="hideshow_oneway_show" onclick="hideshow_show('oneway');" class="hideshow_show">+</span>
- <span id="hideshow_oneway_hide" onclick="hideshow_hide('oneway');" class="hideshow_hide">-</span>
- <input type="button" id="oneway" onclick="displayData('oneway');" value="@@ONEWAY-BUTTON@@">
- <div id="hideshow_oneway_div" style="display: none;">
- @@ONEWAY-INFO@@
+ <span id="hideshow_waytype_show" onclick="hideshow_show('waytype');" class="hideshow_show">+</span>
+ <span id="hideshow_waytype_hide" onclick="hideshow_hide('waytype');" class="hideshow_hide">-</span>
+ <input type="button" id="waytype" onclick="displayData('waytype');" value="@@WAYTYPE-BUTTON@@">
+ <div id="hideshow_waytype_div" style="display: none;">
+ $$WAYTYPE-INFO$$
+ <form name="waytypes" id="waytypes" action="#" method="get" onsubmit="return false;">
+ <table>
+ <tr><td>@@WAYTYPE-ONEWAY@@: <td><input name="waytype" type="radio" value="oneway" onchange="displayData('waytype');" checked>
+ <tr><td>@@WAYTYPE-CYCLE-BOTH-WAYS@@:<td><input name="waytype" type="radio" value="cyclebothways" onchange="displayData('waytype');">
+ <tr><td>@@WAYTYPE-ROUNDABOUT@@: <td><input name="waytype" type="radio" value="roundabout" onchange="displayData('waytype');">
+ </table>
+ </form>
</div>
</div>
@@ -179,7 +186,7 @@
<span id="hideshow_highway_hide" onclick="hideshow_hide('highway');" class="hideshow_hide">-</span>
<input type="button" id="highway" onclick="displayData('highway');" value="@@HIGHWAY-BUTTON@@">
<div id="hideshow_highway_div" style="display: none;">
- @@HIGHWAY-INFO@@
+ $$HIGHWAY-INFO$$
<form name="highways" id="highways" action="#" method="get" onsubmit="return false;">
<table>
<tr><td>@@HIGHWAY-MOTORWAY@@: <td><input name="highway" type="radio" value="motorway" onchange="displayData('highway');">
@@ -205,7 +212,7 @@
<span id="hideshow_transport_hide" onclick="hideshow_hide('transport');" class="hideshow_hide">-</span>
<input type="button" id="transport" onclick="displayData('transport');" value="@@TRANSPORT-BUTTON@@">
<div id="hideshow_transport_div" style="display: none;">
- @@TRANSPORT-INFO@@
+ $$TRANSPORT-INFO$$
<form name="transports" id="transports" action="#" method="get" onsubmit="return false;">
<table>
<tr><td>@@TRANSPORT-FOOT@@: <td><input name="transport" type="radio" value="foot" onchange="displayData('transport');">
@@ -228,7 +235,7 @@
<span id="hideshow_barrier_hide" onclick="hideshow_hide('barrier');" class="hideshow_hide">-</span>
<input type="button" id="barrier" onclick="displayData('barrier');" value="@@BARRIER-BUTTON@@">
<div id="hideshow_barrier_div" style="display: none;">
- @@BARRIER-INFO@@
+ $$BARRIER-INFO$$
<form name="barriers" id="barriers" action="#" method="get" onsubmit="return false;">
<table>
<tr><td>@@TRANSPORT-FOOT@@: <td><input name="barrier" type="radio" value="foot" onchange="displayData('barrier');">
@@ -251,7 +258,7 @@
<span id="hideshow_turns_hide" onclick="hideshow_hide('turns');" class="hideshow_hide">-</span>
<input type="button" id="turns" onclick="displayData('turns');" value="@@TURNS-BUTTON@@">
<div id="hideshow_turns_div" style="display: none;">
- @@TURNS-INFO@@
+ $$TURNS-INFO$$
</div>
</div>
@@ -260,7 +267,7 @@
<span id="hideshow_speed_hide" onclick="hideshow_hide('speed');" class="hideshow_hide">-</span>
<input type="button" id="speed" onclick="displayData('speed');" value="@@SPEED-BUTTON@@">
<div id="hideshow_speed_div" style="display: none;">
- @@SPEED-INFO@@
+ $$SPEED-INFO$$
<br>
<table>
<tr><td><img src="icons/ball-1.png" alt="." ><td>@@LIMIT-CHANGE@@
@@ -275,7 +282,7 @@
<span id="hideshow_weight_hide" onclick="hideshow_hide('weight');" class="hideshow_hide">-</span>
<input type="button" id="weight" onclick="displayData('weight');" value="@@WEIGHT-BUTTON@@">
<div id="hideshow_weight_div" style="display: none;">
- @@WEIGHT-INFO@@
+ $$WEIGHT-INFO$$
<br>
<table>
<tr><td><img src="icons/ball-1.png" alt="." ><td>@@LIMIT-CHANGE@@
@@ -290,7 +297,7 @@
<span id="hideshow_height_hide" onclick="hideshow_hide('height');" class="hideshow_hide">-</span>
<input type="button" id="height" onclick="displayData('height');" value="@@HEIGHT-BUTTON@@">
<div id="hideshow_height_div" style="display: none;">
- @@HEIGHT-INFO@@
+ $$HEIGHT-INFO$$
<br>
<table>
<tr><td><img src="icons/ball-1.png" alt="." ><td>@@LIMIT-CHANGE@@
@@ -305,7 +312,7 @@
<span id="hideshow_width_hide" onclick="hideshow_hide('width');" class="hideshow_hide">-</span>
<input type="button" id="width" onclick="displayData('width');" value="@@WIDTH-BUTTON@@">
<div id="hideshow_width_div" style="display: none;">
- @@WIDTH-INFO@@
+ $$WIDTH-INFO$$
<br>
<table>
<tr><td><img src="icons/ball-1.png" alt="." ><td>@@LIMIT-CHANGE@@
@@ -320,7 +327,7 @@
<span id="hideshow_length_hide" onclick="hideshow_hide('length');" class="hideshow_hide">-</span>
<input type="button" id="length" onclick="displayData('length');" value="@@LENGTH-BUTTON@@">
<div id="hideshow_length_div" style="display: none;">
- @@LENGTH-INFO@@
+ $$LENGTH-INFO$$
<br>
<table>
<tr><td><img src="icons/ball-1.png" alt="." ><td>@@LIMIT-CHANGE@@
@@ -335,7 +342,7 @@
<span id="hideshow_property_hide" onclick="hideshow_hide('property');" class="hideshow_hide">-</span>
<input type="button" id="property" onclick="displayData('property');" value="@@PROPERTY-BUTTON@@">
<div id="hideshow_property_div" style="display: none;">
- @@PROPERTY-INFO@@
+ $$PROPERTY-INFO$$
<form name="properties" id="properties" action="#" method="get" onsubmit="return false;">
<table>
<tr><td>@@PROPERTY-PAVED@@: <td><input name="property" type="radio" value="paved" onchange="displayData('property');" checked>
@@ -344,7 +351,6 @@
<tr><td>@@PROPERTY-TUNNEL@@: <td><input name="property" type="radio" value="tunnel" onchange="displayData('property');">
<tr><td>@@PROPERTY-WALKINGROUTE@@: <td><input name="property" type="radio" value="footroute" onchange="displayData('property');">
<tr><td>@@PROPERTY-BICYCLEROUTE@@: <td><input name="property" type="radio" value="bicycleroute" onchange="displayData('property');">
- <tr><td>@@PROPERTY-CYCLE-BOTHWAYS@@:<td><input name="property" type="radio" value="cyclebothways" onchange="displayData('property');">
</table>
</form>
</div>
@@ -355,7 +361,7 @@
<span id="hideshow_errorlogs_hide" onclick="hideshow_hide('errorlogs');" class="hideshow_hide">-</span>
<input type="button" id="errorlogs" onclick="displayData('errorlogs');" value="@@ERROR-LOG-BUTTON@@">
<div id="hideshow_errorlogs_div" style="display: none;">
- @@ERROR-LOG-INFO@@
+ $$ERROR-LOG-INFO$$
</div>
</div>
@@ -376,7 +382,7 @@
<span class="hideshow_title">@@HELP-BOX@@</span>
<div id="hideshow_help_options_div">
<div class="scrollable">
- @@VISUALISER-HELP@@
+ $$VISUALISER-HELP$$
</div>
</div>
</div>
@@ -385,7 +391,7 @@
<div class="tab_content" id="tab_router_div" style="display: none;">
<div class="hideshow_box">
<span class="hideshow_title">@@ROUTER-BOX@@</span>
- @@VISUALISER-ROUTER-INFO@@
+ $$VISUALISER-ROUTER-INFO$$
<br>
<a id="router_url" href="router.html" target="router">@@MAP-VIEW-LINK@@</a>
</div>
diff -Nru routino-2.7/web/www/routino/router.css routino-2.7.2/web/www/routino/router.css
--- routino-2.7/web/www/routino/router.css 2013-12-31 12:05:52.000000000 +0100
+++ routino-2.7.2/web/www/routino/router.css 2014-04-12 13:10:52.000000000 +0200
@@ -3,7 +3,7 @@
//
// Part of the Routino routing software.
//
-// This file Copyright 2008-2013 Andrew M. Bishop
+// This file Copyright 2008-2014 Andrew M. Bishop
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
@@ -125,6 +125,18 @@
text-align: center;
}
+DIV#tab_options_div INPUT#shortest:hover
+{
+ background: #F0F000;
+}
+
+DIV#tab_options_div INPUT[disabled]#shortest
+{
+ border-color: #004000;
+
+ background: #E0F0E0;
+}
+
DIV#tab_options_div INPUT#quickest
{
margin: 3px;
@@ -137,6 +149,18 @@
text-align: center;
}
+DIV#tab_options_div INPUT#quickest:hover
+{
+ background: #F0F000;
+}
+
+DIV#tab_options_div INPUT[disabled]#quickest
+{
+ border-color: #000040;
+
+ background: #E0E0F0;
+}
+
DIV#tab_results_div TABLE
{
border-collapse: collapse;
diff -Nru routino-2.7/web/www/routino/router.html routino-2.7.2/web/www/routino/router.html
--- routino-2.7/web/www/routino/router.html 2014-03-15 12:45:15.000000000 +0100
+++ routino-2.7.2/web/www/routino/router.html 2014-06-05 20:16:22.000000000 +0200
@@ -85,7 +85,7 @@
<td>(EN)
<td><input name="language" type="radio" value="en" onchange="formSetLanguage();" checked>
<tr>
-<td><a id="lang_de_url" href="router.html.de" title="Deutsche Webseite">Deutsche</a>
+<td><a id="lang_de_url" href="router.html.de" title="Deutsche Webseite">Deutsch</a>
<td>(DE)
<td><input name="language" type="radio" value="de" onchange="formSetLanguage();" >
<tr>
@@ -97,7 +97,7 @@
<td>(NL)
<td><input name="language" type="radio" value="nl" onchange="formSetLanguage();" >
<tr>
-<td>
+<td><a id="lang_ru_url" href="router.html.ru" title="Русский">Русский</a>
<td>(RU)
<td><input name="language" type="radio" value="ru" onchange="formSetLanguage();" >
</table>
@@ -252,8 +252,8 @@
<div class="hideshow_box">
<span class="hideshow_title">Find</span>
-<input type="button" title="Find shortest route" id="shortest" value="Shortest Route" onclick="findRoute('shortest');">
-<input type="button" title="Find quickest route" id="quickest" value="Quickest Route" onclick="findRoute('quickest');">
+<input type="button" title="Find shortest route" id="shortest" value="Shortest Route" onclick="findRoute('shortest');" disabled="disabled">
+<input type="button" title="Find quickest route" id="quickest" value="Quickest Route" onclick="findRoute('quickest');" disabled="disabled">
</div>
<div class="hideshow_box">
diff -Nru routino-2.7/web/www/routino/router.html.de routino-2.7.2/web/www/routino/router.html.de
--- routino-2.7/web/www/routino/router.html.de 2014-03-22 17:07:26.000000000 +0100
+++ routino-2.7.2/web/www/routino/router.html.de 2014-06-05 20:16:23.000000000 +0200
@@ -6,7 +6,7 @@
<meta name="keywords" content="openstreetmap routing route planner">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=no">
-<title>Routino : Routen Planer für OpenStreetMap Daten</title>
+<title>Routino : Routen Planer für OpenStreetMap Daten</title>
<!--
Routino router web page.
@@ -65,11 +65,11 @@
<div class="hideshow_box">
<span class="hideshow_title">Routino OpenStreetMap Router</span>
Diese Website erlaubt Routing mit den Daten, die OpenStreetMap gesammelt hat.
-Wähle Start- und Endpunkt (klicke auf die Marker-Symbole unten), wähle die Routing-Vorgaben und dann finde den Weg.
+Wähle Start- und Endpunkt (klicke auf die Marker-Symbole unten), wähle die Routing-Vorgaben und dann finde den Weg.
<div class="center">
<a target="other" href="http://www.routino.org/">Routino Website</a>
|
-<a target="other" href="../documentation/">Dokumentation</a>
+<a target="other" href="documentation/">Dokumentation</a>
</div>
</div>
@@ -85,7 +85,7 @@
<td>(EN)
<td><input name="language" type="radio" value="en" onchange="formSetLanguage();" >
<tr>
-<td><a id="lang_de_url" href="router.html.de" title="Deutsche Webseite">Deutsche</a>
+<td><a id="lang_de_url" href="router.html.de" title="Deutsche Webseite">Deutsch</a>
<td>(DE)
<td><input name="language" type="radio" value="de" onchange="formSetLanguage();" checked>
<tr>
@@ -97,11 +97,11 @@
<td>(NL)
<td><input name="language" type="radio" value="nl" onchange="formSetLanguage();" >
<tr>
-<td>
+<td><a id="lang_ru_url" href="router.html.ru" title="Русский">Русский</a>
<td>(RU)
<td><input name="language" type="radio" value="ru" onchange="formSetLanguage();" >
</table>
-<a target="translation" href="../translations/">Routino Translations</a>
+<a target="translation" href="http://www.routino.org/translations/">Routino Translations</a>
</div>
</div>
@@ -128,23 +128,23 @@
<input name="searchXXX" type="text" size="18" title="Waypoint XXX Location"> <!-- uses Javascript event for triggering -->
</span>
<td>
-<img alt="?" src="icons/waypoint-search.png" title="Search for location" onmousedown="markerSearch(XXX);" >
+<img alt="?" src="icons/waypoint-search.png" title="Nach Ort suchen" onmousedown="markerSearch(XXX);" >
<img alt="G" src="icons/waypoint-locate.png" title="Get current location" onmousedown="markerLocate(XXX);" >
-<img alt="O" src="icons/waypoint-recentre.png" title="Centre map on this waypoint" onmousedown="markerRecentre(XXX);">
-<img alt="^" src="icons/waypoint-up.png" title="Move this waypoint up" onmousedown="markerMoveUp(XXX);" >
-<img alt="+" src="icons/waypoint-add.png" title="Add waypoint after this one" onmousedown="markerAddAfter(XXX);">
+<img alt="O" src="icons/waypoint-recentre.png" title="Karte auf Wegpunkt zentrieren" onmousedown="markerRecentre(XXX);">
+<img alt="^" src="icons/waypoint-up.png" title="wegpunkt nach oben verschieben" onmousedown="markerMoveUp(XXX);" >
+<img alt="+" src="icons/waypoint-add.png" title="Neuer Wegpunkt nach diesem" onmousedown="markerAddAfter(XXX);">
<br>
-<img alt="#" src="icons/waypoint-coords.png" title="Coordinates for location" onmousedown="markerCoords(XXX);" >
+<img alt="#" src="icons/waypoint-coords.png" title="Koordinaten des Orts" onmousedown="markerCoords(XXX);" >
<img alt="~" src="icons/waypoint-home.png" title="Toggle as home location" onmousedown="markerHome(XXX);" >
-<img alt="o" src="icons/waypoint-centre.png" title="Centre this waypoint on map" onmousedown="markerCentre(XXX);" >
-<img alt="v" src="icons/waypoint-down.png" title="Move this waypoint down" onmousedown="markerMoveDown(XXX);">
-<img alt="-" src="icons/waypoint-remove.png" title="Remove this waypoint" onmousedown="markerRemove(XXX);" >
+<img alt="o" src="icons/waypoint-centre.png" title="Wegpunkt auf Karte zentrieren" onmousedown="markerCentre(XXX);" >
+<img alt="v" src="icons/waypoint-down.png" title="Wegpunkt nach unten verschieben" onmousedown="markerMoveDown(XXX);">
+<img alt="-" src="icons/waypoint-remove.png" title="Wegpunkt entfernen" onmousedown="markerRemove(XXX);" >
<tr id="searchresultsXXX" style="display: none;">
<td colspan="3">
<!-- The waypoints are inserted by the JavaScript, see the "maxmarkers" variable in router.js. -->
<tr>
<td colspan="3" class="center">
-<input type="button" title="Rückwärts" value="Rückwärts" onmousedown="markersReverse();">
+<input type="button" title="Rückwärts" value="Rückwärts" onmousedown="markersReverse();">
<input type="button" title="Add a new waypoint to make a loop" value="Close loop" onmousedown="markersLoop();">
</table>
</div>
@@ -156,7 +156,7 @@
<span class="hideshow_title">Fortbewegungsart</span>
<div id="hideshow_transport_div">
<table>
-<tr><td>Fußgänger: <td><input name="transport" type="radio" value="foot" onchange="formSetTransport('foot' );">
+<tr><td>Fußgänger: <td><input name="transport" type="radio" value="foot" onchange="formSetTransport('foot' );">
<tr><td>Reiter: <td><input name="transport" type="radio" value="horse" onchange="formSetTransport('horse' );">
<tr><td>Rollstuhl:<td><input name="transport" type="radio" value="wheelchair" onchange="formSetTransport('wheelchair');">
<tr><td>Fahrrad: <td><input name="transport" type="radio" value="bicycle" onchange="formSetTransport('bicycle' );">
@@ -177,18 +177,18 @@
<div id="hideshow_highway_div" style="display: none;">
<table>
<tr><td>Autobahn: <td><input name="highway-motorway" type="text" size="3" onchange="formSetHighway('motorway' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('motorway' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('motorway' ,'+');">
-<tr><td>Schnellstraße: <td><input name="highway-trunk" type="text" size="3" onchange="formSetHighway('trunk' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('trunk' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('trunk' ,'+');">
-<tr><td>Bundesstraße: <td><input name="highway-primary" type="text" size="3" onchange="formSetHighway('primary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('primary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('primary' ,'+');">
-<tr><td>Landesstraße: <td><input name="highway-secondary" type="text" size="3" onchange="formSetHighway('secondary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('secondary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('secondary' ,'+');">
-<tr><td>Hauptstraße: <td><input name="highway-tertiary" type="text" size="3" onchange="formSetHighway('tertiary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('tertiary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('tertiary' ,'+');">
-<tr><td>Straße:<td><input name="highway-unclassified" type="text" size="3" onchange="formSetHighway('unclassified','=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('unclassified','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('unclassified','+');">
-<tr><td>Wohnstraße: <td><input name="highway-residential" type="text" size="3" onchange="formSetHighway('residential' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('residential' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('residential' ,'+');">
+<tr><td>Schnellstraße: <td><input name="highway-trunk" type="text" size="3" onchange="formSetHighway('trunk' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('trunk' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('trunk' ,'+');">
+<tr><td>Bundesstraße: <td><input name="highway-primary" type="text" size="3" onchange="formSetHighway('primary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('primary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('primary' ,'+');">
+<tr><td>Landesstraße: <td><input name="highway-secondary" type="text" size="3" onchange="formSetHighway('secondary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('secondary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('secondary' ,'+');">
+<tr><td>Hauptstraße: <td><input name="highway-tertiary" type="text" size="3" onchange="formSetHighway('tertiary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('tertiary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('tertiary' ,'+');">
+<tr><td>Straße:<td><input name="highway-unclassified" type="text" size="3" onchange="formSetHighway('unclassified','=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('unclassified','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('unclassified','+');">
+<tr><td>Wohnstraße: <td><input name="highway-residential" type="text" size="3" onchange="formSetHighway('residential' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('residential' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('residential' ,'+');">
<tr><td>Zufahrtsweg: <td><input name="highway-service" type="text" size="3" onchange="formSetHighway('service' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('service' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('service' ,'+');">
<tr><td>Feld-(Wald-)weg: <td><input name="highway-track" type="text" size="3" onchange="formSetHighway('track' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('track' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('track' ,'+');">
<tr><td>Fahrradweg: <td><input name="highway-cycleway" type="text" size="3" onchange="formSetHighway('cycleway' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('cycleway' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('cycleway' ,'+');">
<tr><td>Weg: <td><input name="highway-path" type="text" size="3" onchange="formSetHighway('path' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('path' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('path' ,'+');">
-<tr><td>Fußweg: <td><input name="highway-steps" type="text" size="3" onchange="formSetHighway('steps' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('steps' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('steps' ,'+');">
-<tr><td>Fähre: <td><input name="highway-ferry" type="text" size="3" onchange="formSetHighway('ferry' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('ferry' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('ferry' ,'+');">
+<tr><td>Fußweg: <td><input name="highway-steps" type="text" size="3" onchange="formSetHighway('steps' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('steps' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('steps' ,'+');">
+<tr><td>Fähre: <td><input name="highway-ferry" type="text" size="3" onchange="formSetHighway('ferry' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('ferry' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('ferry' ,'+');">
</table>
</div>
</div>
@@ -200,18 +200,18 @@
<div id="hideshow_speed_div" style="display: none;">
<table>
<tr><td>Autobahn: <td><input name="speed-motorway" type="text" size="3" onchange="formSetSpeed('motorway' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('motorway' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('motorway' ,'+');">
-<tr><td>Schnellstraße: <td><input name="speed-trunk" type="text" size="3" onchange="formSetSpeed('trunk' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('trunk' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('trunk' ,'+');">
-<tr><td>Bundesstraße: <td><input name="speed-primary" type="text" size="3" onchange="formSetSpeed('primary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('primary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('primary' ,'+');">
-<tr><td>Landesstraße: <td><input name="speed-secondary" type="text" size="3" onchange="formSetSpeed('secondary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('secondary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('secondary' ,'+');">
-<tr><td>Hauptstraße: <td><input name="speed-tertiary" type="text" size="3" onchange="formSetSpeed('tertiary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('tertiary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('tertiary' ,'+');">
-<tr><td>Straße:<td><input name="speed-unclassified" type="text" size="3" onchange="formSetSpeed('unclassified','=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('unclassified','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('unclassified','+');">
-<tr><td>Wohnstraße: <td><input name="speed-residential" type="text" size="3" onchange="formSetSpeed('residential' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('residential' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('residential' ,'+');">
+<tr><td>Schnellstraße: <td><input name="speed-trunk" type="text" size="3" onchange="formSetSpeed('trunk' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('trunk' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('trunk' ,'+');">
+<tr><td>Bundesstraße: <td><input name="speed-primary" type="text" size="3" onchange="formSetSpeed('primary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('primary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('primary' ,'+');">
+<tr><td>Landesstraße: <td><input name="speed-secondary" type="text" size="3" onchange="formSetSpeed('secondary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('secondary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('secondary' ,'+');">
+<tr><td>Hauptstraße: <td><input name="speed-tertiary" type="text" size="3" onchange="formSetSpeed('tertiary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('tertiary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('tertiary' ,'+');">
+<tr><td>Straße:<td><input name="speed-unclassified" type="text" size="3" onchange="formSetSpeed('unclassified','=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('unclassified','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('unclassified','+');">
+<tr><td>Wohnstraße: <td><input name="speed-residential" type="text" size="3" onchange="formSetSpeed('residential' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('residential' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('residential' ,'+');">
<tr><td>Zufahrtsweg: <td><input name="speed-service" type="text" size="3" onchange="formSetSpeed('service' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('service' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('service' ,'+');">
<tr><td>Feld-(Wald-)weg: <td><input name="speed-track" type="text" size="3" onchange="formSetSpeed('track' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('track' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('track' ,'+');">
<tr><td>Fahrradweg: <td><input name="speed-cycleway" type="text" size="3" onchange="formSetSpeed('cycleway' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('cycleway' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('cycleway' ,'+');">
<tr><td>Weg: <td><input name="speed-path" type="text" size="3" onchange="formSetSpeed('path' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('path' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('path' ,'+');">
-<tr><td>Fußweg: <td><input name="speed-steps" type="text" size="3" onchange="formSetSpeed('steps' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('steps' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('steps' ,'+');">
-<tr><td>Fähre: <td><input name="speed-ferry" type="text" size="3" onchange="formSetSpeed('ferry' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('ferry' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('ferry' ,'+');">
+<tr><td>Fußweg: <td><input name="speed-steps" type="text" size="3" onchange="formSetSpeed('steps' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('steps' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('steps' ,'+');">
+<tr><td>Fähre: <td><input name="speed-ferry" type="text" size="3" onchange="formSetSpeed('ferry' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('ferry' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('ferry' ,'+');">
</table>
</div>
</div>
@@ -224,7 +224,7 @@
<table>
<tr><td>befestigt: <td><input name="property-paved" type="text" size="3" onchange="formSetProperty('paved' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('paved' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('paved' ,'+');">
<tr><td>mehrspurig: <td><input name="property-multilane" type="text" size="3" onchange="formSetProperty('multilane' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('multilane' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('multilane' ,'+');">
-<tr><td>Brücken: <td><input name="property-bridge" type="text" size="3" onchange="formSetProperty('bridge' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('bridge' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('bridge' ,'+');">
+<tr><td>Brücken: <td><input name="property-bridge" type="text" size="3" onchange="formSetProperty('bridge' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('bridge' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('bridge' ,'+');">
<tr><td>Tunnel: <td><input name="property-tunnel" type="text" size="3" onchange="formSetProperty('tunnel' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('tunnel' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('tunnel' ,'+');">
<tr><td>Wanderweg:<td><input name="property-footroute" type="text" size="3" onchange="formSetProperty('footroute' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('footroute' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('footroute' ,'+');">
<tr><td>Radweg:<td><input name="property-bicycleroute" type="text" size="3" onchange="formSetProperty('bicycleroute','=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('bicycleroute','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('bicycleroute','+');">
@@ -238,22 +238,22 @@
<span class="hideshow_title">andere Vorgaben</span>
<div id="hideshow_restriction_div" style="display: none;">
<table>
-<tr><td>beachte Einbahnstraßen: <td><input name="restrict-oneway" type="checkbox" onchange="formSetRestriction('oneway');">
+<tr><td>beachte Einbahnstraßen: <td><input name="restrict-oneway" type="checkbox" onchange="formSetRestriction('oneway');">
<tr><td>beachte Abbiegeverbot:<td><input name="restrict-turns" type="checkbox" onchange="formSetRestriction('turns' );">
</table>
<table>
<tr><td>Gewicht:<td><input name="restrict-weight" type="text" size="3" onchange="formSetRestriction('weight','=');"><td>tonnes<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetRestriction('weight','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetRestriction('weight','+');">
-<tr><td>Höhe:<td><input name="restrict-height" type="text" size="3" onchange="formSetRestriction('height','=');"><td>metres<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetRestriction('height','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetRestriction('height','+');">
+<tr><td>Höhe:<td><input name="restrict-height" type="text" size="3" onchange="formSetRestriction('height','=');"><td>metres<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetRestriction('height','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetRestriction('height','+');">
<tr><td>Breite: <td><input name="restrict-width" type="text" size="3" onchange="formSetRestriction('width' ,'=');"><td>metres<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetRestriction('width' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetRestriction('width' ,'+');">
-<tr><td>Länge:<td><input name="restrict-length" type="text" size="3" onchange="formSetRestriction('length','=');"><td>metres<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetRestriction('length','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetRestriction('length','+');">
+<tr><td>Länge:<td><input name="restrict-length" type="text" size="3" onchange="formSetRestriction('length','=');"><td>metres<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetRestriction('length','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetRestriction('length','+');">
</table>
</div>
</div>
<div class="hideshow_box">
<span class="hideshow_title">Suche</span>
-<input type="button" title="Find shortest route" id="shortest" value="kürzester Weg" onclick="findRoute('shortest');">
-<input type="button" title="Find quickest route" id="quickest" value="schnellste Route" onclick="findRoute('quickest');">
+<input type="button" title="Kürzeste Route finden" id="shortest" value="kürzester Weg" onclick="findRoute('shortest');" disabled="disabled">
+<input type="button" title="Schnellste Route finden" id="quickest" value="schnellste Route" onclick="findRoute('quickest');" disabled="disabled">
</div>
<div class="hideshow_box">
@@ -271,49 +271,49 @@
<div class="scrollable">
<b>Schnellanleitung</b>
<br>
-Klicke auf die Marker-Bildchen (oben), um sie in der Mitte der Karte (rechts) zu positionieren. Dann
+Klicke auf die Marker-Bildchen (oben), um sie in der Mitte der Karte (rechts) zu positionieren. Dann
ziehe das Bildchen auf die genaue Position. Das Zoomen der Karte vor der Patzierung ist vermutlich am einfachsten.
-Alternativ kann man die geografische Breite und Länge in den Kästchen eintragen.
+Alternativ kann man die geografische Breite und Länge in den Kästchen eintragen.
<p>
-Wähle die Fortbewegungsart, die Vorgaben zur Wegnutzung, die Geschwindigkeitsvorgaben,
+Wähle die Fortbewegungsart, die Vorgaben zur Wegnutzung, die Geschwindigkeitsvorgaben,
die Vorgaben zur Wegbeschaffenheit und die anderen Vorgaben von den obigen Auswahlfeldern.
-Ein Klick auf "kürzeste" oder "schnellste" ermittelt die entsprechende Verbindung und zeigt sie in der Karte an.
+Ein Klick auf "kürzeste" oder "schnellste" ermittelt die entsprechende Verbindung und zeigt sie in der Karte an.
<p>
<b>Wegpunkte</b>
<br>
Ein Klick auf das Marker-Bildchen (oben) schaltet die Sichbarkeit in der Karte ein bzw. aus.
-Die Berechnung Route erfolgt in der Reihenfolge der Wegpunkte (so gut, wie es für die
-gewählte Fortbewegungsart möglich ist).
+Die Berechnung Route erfolgt in der Reihenfolge der Wegpunkte (so gut, wie es für die
+gewählte Fortbewegungsart möglich ist).
<p>
<b>Fortbewegungsart</b>
<br>
-Die Auswahl der Fortbewegungsart bestimmt die bei der Routenberechnung erlaubten Wegtypen und die
+Die Auswahl der Fortbewegungsart bestimmt die bei der Routenberechnung erlaubten Wegtypen und die
Vorgabeeinstellungen aller anderen Parameter.
<p>
<b>Vorgaben zur Wegnutzung</b>
<br>
Die Vorgaben zur Wegnutzung bestimmen die Priorisierung von Wegarten.
-Wenn z. B. Schnellstraßen mit 110% und Bundesstraßen mit 100% angegeben werden, wird
-bei zwei möglichen Wegwahlen die Schnellstraße solange bevorzugt wird, wie der
-Längen(oder Zeit-)unterschied 10% nicht überschreitet.
+Wenn z. B. Schnellstraßen mit 110% und Bundesstraßen mit 100% angegeben werden, wird
+bei zwei möglichen Wegwahlen die Schnellstraße solange bevorzugt wird, wie der
+Längen(oder Zeit-)unterschied 10% nicht überschreitet.
<p>
<b>Geschwindigkeitsvorgaben</b>
<br>
-Die hier geannten Geschwindigkeiten werden für den jeweiligen Wegtyp finden Anwendung wenn keine
+Die hier geannten Geschwindigkeiten werden für den jeweiligen Wegtyp finden Anwendung wenn keine
andere Geschwindkeitsbegrenzung mit geringerem Wert bekannt ist.
<p>
<b>Vorgaben zur Wegbeschaffenheit</b>
<br>
-Die Vorgaben zur Wegbeschaffenheit werden als Prozentangaben verwendet, um die Verhältnisse
+Die Vorgaben zur Wegbeschaffenheit werden als Prozentangaben verwendet, um die Verhältnisse
der Wegbenutzung zu steuern.
Wenn z. B. befestigte Wege mit 75% angegeben sind, werden unbefestigte automatisch mit 25% angenommen, so
-werden Wege ausgewählt, die mindestens drei mal länger auf befestigten Wegen verlaufen.
+werden Wege ausgewählt, die mindestens drei mal länger auf befestigten Wegen verlaufen.
<p>
<b>andere Vorgaben</b>
<br>
-Die Berücksichtigung von Benutzungs-Begrenzungen durch Gewicht, Höhe, Länge und
-Breite ist möglich. Genauso können Einbahnstraßenbeschräkungen ignoriert werden
-(z. B. als Fußgänger).
+Die Berücksichtigung von Benutzungs-Begrenzungen durch Gewicht, Höhe, Länge und
+Breite ist möglich. Genauso können Einbahnstraßenbeschräkungen ignoriert werden
+(z. B. als Fußgänger).
</div>
</div>
</div>
@@ -327,10 +327,10 @@
<span class="hideshow_title">Status</span>
<div id="result_status">
<div id="result_status_not_run">
-<b><i>Router läuft nicht</i></b>
+<b><i>Router läuft nicht</i></b>
</div>
<div id="result_status_running" style="display: none;">
-<b>Router läuft...</b>
+<b>Router läuft...</b>
</div>
<div id="result_status_complete" style="display: none;">
<b>Routing fertig</b>
@@ -351,7 +351,7 @@
<div class="hideshow_box">
<span id="hideshow_shortest_show" onclick="hideshow_show('shortest');" class="hideshow_show">+</span>
<span id="hideshow_shortest_hide" onclick="hideshow_hide('shortest');" class="hideshow_hide">-</span>
-<span class="hideshow_title">kürzester Weg</span>
+<span class="hideshow_title">kürzester Weg</span>
<div id="shortest_status">
<div id="shortest_status_no_info">
<b><i>keine Information</i></b>
@@ -362,11 +362,11 @@
<div id="hideshow_shortest_div" style="display: none;">
<div id="shortest_links" style="display: none;">
<table>
-<tr><td>HTML: <td><a id="shortest_html" target="shortest_html" href="#">öffne Popup</a>
-<tr><td>GPX Track-Datei: <td><a id="shortest_gpx_track" target="shortest_gpx_track" href="#">öffne Popup</a>
-<tr><td>GPX Routen-Datei: <td><a id="shortest_gpx_route" target="shortest_gpx_route" href="#">öffne Popup</a>
-<tr><td>Volltext-Datei: <td><a id="shortest_text_all" target="shortest_text_all" href="#">öffne Popup</a>
-<tr><td>Text-Datei: <td><a id="shortest_text" target="shortest_text" href="#">öffne Popup</a>
+<tr><td>HTML: <td><a id="shortest_html" target="shortest_html" href="#">öffne Popup</a>
+<tr><td>GPX Track-Datei: <td><a id="shortest_gpx_track" target="shortest_gpx_track" href="#">öffne Popup</a>
+<tr><td>GPX Routen-Datei: <td><a id="shortest_gpx_route" target="shortest_gpx_route" href="#">öffne Popup</a>
+<tr><td>Volltext-Datei: <td><a id="shortest_text_all" target="shortest_text_all" href="#">öffne Popup</a>
+<tr><td>Text-Datei: <td><a id="shortest_text" target="shortest_text" href="#">öffne Popup</a>
</table>
<hr>
</div>
@@ -389,11 +389,11 @@
<div id="hideshow_quickest_div" style="display: none;">
<div id="quickest_links" style="display: none;">
<table>
-<tr><td>HTML: <td><a id="quickest_html" target="quickest_html" href="#">öffne Popup</a>
-<tr><td>GPX Track-Datei: <td><a id="quickest_gpx_track" target="quickest_gpx_track" href="#">öffne Popup</a>
-<tr><td>GPX Routen-Datei: <td><a id="quickest_gpx_route" target="quickest_gpx_route" href="#">öffne Popup</a>
-<tr><td>Volltext-Datei: <td><a id="quickest_text_all" target="quickest_text_all" href="#">öffne Popup</a>
-<tr><td>Text-Datei: <td><a id="quickest_text" target="quickest_text" href="#">öffne Popup</a>
+<tr><td>HTML: <td><a id="quickest_html" target="quickest_html" href="#">öffne Popup</a>
+<tr><td>GPX Track-Datei: <td><a id="quickest_gpx_track" target="quickest_gpx_track" href="#">öffne Popup</a>
+<tr><td>GPX Routen-Datei: <td><a id="quickest_gpx_route" target="quickest_gpx_route" href="#">öffne Popup</a>
+<tr><td>Volltext-Datei: <td><a id="quickest_text_all" target="quickest_text_all" href="#">öffne Popup</a>
+<tr><td>Text-Datei: <td><a id="quickest_text" target="quickest_text" href="#">öffne Popup</a>
</table>
<hr>
</div>
@@ -411,27 +411,27 @@
<b>Schnellanleitung</b>
<br>
Nach der Routenberechnung kann man eine GPX oder eine einfache Textdatei (Kurz- oder Langfassung)
-herunterladen. Ebenso kann man die Routenbeschreibung ansehen und in ausgewälte Bereiche zoomen.
+herunterladen. Ebenso kann man die Routenbeschreibung ansehen und in ausgewälte Bereiche zoomen.
<p>
-<b>Problemlösung</b>
+<b>Problemlösung</b>
<br>
-Wenn der Router einen Fehler meldet liegt es meistens daran, dass kein Weg zwischen den gewälten Punkten unter
-Beachtung der Vorgaben gefunden werden kann. Das Bewegen eines oder mehrere Punkte oder das verändern von
+Wenn der Router einen Fehler meldet liegt es meistens daran, dass kein Weg zwischen den gewälten Punkten unter
+Beachtung der Vorgaben gefunden werden kann. Das Bewegen eines oder mehrere Punkte oder das verändern von
Vorgaben sollte es erlauben eine Route zu finden.
<p>
<b>Ausgabe-Formate</b>
<br>
<dl>
<dt>HTMLs
-<dd>Eine Beschreibung der Route mit Anweisungen für jede wichtige Abzweigung.
+<dd>Eine Beschreibung der Route mit Anweisungen für jede wichtige Abzweigung.
<dt>GPX Track-Datei
-<dd>Die gleichen Informationen, die in der Karte angezeigt werden mit Punkten für jeden Abzweig
-und Linien für jedes Teilstück.
+<dd>Die gleichen Informationen, die in der Karte angezeigt werden mit Punkten für jeden Abzweig
+und Linien für jedes Teilstück.
<dt>GPX Routen-Datei
-<dd>Die gleichen Informationen, die im Text angezeigt werden mit einem Wegpunkt für
-jede wichtige Richtungsänderung.
+<dd>Die gleichen Informationen, die im Text angezeigt werden mit einem Wegpunkt für
+jede wichtige Richtungsänderung.
<dt>Volltext-Datei
-<dd>Eine aller Knoten und die Abstände zwischen ihnen, sowie die Gesamtentfernung vom i
+<dd>Eine aller Knoten und die Abstände zwischen ihnen, sowie die Gesamtentfernung vom i
Startpunkt zum jeweiligen Konten.
<dt>Text-Datei
<dd>Die gleiche Information, die als Text angezeigt wird.
@@ -451,7 +451,7 @@
<div class="hideshow_box">
<span class="hideshow_title">Routino Ansichten</span>
-Die Anzeige der Daten kann auf verschiedene Weise angepasst werden.
+Die Anzeige der Daten kann auf verschiedene Weise angepasst werden.
<br>
<a id="visualiser_url" href="visualiser.html" target="visualiser">anpassen dieser Kartenansicht</a>
</div>
@@ -465,15 +465,15 @@
<div class="map" id="map">
<noscript>
<p>
-Javascript is <em>required</em> to use this web page because of the interactive map.
+Um die interaktive Karte zu nutzen iWork Javascript benötigt.
</noscript>
</div>
<div class="attribution">
Router: <a href="http://www.routino.org/" target="routino">Routino</a>
|
-Geo Data: <span id="attribution_data"></span>
+Geodaten: <span id="attribution_data"></span>
|
-Tiles: <span id="attribution_tile"></span>
+Kacheln: <span id="attribution_tile"></span>
</div>
</div>
diff -Nru routino-2.7/web/www/routino/router.html.en routino-2.7.2/web/www/routino/router.html.en
--- routino-2.7/web/www/routino/router.html.en 2014-03-15 12:45:15.000000000 +0100
+++ routino-2.7.2/web/www/routino/router.html.en 2014-06-05 20:16:22.000000000 +0200
@@ -85,7 +85,7 @@
<td>(EN)
<td><input name="language" type="radio" value="en" onchange="formSetLanguage();" checked>
<tr>
-<td><a id="lang_de_url" href="router.html.de" title="Deutsche Webseite">Deutsche</a>
+<td><a id="lang_de_url" href="router.html.de" title="Deutsche Webseite">Deutsch</a>
<td>(DE)
<td><input name="language" type="radio" value="de" onchange="formSetLanguage();" >
<tr>
@@ -97,7 +97,7 @@
<td>(NL)
<td><input name="language" type="radio" value="nl" onchange="formSetLanguage();" >
<tr>
-<td>
+<td><a id="lang_ru_url" href="router.html.ru" title="Русский">Русский</a>
<td>(RU)
<td><input name="language" type="radio" value="ru" onchange="formSetLanguage();" >
</table>
@@ -252,8 +252,8 @@
<div class="hideshow_box">
<span class="hideshow_title">Find</span>
-<input type="button" title="Find shortest route" id="shortest" value="Shortest Route" onclick="findRoute('shortest');">
-<input type="button" title="Find quickest route" id="quickest" value="Quickest Route" onclick="findRoute('quickest');">
+<input type="button" title="Find shortest route" id="shortest" value="Shortest Route" onclick="findRoute('shortest');" disabled="disabled">
+<input type="button" title="Find quickest route" id="quickest" value="Quickest Route" onclick="findRoute('quickest');" disabled="disabled">
</div>
<div class="hideshow_box">
diff -Nru routino-2.7/web/www/routino/router.html.fr routino-2.7.2/web/www/routino/router.html.fr
--- routino-2.7/web/www/routino/router.html.fr 2014-03-15 12:45:15.000000000 +0100
+++ routino-2.7.2/web/www/routino/router.html.fr 2014-06-05 20:16:23.000000000 +0200
@@ -6,7 +6,7 @@
<meta name="keywords" content="openstreetmap routing route planner">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=no">
-<title>Routino : Calculateur d'itinéraire pour OpenStreetMap</title>
+<title>Routino : Calculateur d'itinéraire pour OpenStreetMap</title>
<!--
Routino router web page.
@@ -54,18 +54,18 @@
<div class="left_panel">
<div class="tab_box">
-<span id="tab_options" onclick="tab_select('options');" class="tab_selected" title="définir les options">Options</span>
-<span id="tab_results" onclick="tab_select('results');" class="tab_unselected" title="Voir les resultats">Résultats</span>
-<span id="tab_data" onclick="tab_select('data');" class="tab_unselected" title="Voir les informations de la base de donnée">Données</span>
+<span id="tab_options" onclick="tab_select('options');" class="tab_selected" title="définir les options">Options</span>
+<span id="tab_results" onclick="tab_select('results');" class="tab_unselected" title="Voir les resultats">Résultats</span>
+<span id="tab_data" onclick="tab_select('data');" class="tab_unselected" title="Voir les informations de la base de donnée">Données</span>
</div>
<div class="tab_content" id="tab_options_div">
<form name="form" id="form" action="#" method="get" onsubmit="return false;">
<div class="hideshow_box">
-<span class="hideshow_title">Itinéraires pour Openstreetmap Routino</span>
-Cette page web permet de calculer des itinéraires à l'aide des données collectées par OpenStreetMap.
-Sélectionner les points de départ et d'arrivée (cliquer sur les icones ci-dessous), sélectionner les préférences, puis rechercher un itinéraire.
+<span class="hideshow_title">Itinéraires pour Openstreetmap Routino</span>
+Cette page web permet de calculer des itinéraires à l'aide des données collectées par OpenStreetMap.
+Sélectionner les points de départ et d'arrivée (cliquer sur les icones ci-dessous), sélectionner les préférences, puis rechercher un itinéraire.
<div class="center">
<a target="other" href="http://www.routino.org/">site web Routino</a>
|
@@ -85,7 +85,7 @@
<td>(EN)
<td><input name="language" type="radio" value="en" onchange="formSetLanguage();" >
<tr>
-<td><a id="lang_de_url" href="router.html.de" title="Deutsche Webseite">Deutsche</a>
+<td><a id="lang_de_url" href="router.html.de" title="Deutsche Webseite">Deutsch</a>
<td>(DE)
<td><input name="language" type="radio" value="de" onchange="formSetLanguage();" >
<tr>
@@ -97,7 +97,7 @@
<td>(NL)
<td><input name="language" type="radio" value="nl" onchange="formSetLanguage();" >
<tr>
-<td>
+<td><a id="lang_ru_url" href="router.html.ru" title="Русский">Русский</a>
<td>(RU)
<td><input name="language" type="radio" value="ru" onchange="formSetLanguage();" >
</table>
@@ -108,7 +108,7 @@
<div class="hideshow_box">
<span id="hideshow_waypoint_show" onclick="hideshow_show('waypoint');" class="hideshow_hide">+</span>
<span id="hideshow_waypoint_hide" onclick="hideshow_hide('waypoint');" class="hideshow_show">-</span>
-<span class="hideshow_title">Etapes de l'itinéraire</span>
+<span class="hideshow_title">Etapes de l'itinéraire</span>
<div id="hideshow_waypoint_div">
<table id="waypoints">
<colgroup>
@@ -118,34 +118,34 @@
</colgroup>
<tr id="waypointXXX" style="display: none;">
<td>
-<img id="iconXXX" src="icons/marker-XXX-grey.png" title="Etape XXX de l'itinéraire - (cliquer pour ajouter/enlever de la carte)" alt="Waypoint XXX" onmousedown="markerToggleMap(XXX);">
+<img id="iconXXX" src="icons/marker-XXX-grey.png" title="Etape XXX de l'itinéraire - (cliquer pour ajouter/enlever de la carte)" alt="Waypoint XXX" onmousedown="markerToggleMap(XXX);">
<td>
<span id="coordsXXX">
<input name="lonXXX" type="text" size="7" title="Etape XXX Longitude" onchange="formSetCoords(XXX);">E
<input name="latXXX" type="text" size="7" title="Etape XXX Latitude" onchange="formSetCoords(XXX);">N
</span>
<span id="searchXXX" style="display: none;">
-<input name="searchXXX" type="text" size="18" title="position de l'étape XXX"> <!-- uses Javascript event for triggering -->
+<input name="searchXXX" type="text" size="18" title="position de l'étape XXX"> <!-- uses Javascript event for triggering -->
</span>
<td>
<img alt="?" src="icons/waypoint-search.png" title="Rechercher la position" onmousedown="markerSearch(XXX);" >
<img alt="G" src="icons/waypoint-locate.png" title="obtenir la position actuelle" onmousedown="markerLocate(XXX);" >
-<img alt="O" src="icons/waypoint-recentre.png" title="Centrer la carte sur cette étape" onmousedown="markerRecentre(XXX);">
-<img alt="^" src="icons/waypoint-up.png" title="Placer cette étape avant" onmousedown="markerMoveUp(XXX);" >
-<img alt="+" src="icons/waypoint-add.png" title="Ajouter une étape après celle-ci" onmousedown="markerAddAfter(XXX);">
-<br>
-<img alt="#" src="icons/waypoint-coords.png" title="Coordonnées de position" onmousedown="markerCoords(XXX);" >
-<img alt="~" src="icons/waypoint-home.png" title="Changer en position de départ" onmousedown="markerHome(XXX);" >
-<img alt="o" src="icons/waypoint-centre.png" title="Centrer cette étape sur la carte" onmousedown="markerCentre(XXX);" >
-<img alt="v" src="icons/waypoint-down.png" title="Placer cette étape après" onmousedown="markerMoveDown(XXX);">
-<img alt="-" src="icons/waypoint-remove.png" title="supprimer cette étape" onmousedown="markerRemove(XXX);" >
+<img alt="O" src="icons/waypoint-recentre.png" title="Centrer la carte sur cette étape" onmousedown="markerRecentre(XXX);">
+<img alt="^" src="icons/waypoint-up.png" title="Placer cette étape avant" onmousedown="markerMoveUp(XXX);" >
+<img alt="+" src="icons/waypoint-add.png" title="Ajouter une étape après celle-ci" onmousedown="markerAddAfter(XXX);">
+<br>
+<img alt="#" src="icons/waypoint-coords.png" title="Coordonnées de position" onmousedown="markerCoords(XXX);" >
+<img alt="~" src="icons/waypoint-home.png" title="Changer en position de départ" onmousedown="markerHome(XXX);" >
+<img alt="o" src="icons/waypoint-centre.png" title="Centrer cette étape sur la carte" onmousedown="markerCentre(XXX);" >
+<img alt="v" src="icons/waypoint-down.png" title="Placer cette étape après" onmousedown="markerMoveDown(XXX);">
+<img alt="-" src="icons/waypoint-remove.png" title="supprimer cette étape" onmousedown="markerRemove(XXX);" >
<tr id="searchresultsXXX" style="display: none;">
<td colspan="3">
<!-- The waypoints are inserted by the JavaScript, see the "maxmarkers" variable in router.js. -->
<tr>
<td colspan="3" class="center">
-<input type="button" title="Inverser l'ordre des étapes" value="Inverser l'ordre" onmousedown="markersReverse();">
-<input type="button" title="Ajouter une nouvelle étape pour faire une boucle" value="Faire une boucle" onmousedown="markersLoop();">
+<input type="button" title="Inverser l'ordre des étapes" value="Inverser l'ordre" onmousedown="markersReverse();">
+<input type="button" title="Ajouter une nouvelle étape pour faire une boucle" value="Faire une boucle" onmousedown="markersLoop();">
</table>
</div>
</div>
@@ -153,11 +153,11 @@
<div class="hideshow_box">
<span id="hideshow_transport_show" onclick="hideshow_show('transport');" class="hideshow_hide">+</span>
<span id="hideshow_transport_hide" onclick="hideshow_hide('transport');" class="hideshow_show">-</span>
-<span class="hideshow_title">Mode de déplacement</span>
+<span class="hideshow_title">Mode de déplacement</span>
<div id="hideshow_transport_div">
<table>
-<tr><td>À pied: <td><input name="transport" type="radio" value="foot" onchange="formSetTransport('foot' );">
-<tr><td>À cheval: <td><input name="transport" type="radio" value="horse" onchange="formSetTransport('horse' );">
+<tr><td>À pied: <td><input name="transport" type="radio" value="foot" onchange="formSetTransport('foot' );">
+<tr><td>À cheval: <td><input name="transport" type="radio" value="horse" onchange="formSetTransport('horse' );">
<tr><td>Fauteuil roulant:<td><input name="transport" type="radio" value="wheelchair" onchange="formSetTransport('wheelchair');">
<tr><td>Bicyclette: <td><input name="transport" type="radio" value="bicycle" onchange="formSetTransport('bicycle' );">
<tr><td>Mobilette: <td><input name="transport" type="radio" value="moped" onchange="formSetTransport('moped' );">
@@ -173,7 +173,7 @@
<div class="hideshow_box">
<span id="hideshow_highway_show" onclick="hideshow_show('highway');" class="hideshow_show">+</span>
<span id="hideshow_highway_hide" onclick="hideshow_hide('highway');" class="hideshow_hide">-</span>
-<span class="hideshow_title">Préférences routières</span>
+<span class="hideshow_title">Préférences routières</span>
<div id="hideshow_highway_div" style="display: none;">
<table>
<tr><td>Autoroute: <td><input name="highway-motorway" type="text" size="3" onchange="formSetHighway('motorway' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('motorway' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('motorway' ,'+');">
@@ -181,8 +181,8 @@
<tr><td>Primaire: <td><input name="highway-primary" type="text" size="3" onchange="formSetHighway('primary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('primary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('primary' ,'+');">
<tr><td>Secondaire: <td><input name="highway-secondary" type="text" size="3" onchange="formSetHighway('secondary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('secondary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('secondary' ,'+');">
<tr><td>Tertiaire: <td><input name="highway-tertiary" type="text" size="3" onchange="formSetHighway('tertiary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('tertiary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('tertiary' ,'+');">
-<tr><td>Non classée:<td><input name="highway-unclassified" type="text" size="3" onchange="formSetHighway('unclassified','=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('unclassified','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('unclassified','+');">
-<tr><td>Résidentiel: <td><input name="highway-residential" type="text" size="3" onchange="formSetHighway('residential' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('residential' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('residential' ,'+');">
+<tr><td>Non classée:<td><input name="highway-unclassified" type="text" size="3" onchange="formSetHighway('unclassified','=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('unclassified','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('unclassified','+');">
+<tr><td>Résidentiel: <td><input name="highway-residential" type="text" size="3" onchange="formSetHighway('residential' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('residential' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('residential' ,'+');">
<tr><td>Service: <td><input name="highway-service" type="text" size="3" onchange="formSetHighway('service' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('service' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('service' ,'+');">
<tr><td>Chemin: <td><input name="highway-track" type="text" size="3" onchange="formSetHighway('track' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('track' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('track' ,'+');">
<tr><td>Voie cyclable: <td><input name="highway-cycleway" type="text" size="3" onchange="formSetHighway('cycleway' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('cycleway' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('cycleway' ,'+');">
@@ -204,8 +204,8 @@
<tr><td>Primaire: <td><input name="speed-primary" type="text" size="3" onchange="formSetSpeed('primary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('primary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('primary' ,'+');">
<tr><td>Secondaire: <td><input name="speed-secondary" type="text" size="3" onchange="formSetSpeed('secondary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('secondary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('secondary' ,'+');">
<tr><td>Tertiaire: <td><input name="speed-tertiary" type="text" size="3" onchange="formSetSpeed('tertiary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('tertiary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('tertiary' ,'+');">
-<tr><td>Non classée:<td><input name="speed-unclassified" type="text" size="3" onchange="formSetSpeed('unclassified','=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('unclassified','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('unclassified','+');">
-<tr><td>Résidentiel: <td><input name="speed-residential" type="text" size="3" onchange="formSetSpeed('residential' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('residential' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('residential' ,'+');">
+<tr><td>Non classée:<td><input name="speed-unclassified" type="text" size="3" onchange="formSetSpeed('unclassified','=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('unclassified','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('unclassified','+');">
+<tr><td>Résidentiel: <td><input name="speed-residential" type="text" size="3" onchange="formSetSpeed('residential' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('residential' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('residential' ,'+');">
<tr><td>Service: <td><input name="speed-service" type="text" size="3" onchange="formSetSpeed('service' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('service' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('service' ,'+');">
<tr><td>Chemin: <td><input name="speed-track" type="text" size="3" onchange="formSetSpeed('track' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('track' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('track' ,'+');">
<tr><td>Voie cyclable: <td><input name="speed-cycleway" type="text" size="3" onchange="formSetSpeed('cycleway' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('cycleway' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('cycleway' ,'+');">
@@ -219,15 +219,15 @@
<div class="hideshow_box">
<span id="hideshow_property_show" onclick="hideshow_show('property');" class="hideshow_show">+</span>
<span id="hideshow_property_hide" onclick="hideshow_hide('property');" class="hideshow_hide">-</span>
-<span class="hideshow_title">Préférences des propriétés</span>
+<span class="hideshow_title">Préférences des propriétés</span>
<div id="hideshow_property_div" style="display: none;">
<table>
-<tr><td>Pavée: <td><input name="property-paved" type="text" size="3" onchange="formSetProperty('paved' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('paved' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('paved' ,'+');">
+<tr><td>Pavée: <td><input name="property-paved" type="text" size="3" onchange="formSetProperty('paved' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('paved' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('paved' ,'+');">
<tr><td>Voies multiples: <td><input name="property-multilane" type="text" size="3" onchange="formSetProperty('multilane' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('multilane' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('multilane' ,'+');">
<tr><td>Pont: <td><input name="property-bridge" type="text" size="3" onchange="formSetProperty('bridge' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('bridge' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('bridge' ,'+');">
<tr><td>Tunnel: <td><input name="property-tunnel" type="text" size="3" onchange="formSetProperty('tunnel' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('tunnel' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('tunnel' ,'+');">
-<tr><td>Itinér. piéton:<td><input name="property-footroute" type="text" size="3" onchange="formSetProperty('footroute' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('footroute' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('footroute' ,'+');">
-<tr><td>Itinér. cycle:<td><input name="property-bicycleroute" type="text" size="3" onchange="formSetProperty('bicycleroute','=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('bicycleroute','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('bicycleroute','+');">
+<tr><td>Itinér. piéton:<td><input name="property-footroute" type="text" size="3" onchange="formSetProperty('footroute' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('footroute' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('footroute' ,'+');">
+<tr><td>Itinér. cycle:<td><input name="property-bicycleroute" type="text" size="3" onchange="formSetProperty('bicycleroute','=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('bicycleroute','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('bicycleroute','+');">
</table>
</div>
</div>
@@ -252,15 +252,15 @@
<div class="hideshow_box">
<span class="hideshow_title">Rechercher</span>
-<input type="button" title="Chercher l'itinéraire le plus court" id="shortest" value="Le plus court" onclick="findRoute('shortest');">
-<input type="button" title="Chercher l'itinéraire le plus rapide" id="quickest" value="Le plus rapide" onclick="findRoute('quickest');">
+<input type="button" title="Chercher l'itinéraire le plus court" id="shortest" value="Le plus court" onclick="findRoute('shortest');" disabled="disabled">
+<input type="button" title="Chercher l'itinéraire le plus rapide" id="quickest" value="Le plus rapide" onclick="findRoute('quickest');" disabled="disabled">
</div>
<div class="hideshow_box">
<span class="hideshow_title">Liens</span>
<a id="permalink_url" href="router.html">Lien vers cet outil de visualisation</a>
<br>
-<a id="edit_url" target="edit" style="display: none;">Editer cette donnée OSM</a>
+<a id="edit_url" target="edit" style="display: none;">Editer cette donnée OSM</a>
</div>
<div class="hideshow_box">
@@ -269,57 +269,57 @@
<span class="hideshow_title">Aide</span>
<div id="hideshow_help_options_div">
<div class="scrollable">
-<b>Aide simplifiée</b>
+<b>Aide simplifiée</b>
<br>
Cliquer sur les icones de balises (ci-dessus) pour les placer sur la carte (droite). Puis
-les déplacer à la position choisie. Il sera sûrement plus facile de zoomer sur la carte
+les déplacer à la position choisie. Il sera sûrement plus facile de zoomer sur la carte
avant de placer les balises. Autre solution, taper la latitude et
la longitude dans les cases ci-dessus.
<p>
-Selectionner le mode de déplacement, les types de voies autorisées, les limitations de vitesse,
-les propriétés des voies et les autres restrictions dans les options ci-dessus.
-Selectionner "Le plus court" ou "Le plus rapide" pour calculer l'itinéraire et le visualiser
+Selectionner le mode de déplacement, les types de voies autorisées, les limitations de vitesse,
+les propriétés des voies et les autres restrictions dans les options ci-dessus.
+Selectionner "Le plus court" ou "Le plus rapide" pour calculer l'itinéraire et le visualiser
sur la carte.
<p>
<b>Etapes</b>
<br>
Cliquer sur les balises affichera ou supprimera leur apparition sur la carte.
-Quand un itinéraire est calculé, il affichera (le plus près possible
-pour le mode de déplacement sélectionné) chacune des étapes qui ont une
-balise sur la carte dans l'ordre défini.
+Quand un itinéraire est calculé, il affichera (le plus près possible
+pour le mode de déplacement sélectionné) chacune des étapes qui ont une
+balise sur la carte dans l'ordre défini.
<p>
-<b>Mode de déplacement</b>
+<b>Mode de déplacement</b>
<br>
-Selectionner un mode de déplacement restreindra l'itinéraire choisi aux
-voies sur lesquelles il est autorisé et définira les valeurs par défaut pour
-les autres paramètres.
+Selectionner un mode de déplacement restreindra l'itinéraire choisi aux
+voies sur lesquelles il est autorisé et définira les valeurs par défaut pour
+les autres paramètres.
<p>
-<b>Préferences des voies</b>
+<b>Préferences des voies</b>
<br>
-La préférence de voies est définie par un pourcentage et des itinéraires sont choisis
-qui essaient de suivre les voies préferrées.
-Par exemple, si une voie "Primaire" a une préférence de "110%" et une voie "Secondaire"
-une préférence de "100%", alors cela signifie qu'un itinéraire sur une voie primaire
-peut être jusqu'à 10% plus long que sur une voie secondaire et être sélectionné.
+La préférence de voies est définie par un pourcentage et des itinéraires sont choisis
+qui essaient de suivre les voies préferrées.
+Par exemple, si une voie "Primaire" a une préférence de "110%" et une voie "Secondaire"
+une préférence de "100%", alors cela signifie qu'un itinéraire sur une voie primaire
+peut être jusqu'à 10% plus long que sur une voie secondaire et être sélectionné.
<p>
<b>Limites de vitesse</b>
<br>
Les limites de vitesse choisies ici pour les differents types de voies s'appliquent si la
-voie n'a pas d'autre limite de vitesse définie ou si celle-ci est supérieure à celle choisie.
+voie n'a pas d'autre limite de vitesse définie ou si celle-ci est supérieure à celle choisie.
<p>
-<b>Préférences de propriétés</b>
+<b>Préférences de propriétés</b>
<br>
-La préférence de propriété est définie par un pourcentage et des itinéraires sont choisis
-qui essaient de suivre les voies ayant cette propriété préférée.
-Par exemple, si une voie goudronnée a une préférence de "75%", alors cela signifie que
-une voie non goudronnée obtient automatiquement une préférence de "25%" ce qui fait que
-un itinéraire sur une voie goudronnée peut avoir 3 fois la longueur d'une non goudronnée
-et être sélectionnée.
+La préférence de propriété est définie par un pourcentage et des itinéraires sont choisis
+qui essaient de suivre les voies ayant cette propriété préférée.
+Par exemple, si une voie goudronnée a une préférence de "75%", alors cela signifie que
+une voie non goudronnée obtient automatiquement une préférence de "25%" ce qui fait que
+un itinéraire sur une voie goudronnée peut avoir 3 fois la longueur d'une non goudronnée
+et être sélectionnée.
<p>
<b>Autres restrictions</b>
<br>
-Celles-ci permettent de touver un itinéraire qui respecte les limites définies pour
-le poids, la hauteur, la largeur ou la longueur. Il est également possible d'ignorer
+Celles-ci permettent de touver un itinéraire qui respecte les limites définies pour
+le poids, la hauteur, la largeur ou la longueur. Il est également possible d'ignorer
les restrictions de sens unique (e. pour la marche).
</div>
</div>
@@ -334,23 +334,23 @@
<span class="hideshow_title">Status</span>
<div id="result_status">
<div id="result_status_not_run">
-<b><i>Routage non lancé</i></b>
+<b><i>Routage non lancé</i></b>
</div>
<div id="result_status_running" style="display: none;">
<b>Routage en cours...</b>
</div>
<div id="result_status_complete" style="display: none;">
-<b>Routage terminé</b>
+<b>Routage terminé</b>
<br>
-<a id="router_log_complete" target="router_log" href="#">Voir les Détails</a>
+<a id="router_log_complete" target="router_log" href="#">Voir les Détails</a>
</div>
<div id="result_status_error" style="display: none;">
<b>Erreur de Routage</b>
<br>
-<a id="router_log_error" target="router_log" href="#">Voir les Détails</a>
+<a id="router_log_error" target="router_log" href="#">Voir les Détails</a>
</div>
<div id="result_status_failed" style="display: none;">
-<b>Le Routage n'a pas été lancé correctement</b>
+<b>Le Routage n'a pas été lancé correctement</b>
</div>
</div>
</div>
@@ -369,7 +369,7 @@
<div id="hideshow_shortest_div" style="display: none;">
<div id="shortest_links" style="display: none;">
<table>
-<tr><td>Itinéraire HTML: <td><a id="shortest_html" target="shortest_html" href="#">Ouvrir Popup</a>
+<tr><td>Itinéraire HTML: <td><a id="shortest_html" target="shortest_html" href="#">Ouvrir Popup</a>
<tr><td>Fichier chemin GPX: <td><a id="shortest_gpx_track" target="shortest_gpx_track" href="#">Ouvrir Popup</a>
<tr><td>Fichier route GPX: <td><a id="shortest_gpx_route" target="shortest_gpx_route" href="#">Ouvrir Popup</a>
<tr><td>Fichier texte complet: <td><a id="shortest_text_all" target="shortest_text_all" href="#">Ouvrir Popup</a>
@@ -396,7 +396,7 @@
<div id="hideshow_quickest_div" style="display: none;">
<div id="quickest_links" style="display: none;">
<table>
-<tr><td>Itinéraire HTML: <td><a id="quickest_html" target="quickest_html" href="#">Ouvrir Popup</a>
+<tr><td>Itinéraire HTML: <td><a id="quickest_html" target="quickest_html" href="#">Ouvrir Popup</a>
<tr><td>Fichier chemin GPX: <td><a id="quickest_gpx_track" target="quickest_gpx_track" href="#">Ouvrir Popup</a>
<tr><td>Fichier route GPX: <td><a id="quickest_gpx_route" target="quickest_gpx_route" href="#">Ouvrir Popup</a>
<tr><td>Fichier texte complet: <td><a id="quickest_text_all" target="quickest_text_all" href="#">Ouvrir Popup</a>
@@ -417,34 +417,34 @@
<div class="scrollable">
<b>Aide rapide</b>
<br>
-Après le calcul de l'itinéraire, vous pouvez télécharger le fichier GPX ou
-la description au format texte (résumé ou version détaillée). Vous pouvez également
-visualiser la description de l'itinéraire et zoomer sur des tronçons sélectionnés.
+Après le calcul de l'itinéraire, vous pouvez télécharger le fichier GPX ou
+la description au format texte (résumé ou version détaillée). Vous pouvez également
+visualiser la description de l'itinéraire et zoomer sur des tronçons sélectionnés.
<p>
-<b>Résoudre un problème</b>
+<b>Résoudre un problème</b>
<br>
-Si le calculateur aboutie à une erreur, la cause la plus probable est que
-il n'est pas possible de trouver un itinéraire entre les points sélectionnés.
-Por permettre de trouver un itinéraire, déplacer une ou des balises
+Si le calculateur aboutie à une erreur, la cause la plus probable est que
+il n'est pas possible de trouver un itinéraire entre les points sélectionnés.
+Por permettre de trouver un itinéraire, déplacer une ou des balises
ou changer les options de recherche.
<p>
<b>Formats d'affichage</b>
<br>
<dl>
<dt>Instructions HTML
-<dd>une description de l'itinéraire à prendre
-à chaque intersection importante.
+<dd>une description de l'itinéraire à prendre
+à chaque intersection importante.
<dt>Fichier chemin GPX
-<dd>La même information qui est affichée sur la carte avec des points
-pour chaque noeud et des lignes pour tous les sègments.
+<dd>La même information qui est affichée sur la carte avec des points
+pour chaque noeud et des lignes pour tous les sègments.
<dt>Fichier route GPX
-<dd>La même information qui est affichée en texte pour l'itinéraire
-avec une étape pour chaque intersection importante.
+<dd>La même information qui est affichée en texte pour l'itinéraire
+avec une étape pour chaque intersection importante.
<dt>Fichier texte complet
-<dd>Une liste de tous les noeuds traversés ainsi que la distance
-entre eux et la distance cumulée pour chaque étape de l'itinéraire.
+<dd>Une liste de tous les noeuds traversés ainsi que la distance
+entre eux et la distance cumulée pour chaque étape de l'itinéraire.
<dt>Fichier texte
-<dd>La même information qui est affichée en texte pour l'itinéraire.
+<dd>La même information qui est affichée en texte pour l'itinéraire.
</dl>
</div>
</div>
@@ -456,13 +456,13 @@
<div class="hideshow_box">
<span class="hideshow_title">Routino Statistiques</span>
<div id="statistics_data"></div>
-<a id="statistics_link" href="statistics.cgi" onclick="displayStatistics();return(false);">Afficher les données statistiques</a>
+<a id="statistics_link" href="statistics.cgi" onclick="displayStatistics();return(false);">Afficher les données statistiques</a>
</div>
<div class="hideshow_box">
<span class="hideshow_title">Routino Visualiser</span>
-Pour comprendre comment Routino voit les données, il y a un outil de visualisation
-qui permet d'afficher les données soujacentes de multiples manières.
+Pour comprendre comment Routino voit les données, il y a un outil de visualisation
+qui permet d'afficher les données soujacentes de multiples manières.
<br>
<a id="visualiser_url" href="visualiser.html" target="visualiser">Lien vers cet outil de visualisation</a>
</div>
@@ -476,7 +476,7 @@
<div class="map" id="map">
<noscript>
<p>
-Javascript est <em>nécessaire</em> pour cette page web à cause de la carte intéractive.
+Javascript est <em>nécessaire</em> pour cette page web à cause de la carte intéractive.
</noscript>
</div>
<div class="attribution">
diff -Nru routino-2.7/web/www/routino/router.html.nl routino-2.7.2/web/www/routino/router.html.nl
--- routino-2.7/web/www/routino/router.html.nl 2014-03-15 12:45:16.000000000 +0100
+++ routino-2.7.2/web/www/routino/router.html.nl 2014-06-05 20:16:24.000000000 +0200
@@ -86,7 +86,7 @@
<td>(EN)
<td><input name="language" type="radio" value="en" onchange="formSetLanguage();" >
<tr>
-<td><a id="lang_de_url" href="router.html.de" title="Deutsche Webseite">Deutsche</a>
+<td><a id="lang_de_url" href="router.html.de" title="Deutsche Webseite">Deutsch</a>
<td>(DE)
<td><input name="language" type="radio" value="de" onchange="formSetLanguage();" >
<tr>
@@ -98,7 +98,7 @@
<td>(NL)
<td><input name="language" type="radio" value="nl" onchange="formSetLanguage();" checked>
<tr>
-<td>
+<td><a id="lang_ru_url" href="router.html.ru" title="Русский">Русский</a>
<td>(RU)
<td><input name="language" type="radio" value="ru" onchange="formSetLanguage();" >
</table>
@@ -253,8 +253,8 @@
<div class="hideshow_box">
<span class="hideshow_title">Zoek Route</span>
-<input type="button" title="Zoek de kortste route" id="shortest" value="Kortste Route" onclick="findRoute('shortest');">
-<input type="button" title="Zoek de snelste route" id="quickest" value="Snelste Route" onclick="findRoute('quickest');">
+<input type="button" title="Zoek de kortste route" id="shortest" value="Kortste Route" onclick="findRoute('shortest');" disabled="disabled">
+<input type="button" title="Zoek de snelste route" id="quickest" value="Snelste Route" onclick="findRoute('quickest');" disabled="disabled">
</div>
<div class="hideshow_box">
@@ -273,12 +273,12 @@
<b>Quick Start</b>
<br>
Click op marker-icoontje (Waypoints) om ze op de map te plaatsen (rechts).
-Sleep ze vervolgens naar de gewenste positie.
-Het is best om eerst naar straat niveau te zoomen op de kaart.
+Sleep ze vervolgens naar de gewenste positie.
+Het is best om eerst naar straat niveau te zoomen op de kaart.
Selecteer het transport type, toegestane weg-types,
snelheidslimieten, wegeigenschappen en andere restricties uit de
opties.
-Selecteer "Kortste" of "Snelste" om de route te berekenen en te tekenen op de map.
+Selecteer "Kortste" of "Snelste" om de route te berekenen en te tekenen op de map.
<p>
<b>Coordinaten (Waypoints)</b>
<br>
@@ -295,7 +295,7 @@
<p>
<b>Voorkeur Wegtype</b>
<br>
-De voorkeur voor een bepaald type weg wordt uitgedrukt in een percentage.
+De voorkeur voor een bepaald type weg wordt uitgedrukt in een percentage.
Bijvoorbeeld wanneer u het Transport Type "Fiets" kiest, dan zal er
voor Autostrade 0% staan, en voor Fietspad 100%.
Wanneer u Autowegen, Nationale wegen wil vermijden of beperken bij
diff -Nru routino-2.7/web/www/routino/router.html.ru routino-2.7.2/web/www/routino/router.html.ru
--- routino-2.7/web/www/routino/router.html.ru 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/web/www/routino/router.html.ru 2014-06-05 20:16:24.000000000 +0200
@@ -0,0 +1,494 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="openstreetmap routing route planner">
+<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=no">
+
+<title>Routino : Route Planner for OpenStreetMap Data</title>
+
+<!--
+Routino router web page.
+
+Part of the Routino routing software.
+
+This file Copyright 2008-2014 Andrew M. Bishop
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see http://www.gnu.org/licenses/.
+-->
+
+<!-- Page elements -->
+<script src="page-elements.js" type="text/javascript"></script>
+<link href="page-elements.css" type="text/css" rel="stylesheet">
+
+<!-- Router and visualiser shared features -->
+<link href="maplayout.css" type="text/css" rel="stylesheet">
+
+<!-- Router specific features -->
+<script src="profiles.js" type="text/javascript"></script>
+<link href="router.css" type="text/css" rel="stylesheet">
+
+<!-- Map parameters -->
+<script src="mapprops.js" type="text/javascript"></script>
+
+<!-- Map loader -->
+<script src="maploader.js" type="text/javascript"></script>
+
+</head>
+<body onload="map_load('html_init();map_init();form_init();');">
+
+<!-- Left hand side of window - data panel -->
+
+<div class="left_panel">
+
+<div class="tab_box">
+<span id="tab_options" onclick="tab_select('options');" class="tab_selected" title="Задать настройки маршрутизации">Options</span>
+<span id="tab_results" onclick="tab_select('results');" class="tab_unselected" title="See routing results">Results</span>
+<span id="tab_data" onclick="tab_select('data');" class="tab_unselected" title="View database information">Data</span>
+</div>
+
+<div class="tab_content" id="tab_options_div">
+
+<form name="form" id="form" action="#" method="get" onsubmit="return false;">
+<div class="hideshow_box">
+<span class="hideshow_title">Routino OpenStreetMap Router</span>
+This web page allows routing within the data collected by OpenStreetMap.
+Select start and end points (click on the marker icons below), select routing preferences then find a route.
+<div class="center">
+<a target="other" href="http://www.routino.org/">Routino Website</a>
+|
+<a target="other" href="documentation/">Документация</a>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_language_show" onclick="hideshow_show('language');" class="hideshow_show">+</span>
+<span id="hideshow_language_hide" onclick="hideshow_hide('language');" class="hideshow_hide">-</span>
+<span class="hideshow_title">Язык</span>
+
+<div id="hideshow_language_div" style="display: none;">
+<table>
+<tr>
+<td><a id="lang_en_url" href="router.html.en" title="English language webpage">English</a>
+<td>(EN)
+<td><input name="language" type="radio" value="en" onchange="formSetLanguage();" >
+<tr>
+<td><a id="lang_de_url" href="router.html.de" title="Deutsche Webseite">Deutsch</a>
+<td>(DE)
+<td><input name="language" type="radio" value="de" onchange="formSetLanguage();" >
+<tr>
+<td><a id="lang_fr_url" href="router.html.fr" title="Francais">Francais</a>
+<td>(FR)
+<td><input name="language" type="radio" value="fr" onchange="formSetLanguage();" >
+<tr>
+<td><a id="lang_nl_url" href="router.html.nl" title="Nederlandse web pagina">Nederlands</a>
+<td>(NL)
+<td><input name="language" type="radio" value="nl" onchange="formSetLanguage();" >
+<tr>
+<td><a id="lang_ru_url" href="router.html.ru" title="Русский">Русский</a>
+<td>(RU)
+<td><input name="language" type="radio" value="ru" onchange="formSetLanguage();" checked>
+</table>
+<a target="translation" href="http://www.routino.org/translations/">Routino Translations</a>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_waypoint_show" onclick="hideshow_show('waypoint');" class="hideshow_hide">+</span>
+<span id="hideshow_waypoint_hide" onclick="hideshow_hide('waypoint');" class="hideshow_show">-</span>
+<span class="hideshow_title">Waypoints</span>
+<div id="hideshow_waypoint_div">
+<table id="waypoints">
+<colgroup>
+<col style="width: 22px;">
+<col>
+<col style="width: 76px;">
+</colgroup>
+<tr id="waypointXXX" style="display: none;">
+<td>
+<img id="iconXXX" src="icons/marker-XXX-grey.png" title="Waypoint XXX Position - (click to add/remove on map)" alt="Waypoint XXX" onmousedown="markerToggleMap(XXX);">
+<td>
+<span id="coordsXXX">
+<input name="lonXXX" type="text" size="7" title="Waypoint XXX Longitude" onchange="formSetCoords(XXX);">E
+<input name="latXXX" type="text" size="7" title="Waypoint XXX Latitude" onchange="formSetCoords(XXX);">N
+</span>
+<span id="searchXXX" style="display: none;">
+<input name="searchXXX" type="text" size="18" title="Waypoint XXX Location"> <!-- uses Javascript event for triggering -->
+</span>
+<td>
+<img alt="?" src="icons/waypoint-search.png" title="Search for location" onmousedown="markerSearch(XXX);" >
+<img alt="G" src="icons/waypoint-locate.png" title="Get current location" onmousedown="markerLocate(XXX);" >
+<img alt="O" src="icons/waypoint-recentre.png" title="Centre map on this waypoint" onmousedown="markerRecentre(XXX);">
+<img alt="^" src="icons/waypoint-up.png" title="Move this waypoint up" onmousedown="markerMoveUp(XXX);" >
+<img alt="+" src="icons/waypoint-add.png" title="Add waypoint after this one" onmousedown="markerAddAfter(XXX);">
+<br>
+<img alt="#" src="icons/waypoint-coords.png" title="Coordinates for location" onmousedown="markerCoords(XXX);" >
+<img alt="~" src="icons/waypoint-home.png" title="Toggle as home location" onmousedown="markerHome(XXX);" >
+<img alt="o" src="icons/waypoint-centre.png" title="Centre this waypoint on map" onmousedown="markerCentre(XXX);" >
+<img alt="v" src="icons/waypoint-down.png" title="Move this waypoint down" onmousedown="markerMoveDown(XXX);">
+<img alt="-" src="icons/waypoint-remove.png" title="Remove this waypoint" onmousedown="markerRemove(XXX);" >
+<tr id="searchresultsXXX" style="display: none;">
+<td colspan="3">
+<!-- The waypoints are inserted by the JavaScript, see the "maxmarkers" variable in router.js. -->
+<tr>
+<td colspan="3" class="center">
+<input type="button" title="Reverse order of waypoints" value="Reverse order" onmousedown="markersReverse();">
+<input type="button" title="Add a new waypoint to make a loop" value="Close loop" onmousedown="markersLoop();">
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_transport_show" onclick="hideshow_show('transport');" class="hideshow_hide">+</span>
+<span id="hideshow_transport_hide" onclick="hideshow_hide('transport');" class="hideshow_show">-</span>
+<span class="hideshow_title">Тип транспорта</span>
+<div id="hideshow_transport_div">
+<table>
+<tr><td>Foot: <td><input name="transport" type="radio" value="foot" onchange="formSetTransport('foot' );">
+<tr><td>Лошадь: <td><input name="transport" type="radio" value="horse" onchange="formSetTransport('horse' );">
+<tr><td>Инвалидное кресло:<td><input name="transport" type="radio" value="wheelchair" onchange="formSetTransport('wheelchair');">
+<tr><td>Велосипед: <td><input name="transport" type="radio" value="bicycle" onchange="formSetTransport('bicycle' );">
+<tr><td>Мопед: <td><input name="transport" type="radio" value="moped" onchange="formSetTransport('moped' );">
+<tr><td>Мотоцикл:<td><input name="transport" type="radio" value="motorcycle" onchange="formSetTransport('motorcycle');">
+<tr><td>Motorcar: <td><input name="transport" type="radio" value="motorcar" onchange="formSetTransport('motorcar' );">
+<tr><td>Товары: <td><input name="transport" type="radio" value="goods" onchange="formSetTransport('goods' );">
+<tr><td>HGV: <td><input name="transport" type="radio" value="hgv" onchange="formSetTransport('hgv' );">
+<tr><td>PSV: <td><input name="transport" type="radio" value="psv" onchange="formSetTransport('psv' );">
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_highway_show" onclick="hideshow_show('highway');" class="hideshow_show">+</span>
+<span id="hideshow_highway_hide" onclick="hideshow_hide('highway');" class="hideshow_hide">-</span>
+<span class="hideshow_title">Highway Preferences</span>
+<div id="hideshow_highway_div" style="display: none;">
+<table>
+<tr><td>Автомагистраль: <td><input name="highway-motorway" type="text" size="3" onchange="formSetHighway('motorway' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('motorway' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('motorway' ,'+');">
+<tr><td>Trunk: <td><input name="highway-trunk" type="text" size="3" onchange="formSetHighway('trunk' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('trunk' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('trunk' ,'+');">
+<tr><td>Primary: <td><input name="highway-primary" type="text" size="3" onchange="formSetHighway('primary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('primary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('primary' ,'+');">
+<tr><td>Secondary: <td><input name="highway-secondary" type="text" size="3" onchange="formSetHighway('secondary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('secondary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('secondary' ,'+');">
+<tr><td>Tertiary: <td><input name="highway-tertiary" type="text" size="3" onchange="formSetHighway('tertiary' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('tertiary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('tertiary' ,'+');">
+<tr><td>Unclassified:<td><input name="highway-unclassified" type="text" size="3" onchange="formSetHighway('unclassified','=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('unclassified','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('unclassified','+');">
+<tr><td>Residential: <td><input name="highway-residential" type="text" size="3" onchange="formSetHighway('residential' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('residential' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('residential' ,'+');">
+<tr><td>Service: <td><input name="highway-service" type="text" size="3" onchange="formSetHighway('service' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('service' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('service' ,'+');">
+<tr><td>Track: <td><input name="highway-track" type="text" size="3" onchange="formSetHighway('track' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('track' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('track' ,'+');">
+<tr><td>Cycleway: <td><input name="highway-cycleway" type="text" size="3" onchange="formSetHighway('cycleway' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('cycleway' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('cycleway' ,'+');">
+<tr><td>Path: <td><input name="highway-path" type="text" size="3" onchange="formSetHighway('path' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('path' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('path' ,'+');">
+<tr><td>Steps: <td><input name="highway-steps" type="text" size="3" onchange="formSetHighway('steps' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('steps' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('steps' ,'+');">
+<tr><td>Ferry: <td><input name="highway-ferry" type="text" size="3" onchange="formSetHighway('ferry' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetHighway('ferry' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetHighway('ferry' ,'+');">
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_speed_show" onclick="hideshow_show('speed');" class="hideshow_show">+</span>
+<span id="hideshow_speed_hide" onclick="hideshow_hide('speed');" class="hideshow_hide">-</span>
+<span class="hideshow_title">Ограничения скорости</span>
+<div id="hideshow_speed_div" style="display: none;">
+<table>
+<tr><td>Автомагистраль: <td><input name="speed-motorway" type="text" size="3" onchange="formSetSpeed('motorway' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('motorway' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('motorway' ,'+');">
+<tr><td>Trunk: <td><input name="speed-trunk" type="text" size="3" onchange="formSetSpeed('trunk' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('trunk' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('trunk' ,'+');">
+<tr><td>Primary: <td><input name="speed-primary" type="text" size="3" onchange="formSetSpeed('primary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('primary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('primary' ,'+');">
+<tr><td>Secondary: <td><input name="speed-secondary" type="text" size="3" onchange="formSetSpeed('secondary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('secondary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('secondary' ,'+');">
+<tr><td>Tertiary: <td><input name="speed-tertiary" type="text" size="3" onchange="formSetSpeed('tertiary' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('tertiary' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('tertiary' ,'+');">
+<tr><td>Unclassified:<td><input name="speed-unclassified" type="text" size="3" onchange="formSetSpeed('unclassified','=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('unclassified','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('unclassified','+');">
+<tr><td>Residential: <td><input name="speed-residential" type="text" size="3" onchange="formSetSpeed('residential' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('residential' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('residential' ,'+');">
+<tr><td>Service: <td><input name="speed-service" type="text" size="3" onchange="formSetSpeed('service' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('service' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('service' ,'+');">
+<tr><td>Track: <td><input name="speed-track" type="text" size="3" onchange="formSetSpeed('track' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('track' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('track' ,'+');">
+<tr><td>Cycleway: <td><input name="speed-cycleway" type="text" size="3" onchange="formSetSpeed('cycleway' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('cycleway' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('cycleway' ,'+');">
+<tr><td>Path: <td><input name="speed-path" type="text" size="3" onchange="formSetSpeed('path' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('path' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('path' ,'+');">
+<tr><td>Steps: <td><input name="speed-steps" type="text" size="3" onchange="formSetSpeed('steps' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('steps' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('steps' ,'+');">
+<tr><td>Ferry: <td><input name="speed-ferry" type="text" size="3" onchange="formSetSpeed('ferry' ,'=');"><td>km/hr<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetSpeed('ferry' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetSpeed('ferry' ,'+');">
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_property_show" onclick="hideshow_show('property');" class="hideshow_show">+</span>
+<span id="hideshow_property_hide" onclick="hideshow_hide('property');" class="hideshow_hide">-</span>
+<span class="hideshow_title">Property Preferences</span>
+<div id="hideshow_property_div" style="display: none;">
+<table>
+<tr><td>Paved: <td><input name="property-paved" type="text" size="3" onchange="formSetProperty('paved' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('paved' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('paved' ,'+');">
+<tr><td>Multiple Lanes: <td><input name="property-multilane" type="text" size="3" onchange="formSetProperty('multilane' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('multilane' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('multilane' ,'+');">
+<tr><td>Мост: <td><input name="property-bridge" type="text" size="3" onchange="formSetProperty('bridge' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('bridge' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('bridge' ,'+');">
+<tr><td>Туннель: <td><input name="property-tunnel" type="text" size="3" onchange="formSetProperty('tunnel' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('tunnel' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('tunnel' ,'+');">
+<tr><td>Пеший маршрут:<td><input name="property-footroute" type="text" size="3" onchange="formSetProperty('footroute' ,'=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('footroute' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('footroute' ,'+');">
+<tr><td>Велодорожка:<td><input name="property-bicycleroute" type="text" size="3" onchange="formSetProperty('bicycleroute','=');"><td>%<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetProperty('bicycleroute','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetProperty('bicycleroute','+');">
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_restriction_show" onclick="hideshow_show('restriction');" class="hideshow_show">+</span>
+<span id="hideshow_restriction_hide" onclick="hideshow_hide('restriction');" class="hideshow_hide">-</span>
+<span class="hideshow_title">Другие ограничения</span>
+<div id="hideshow_restriction_div" style="display: none;">
+<table>
+<tr><td>Односторонняя улица: <td><input name="restrict-oneway" type="checkbox" onchange="formSetRestriction('oneway');">
+<tr><td>Obey turn restrictions:<td><input name="restrict-turns" type="checkbox" onchange="formSetRestriction('turns' );">
+</table>
+<table>
+<tr><td>Вес:<td><input name="restrict-weight" type="text" size="3" onchange="formSetRestriction('weight','=');"><td>tonnes<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetRestriction('weight','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetRestriction('weight','+');">
+<tr><td>Высота:<td><input name="restrict-height" type="text" size="3" onchange="formSetRestriction('height','=');"><td>metres<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetRestriction('height','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetRestriction('height','+');">
+<tr><td>Ширина: <td><input name="restrict-width" type="text" size="3" onchange="formSetRestriction('width' ,'=');"><td>metres<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetRestriction('width' ,'-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetRestriction('width' ,'+');">
+<tr><td>Длина:<td><input name="restrict-length" type="text" size="3" onchange="formSetRestriction('length','=');"><td>metres<td><img alt="<" src="icons/waypoint-left.png" title="-" onmousedown="formSetRestriction('length','-');">–/+<img alt=">" src="icons/waypoint-right.png" title="+" onmousedown="formSetRestriction('length','+');">
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span class="hideshow_title">Find</span>
+<input type="button" title="Найти кратчайший маршрут" id="shortest" value="Кратчайший маршрут" onclick="findRoute('shortest');" disabled="disabled">
+<input type="button" title="Найти быстрейший маршут" id="quickest" value="Быстрейший маршрут" onclick="findRoute('quickest');" disabled="disabled">
+</div>
+
+<div class="hideshow_box">
+<span class="hideshow_title">Links</span>
+<a id="permalink_url" href="router.html">Link to this map view</a>
+<br>
+<a id="edit_url" target="edit" style="display: none;">Edit this OSM data</a>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_help_options_show" onclick="hideshow_show('help_options');" class="hideshow_hide">+</span>
+<span id="hideshow_help_options_hide" onclick="hideshow_hide('help_options');" class="hideshow_show">-</span>
+<span class="hideshow_title">Помощь</span>
+<div id="hideshow_help_options_div">
+<div class="scrollable">
+<b>Quick Start</b>
+<br>
+Click on marker icons (above) to place them on the map (right). Then
+drag them to the correct position. Zooming the map before placing the
+markers is probably easiest. Alternatively type the latitude and
+longitude into the boxes above.
+<p>
+Select the transport type, allowed highway types, speed limits, highway
+properties and other restrictions from the options above.
+Select "Shortest" or "Quickest" to calculate the route and display it
+on the map.
+<p>
+<b>Waypoints</b>
+<br>
+Clicking on the marker icons will toggle the display of them on the map.
+When a route is calculated it will visit (as close as possible
+for the selected transport type) each of the waypoints that have
+markers on the map in the order given.
+<p>
+<b>Transport Type</b>
+<br>
+Selecting a transport type will restrict the chosen route to
+those on which it is allowed and set default values for the
+other parameters.
+<p>
+<b>Highway Preferences</b>
+<br>
+The highway preference is selected as a percentage and routes are chosen that
+try to follow the preferred highways.
+For example if a "Primary" road is given a "110%" preference and a "Secondary"
+road is given a "100%" preference then it means that a route on a Primary road
+can be up to 10% longer than on a secondary road and still be selected.
+<p>
+<b>Speed Limits</b>
+<br>
+The speed limits chosen here for the different types of highway apply if the
+highway has no other speed limit marked or it is higher than the chosen one.
+<p>
+<b>Property Preferences</b>
+<br>
+The property preference is selected as a percentage and routes are chosen that
+try to follow highways with the preferred property.
+For example if a "Paved" highway is given a "75%" preference then it means that
+an unpaved highway is automatically given a "25%" preference so that a route on
+a paved highway can be 3 times the length of an unpaved one and still be
+selected.
+<p>
+<b>Other Restrictions</b>
+<br>
+These allow a route to be found that avoids marked limits on
+weight, height, width or length. It is also possible to ignore
+one-way restrictions (e.g. if walking).
+</div>
+</div>
+</div>
+</form>
+</div>
+
+
+<div class="tab_content" id="tab_results_div" style="display: none;">
+
+<div class="hideshow_box">
+<span class="hideshow_title">Статус</span>
+<div id="result_status">
+<div id="result_status_not_run">
+<b><i>Router not run</i></b>
+</div>
+<div id="result_status_running" style="display: none;">
+<b>Router running...</b>
+</div>
+<div id="result_status_complete" style="display: none;">
+<b>Routing completed</b>
+<br>
+<a id="router_log_complete" target="router_log" href="#">View Details</a>
+</div>
+<div id="result_status_error" style="display: none;">
+<b>Router error</b>
+<br>
+<a id="router_log_error" target="router_log" href="#">View Details</a>
+</div>
+<div id="result_status_failed" style="display: none;">
+<b>Router failed to run</b>
+</div>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_shortest_show" onclick="hideshow_show('shortest');" class="hideshow_show">+</span>
+<span id="hideshow_shortest_hide" onclick="hideshow_hide('shortest');" class="hideshow_hide">-</span>
+<span class="hideshow_title">Кратчайший маршрут</span>
+<div id="shortest_status">
+<div id="shortest_status_no_info">
+<b><i>No Information</i></b>
+</div>
+<div id="shortest_status_info" style="display: none;">
+</div>
+</div>
+<div id="hideshow_shortest_div" style="display: none;">
+<div id="shortest_links" style="display: none;">
+<table>
+<tr><td>HTML directions: <td><a id="shortest_html" target="shortest_html" href="#">Open Popup</a>
+<tr><td>GPX track file: <td><a id="shortest_gpx_track" target="shortest_gpx_track" href="#">Open Popup</a>
+<tr><td>GPX route file: <td><a id="shortest_gpx_route" target="shortest_gpx_route" href="#">Open Popup</a>
+<tr><td>Full text file: <td><a id="shortest_text_all" target="shortest_text_all" href="#">Open Popup</a>
+<tr><td>Text file: <td><a id="shortest_text" target="shortest_text" href="#">Open Popup</a>
+</table>
+<hr>
+</div>
+<div id="shortest_route">
+</div>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_quickest_show" onclick="hideshow_show('quickest');" class="hideshow_show">+</span>
+<span id="hideshow_quickest_hide" onclick="hideshow_hide('quickest');" class="hideshow_hide">-</span>
+<span class="hideshow_title">Быстрейший маршрут</span>
+<div id="quickest_status">
+<div id="quickest_status_no_info">
+<b><i>No Information</i></b>
+</div>
+<div id="quickest_status_info" style="display: none;">
+</div>
+</div>
+<div id="hideshow_quickest_div" style="display: none;">
+<div id="quickest_links" style="display: none;">
+<table>
+<tr><td>HTML directions: <td><a id="quickest_html" target="quickest_html" href="#">Open Popup</a>
+<tr><td>GPX track file: <td><a id="quickest_gpx_track" target="quickest_gpx_track" href="#">Open Popup</a>
+<tr><td>GPX route file: <td><a id="quickest_gpx_route" target="quickest_gpx_route" href="#">Open Popup</a>
+<tr><td>Full text file: <td><a id="quickest_text_all" target="quickest_text_all" href="#">Open Popup</a>
+<tr><td>Text file: <td><a id="quickest_text" target="quickest_text" href="#">Open Popup</a>
+</table>
+<hr>
+</div>
+<div id="quickest_route">
+</div>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_help_route_show" onclick="hideshow_show('help_route');" class="hideshow_hide">+</span>
+<span id="hideshow_help_route_hide" onclick="hideshow_hide('help_route');" class="hideshow_show">-</span>
+<span class="hideshow_title">Помощь</span>
+<div id="hideshow_help_route_div">
+<div class="scrollable">
+<b>Quick Start</b>
+<br>
+After calculating a route you can download the GPX file or plain
+text route description (summary or detailed version). Also you
+can view the route description and zoom in to selected parts.
+<p>
+<b>Problem Solving</b>
+<br>
+If the router completes with an error then the most likely cause is
+that it is not possible to find a route between the selected points.
+Moving one or more markers or changing the routing options should
+allow a route to be found.
+<p>
+<b>Output Formats</b>
+<br>
+<dl>
+<dt>HTML instructions
+<dd>A description of the route to take with directions at each
+important junction.
+<dt>GPX track file
+<dd>The same information that is displayed on the map with points
+for every node and lines for every segment.
+<dt>GPX route file
+<dd>The same information that is displayed in text for the route
+with a waypoint for each important junction in the route.
+<dt>Full text file
+<dd>A list of all of the nodes visited as well as the distance
+between them and the cumulative distance for each step of the
+route.
+<dt>Text file
+<dd>The same information that is displayed in text for the route.
+</dl>
+</div>
+</div>
+</div>
+</div>
+
+
+<div class="tab_content" id="tab_data_div" style="display: none;">
+<div class="hideshow_box">
+<span class="hideshow_title">Routino Statistics</span>
+<div id="statistics_data"></div>
+<a id="statistics_link" href="statistics.cgi" onclick="displayStatistics();return(false);">Display data statistics</a>
+</div>
+
+<div class="hideshow_box">
+<span class="hideshow_title">Routino Visualiser</span>
+To see Routino's view of the data there is a data visualiser that allows
+displaying of the underlying data in various ways.
+<br>
+<a id="visualiser_url" href="visualiser.html" target="visualiser">Link to this map view</a>
+</div>
+</div>
+
+</div>
+
+<!-- Right hand side of window - map -->
+
+<div class="right_panel">
+<div class="map" id="map">
+<noscript>
+<p>
+Javascript is <em>required</em> to use this web page because of the interactive map.
+</noscript>
+</div>
+<div class="attribution">
+Router: <a href="http://www.routino.org/" target="routino">Routino</a>
+|
+Geo Data: <span id="attribution_data"></span>
+|
+Тайлы: <span id="attribution_tile"></span>
+</div>
+</div>
+
+</body>
+
+</html>
diff -Nru routino-2.7/web/www/routino/router.leaflet.js routino-2.7.2/web/www/routino/router.leaflet.js
--- routino-2.7/web/www/routino/router.leaflet.js 2014-03-18 20:58:51.000000000 +0100
+++ routino-2.7.2/web/www/routino/router.leaflet.js 2014-05-02 16:50:20.000000000 +0200
@@ -279,6 +279,8 @@
}
updateURLs();
+
+ updateSearchButtons();
}
@@ -932,6 +934,8 @@
}
markerAddRemoveMap(marker,!routino.point[marker].active);
+
+ updateSearchButtons();
}
@@ -1065,6 +1069,8 @@
if(vismarkers==1)
markerAddAfter(1);
+
+ updateSearchButtons();
}
@@ -1074,11 +1080,11 @@
function markerAddBefore(marker)
{
- clearSearchResult(marker);
-
if(vismarkers==mapprops.maxmarkers || marker==1)
return false;
+ clearSearchResult(marker);
+
markerAddForm(++vismarkers);
for(var m=vismarkers;m>marker;m--)
@@ -1094,11 +1100,11 @@
function markerAddAfter(marker) // called from router.html
{
- clearSearchResult(marker);
-
if(vismarkers==mapprops.maxmarkers)
return false;
+ clearSearchResult(marker);
+
markerAddForm(++vismarkers);
for(var m=vismarkers;m>(marker+1);m--)
@@ -1145,6 +1151,31 @@
//
+// Update the search buttons enable/disable.
+//
+
+function updateSearchButtons()
+{
+ var markersactive=0;
+
+ for(var m=1;m<=vismarkers;m++)
+ if(routino.point[m].active)
+ markersactive++;
+
+ if(markersactive<2)
+ {
+ document.getElementById("shortest").disabled="disabled";
+ document.getElementById("quickest").disabled="disabled";
+ }
+ else
+ {
+ document.getElementById("shortest").disabled="";
+ document.getElementById("quickest").disabled="";
+ }
+}
+
+
+//
// Update an icon to set colours and home or normal marker.
//
@@ -1360,7 +1391,15 @@
return false;
if(routino.point[vismarkers].lon==routino.point[1].lon && routino.point[vismarkers].lat==routino.point[1].lat)
- return false;
+ {
+ if(routino.point[vismarkers].active)
+ return false;
+ else
+ {
+ markerToggleMap(vismarkers);
+ return true;
+ }
+ }
if(routino.point[vismarkers].used)
markerAddForm(++vismarkers);
@@ -1370,6 +1409,8 @@
markersmoved=true;
updateURLs();
+
+ updateSearchButtons();
}
@@ -1411,6 +1452,7 @@
routino.point[marker].used=false;
routino.point[marker].home=false;
+ routino.point[marker].active=false;
}
diff -Nru routino-2.7/web/www/routino/router.openlayers.js routino-2.7.2/web/www/routino/router.openlayers.js
--- routino-2.7/web/www/routino/router.openlayers.js 2014-03-18 20:58:58.000000000 +0100
+++ routino-2.7.2/web/www/routino/router.openlayers.js 2014-04-12 16:40:49.000000000 +0200
@@ -279,6 +279,8 @@
}
updateURLs();
+
+ updateSearchButtons();
}
@@ -999,6 +1001,8 @@
}
markerAddRemoveMap(marker,!routino.point[marker].active);
+
+ updateSearchButtons();
}
@@ -1134,6 +1138,8 @@
if(vismarkers==1)
markerAddAfter(1);
+
+ updateSearchButtons();
}
@@ -1143,11 +1149,11 @@
function markerAddBefore(marker)
{
- clearSearchResult(marker);
-
if(vismarkers==mapprops.maxmarkers || marker==1)
return false;
+ clearSearchResult(marker);
+
markerAddForm(++vismarkers);
for(var m=vismarkers;m>marker;m--)
@@ -1163,11 +1169,11 @@
function markerAddAfter(marker) // called from router.html
{
- clearSearchResult(marker);
-
if(vismarkers==mapprops.maxmarkers)
return false;
+ clearSearchResult(marker);
+
markerAddForm(++vismarkers);
for(var m=vismarkers;m>(marker+1);m--)
@@ -1214,6 +1220,31 @@
//
+// Update the search buttons enable/disable.
+//
+
+function updateSearchButtons()
+{
+ var markersactive=0;
+
+ for(var m=1;m<=vismarkers;m++)
+ if(routino.point[m].active)
+ markersactive++;
+
+ if(markersactive<2)
+ {
+ document.getElementById("shortest").disabled="disabled";
+ document.getElementById("quickest").disabled="disabled";
+ }
+ else
+ {
+ document.getElementById("shortest").disabled="";
+ document.getElementById("quickest").disabled="";
+ }
+}
+
+
+//
// Update an icon to set colours and home or normal marker.
//
@@ -1429,7 +1460,15 @@
return false;
if(routino.point[vismarkers].lon==routino.point[1].lon && routino.point[vismarkers].lat==routino.point[1].lat)
- return false;
+ {
+ if(routino.point[vismarkers].active)
+ return false;
+ else
+ {
+ markerToggleMap(vismarkers);
+ return true;
+ }
+ }
if(routino.point[vismarkers].used)
markerAddForm(++vismarkers);
@@ -1439,6 +1478,8 @@
markersmoved=true;
updateURLs();
+
+ updateSearchButtons();
}
@@ -1480,6 +1521,7 @@
routino.point[marker].used=false;
routino.point[marker].home=false;
+ routino.point[marker].active=false;
}
diff -Nru routino-2.7/web/www/routino/search.cgi routino-2.7.2/web/www/routino/search.cgi
--- routino-2.7/web/www/routino/search.cgi 2014-03-08 20:14:58.000000000 +0100
+++ routino-2.7.2/web/www/routino/search.cgi 2014-04-23 19:33:26.000000000 +0200
@@ -85,7 +85,7 @@
# Return the output
-print header('text/plain');
+print header(-type=>'text/plain',-charset=>'utf-8');
print "$marker\n";
print "$search_time\n";
diff -Nru routino-2.7/web/www/routino/search.pl routino-2.7.2/web/www/routino/search.pl
--- routino-2.7/web/www/routino/search.pl 2014-03-08 20:35:27.000000000 +0100
+++ routino-2.7.2/web/www/routino/search.pl 2014-04-23 19:30:09.000000000 +0200
@@ -24,6 +24,9 @@
# Use the directory paths script
require "paths.pl";
+# Use the perl encoding/decoding functions
+use Encode qw(decode encode);
+
# Use the perl URI module
use URI::Escape;
@@ -108,7 +111,7 @@
{
my $lat=$place->{"lat"};
my $lon=$place->{"lon"};
- my $name=$place->{"display_name"};
+ my $name=encode('utf8',$place->{"display_name"});
push(@places,"$lat $lon $name");
}
diff -Nru routino-2.7/web/www/routino/visualiser.cgi routino-2.7.2/web/www/routino/visualiser.cgi
--- routino-2.7/web/www/routino/visualiser.cgi 2014-03-08 20:18:10.000000000 +0100
+++ routino-2.7.2/web/www/routino/visualiser.cgi 2014-04-29 20:03:32.000000000 +0200
@@ -42,7 +42,7 @@
"latmax" => "[-0-9.]+",
"lonmin" => "[-0-9.]+",
"lonmax" => "[-0-9.]+",
- "data" => "(junctions|super|oneway|highway-.*|transport-.*|barrier-.*|turns|speed|weight|height|width|length|property-.*|errorlogs)",
+ "data" => "(junctions|super|waytype-.*|highway-.*|transport-.*|barrier-.*|turns|speed|weight|height|width|length|property-.*|errorlogs)",
"dump" => "(node|segment|turn-relation|errorlog)[0-9]+"
);
@@ -87,7 +87,7 @@
my %limits=(
"junctions" => 0.2,
"super" => 0.2,
- "oneway" => 0.2,
+ "waytype" => 0.2,
"highway" => 0.2,
"transport" => 0.2,
"barrier" => 0.3,
@@ -115,6 +115,7 @@
}
my $subdata=$data;
+ $subdata="waytype" if($data =~ m%waytype-%);
$subdata="highway" if($data =~ m%highway-%);
$subdata="transport" if($data =~ m%transport-%);
$subdata="barrier" if($data =~ m%barrier-%);
diff -Nru routino-2.7/web/www/routino/visualiser.html routino-2.7.2/web/www/routino/visualiser.html
--- routino-2.7/web/www/routino/visualiser.html 2014-03-15 12:45:16.000000000 +0100
+++ routino-2.7.2/web/www/routino/visualiser.html 2014-06-05 20:16:25.000000000 +0200
@@ -83,7 +83,7 @@
<td><a id="lang_en_url" href="visualiser.html.en" title="English language webpage">English</a>
<td>(EN)
<tr>
-<td><a id="lang_de_url" href="visualiser.html.de" title="Deutsche Webseite">Deutsche</a>
+<td><a id="lang_de_url" href="visualiser.html.de" title="Deutsche Webseite">Deutsch</a>
<td>(DE)
<tr>
<td><a id="lang_fr_url" href="visualiser.html.fr" title="Francais">Francais</a>
@@ -92,7 +92,7 @@
<td><a id="lang_nl_url" href="visualiser.html.nl" title="Nederlandse web pagina">Nederlands</a>
<td>(NL)
<tr>
-<td>
+<td><a id="lang_ru_url" href="visualiser.html.ru" title="Русский">Русский</a>
<td>(RU)
</table>
<a target="translation" href="http://www.routino.org/translations/">Routino Translations</a>
@@ -122,8 +122,8 @@
<div id="result_status_super" style="display: none;">
<b>Processed # super-nodes/segments</b>
</div>
-<div id="result_status_oneway" style="display: none;">
-<b>Processed # oneway segments</b>
+<div id="result_status_waytype" style="display: none;">
+<b>Processed # way type segments</b>
</div>
<div id="result_status_highway" style="display: none;">
<b>Processed # segments</b>
@@ -156,7 +156,7 @@
<div id="hideshow_junctions_div" style="display: none;">
Each node that is a dead-end, a junction of two highways of different
types (or different properties) or a junction where more than two segments
-join are shown colour-coded:
+join are shown colour-coded.
<br>
<table>
<tr><td><img src="icons/ball-1.png" alt="1" ><td>only one highway - a dead-end.
@@ -181,13 +181,20 @@
</div>
<div class="hideshow_box">
-<span id="hideshow_oneway_show" onclick="hideshow_show('oneway');" class="hideshow_show">+</span>
-<span id="hideshow_oneway_hide" onclick="hideshow_hide('oneway');" class="hideshow_hide">-</span>
-<input type="button" id="oneway" onclick="displayData('oneway');" value="Display One-way Segments">
-<div id="hideshow_oneway_div" style="display: none;">
-Each one-way segment is shown with a coloured triangle indicating the
-allowed direction. The colours of the triangles depend on the bearing
-of the highway segment.
+<span id="hideshow_waytype_show" onclick="hideshow_show('waytype');" class="hideshow_show">+</span>
+<span id="hideshow_waytype_hide" onclick="hideshow_hide('waytype');" class="hideshow_hide">-</span>
+<input type="button" id="waytype" onclick="displayData('waytype');" value="Display Way Type Segments">
+<div id="hideshow_waytype_div" style="display: none;">
+Each highway segment of special types (one-way, cycle-both-ways and roundabout) are
+shown. For one-way segments a coloured triangle indicates the allowed direction.
+The colours of the triangles depend on the bearing of the highway segment.
+<form name="waytypes" id="waytypes" action="#" method="get" onsubmit="return false;">
+<table>
+<tr><td>One-way segments: <td><input name="waytype" type="radio" value="oneway" onchange="displayData('waytype');" checked>
+<tr><td>Cycle-both-way segments:<td><input name="waytype" type="radio" value="cyclebothways" onchange="displayData('waytype');">
+<tr><td>Roundabout segments: <td><input name="waytype" type="radio" value="roundabout" onchange="displayData('waytype');">
+</table>
+</form>
</div>
</div>
@@ -366,7 +373,6 @@
<tr><td>Tunnel: <td><input name="property" type="radio" value="tunnel" onchange="displayData('property');">
<tr><td>Walking Route: <td><input name="property" type="radio" value="footroute" onchange="displayData('property');">
<tr><td>Bicycle Route: <td><input name="property" type="radio" value="bicycleroute" onchange="displayData('property');">
-<tr><td>Cycle Both Ways:<td><input name="property" type="radio" value="cyclebothways" onchange="displayData('property');">
</table>
</form>
</div>
diff -Nru routino-2.7/web/www/routino/visualiser.html.de routino-2.7.2/web/www/routino/visualiser.html.de
--- routino-2.7/web/www/routino/visualiser.html.de 2014-03-15 12:45:16.000000000 +0100
+++ routino-2.7.2/web/www/routino/visualiser.html.de 2014-06-05 20:16:25.000000000 +0200
@@ -6,7 +6,7 @@
<meta name="keywords" content="openstreetmap routino verifier">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=no">
-<title>Routino : Data Visualiser for Routing Data</title>
+<title>Routino : Visualisierung der Routing-Daten</title>
<!--
Routino data visualiser web page.
@@ -83,7 +83,7 @@
<td><a id="lang_en_url" href="visualiser.html.en" title="English language webpage">English</a>
<td>(EN)
<tr>
-<td><a id="lang_de_url" href="visualiser.html.de" title="Deutsche Webseite">Deutsche</a>
+<td><a id="lang_de_url" href="visualiser.html.de" title="Deutsche Webseite">Deutsch</a>
<td>(DE)
<tr>
<td><a id="lang_fr_url" href="visualiser.html.fr" title="Francais">Francais</a>
@@ -92,7 +92,7 @@
<td><a id="lang_nl_url" href="visualiser.html.nl" title="Nederlandse web pagina">Nederlands</a>
<td>(NL)
<tr>
-<td>
+<td><a id="lang_ru_url" href="visualiser.html.ru" title="Русский">Русский</a>
<td>(RU)
</table>
<a target="translation" href="http://www.routino.org/translations/">Routino Translations</a>
@@ -100,7 +100,7 @@
</div>
<div class="hideshow_box">
-<span class="hideshow_title">Instructions</span>
+<span class="hideshow_title">Anweisungen</span>
Zoom in and then use the buttons below to download the data. The
server will only return data if the selected area is small enough.
</div>
@@ -109,42 +109,42 @@
<span class="hideshow_title">Status</span>
<div id="result_status">
<div id="result_status_no_data">
-<b><i>No data displayed</i></b>
+<b><i>Keine Daten angezeigt</i></b>
</div>
<div id="result_status_data" style="display: none;">
</div>
<div id="result_status_failed" style="display: none;">
-<b>Failed to get visualiser data!</b>
+<b>Fehler bei der Erstellung der visuellen Daten!</b>
</div>
<div id="result_status_junctions" style="display: none;">
-<b>Processed # junctions</b>
+<b># Kreuzungen verarbeitet</b>
</div>
<div id="result_status_super" style="display: none;">
-<b>Processed # super-nodes/segments</b>
+<b># Super-Knoten/Segmente verarbeitet</b>
</div>
-<div id="result_status_oneway" style="display: none;">
-<b>Processed # oneway segments</b>
+<div id="result_status_waytype" style="display: none;">
+<b># Wegtypen Segmente verarbeitet</b>
</div>
<div id="result_status_highway" style="display: none;">
-<b>Processed # segments</b>
+<b># Segmente verarbeitet</b>
</div>
<div id="result_status_transport" style="display: none;">
-<b>Processed # segments</b>
+<b># Segmente verarbeitet</b>
</div>
<div id="result_status_barrier" style="display: none;">
-<b>Processed # nodes</b>
+<b># Knoten verarbeitet</b>
</div>
<div id="result_status_turns" style="display: none;">
-<b>Processed # turn restrictions</b>
+<b># Abbiegebeschrängkungen verarbeitet</b>
</div>
<div id="result_status_limit" style="display: none;">
<b>Processed # limit changes</b>
</div>
<div id="result_status_property" style="display: none;">
-<b>Processed # segments</b>
+<b># Segmente verarbeitet</b>
</div>
<div id="result_status_errorlogs" style="display: none;">
-<b>Processed # error logs</b>
+<b># Error Logs erstellt</b>
</div>
</div>
</div>
@@ -152,20 +152,20 @@
<div class="hideshow_box">
<span id="hideshow_junctions_show" onclick="hideshow_show('junctions');" class="hideshow_show">+</span>
<span id="hideshow_junctions_hide" onclick="hideshow_hide('junctions');" class="hideshow_hide">-</span>
-<input type="button" id="junctions" onclick="displayData('junctions');" value="Display Junctions">
+<input type="button" id="junctions" onclick="displayData('junctions');" value="Kreuzungen anzeigen">
<div id="hideshow_junctions_div" style="display: none;">
Each node that is a dead-end, a junction of two highways of different
types (or different properties) or a junction where more than two segments
-join are shown colour-coded:
+join are shown colour-coded.
<br>
<table>
<tr><td><img src="icons/ball-1.png" alt="1" ><td>only one highway - a dead-end.
-<tr><td><img src="icons/ball-2.png" alt="2" ><td>two highways of different types meet.
-<tr><td><img src="icons/ball-3.png" alt="3" ><td>three highways meet.
-<tr><td><img src="icons/ball-4.png" alt="4" ><td>four highways meet.
-<tr><td><img src="icons/ball-5.png" alt="5" ><td>five highways meet.
-<tr><td><img src="icons/ball-6.png" alt="6" ><td>six highways meet.
-<tr><td><img src="icons/ball-7.png" alt="7+"><td>seven (or more) highways meet.
+<tr><td><img src="icons/ball-2.png" alt="2" ><td>Aufeinandertreffen zweier Wege unterschiedlichen Typs.
+<tr><td><img src="icons/ball-3.png" alt="3" ><td>Aufeinandertreffen von drei Wegen.
+<tr><td><img src="icons/ball-4.png" alt="4" ><td>Aufeinandertreffen von vier Wegen.
+<tr><td><img src="icons/ball-5.png" alt="5" ><td>Aufeinandertreffen von fünf Wegen.
+<tr><td><img src="icons/ball-6.png" alt="6" ><td>Aufeinandertreffen von sechs Wegen.
+<tr><td><img src="icons/ball-7.png" alt="7+"><td>Aufeinandertreffen von sieben oder mehr Wegen.
</table>
</div>
</div>
@@ -173,7 +173,7 @@
<div class="hideshow_box">
<span id="hideshow_super_show" onclick="hideshow_show('super');" class="hideshow_show">+</span>
<span id="hideshow_super_hide" onclick="hideshow_hide('super');" class="hideshow_hide">-</span>
-<input type="button" id="super" onclick="displayData('super');" value="Display Super Segments">
+<input type="button" id="super" onclick="displayData('super');" value="Super-Segments anzeigen">
<div id="hideshow_super_div" style="display: none;">
Each super-node and the associated super-segments are shown (see
algorithm page for description).
@@ -181,13 +181,20 @@
</div>
<div class="hideshow_box">
-<span id="hideshow_oneway_show" onclick="hideshow_show('oneway');" class="hideshow_show">+</span>
-<span id="hideshow_oneway_hide" onclick="hideshow_hide('oneway');" class="hideshow_hide">-</span>
-<input type="button" id="oneway" onclick="displayData('oneway');" value="Display One-way Segments">
-<div id="hideshow_oneway_div" style="display: none;">
-Each one-way segment is shown with a coloured triangle indicating the
-allowed direction. The colours of the triangles depend on the bearing
-of the highway segment.
+<span id="hideshow_waytype_show" onclick="hideshow_show('waytype');" class="hideshow_show">+</span>
+<span id="hideshow_waytype_hide" onclick="hideshow_hide('waytype');" class="hideshow_hide">-</span>
+<input type="button" id="waytype" onclick="displayData('waytype');" value="Display Way Type Segments">
+<div id="hideshow_waytype_div" style="display: none;">
+Each highway segment of special types (one-way, cycle-both-ways and roundabout) are
+shown. For one-way segments a coloured triangle indicates the allowed direction.
+The colours of the triangles depend on the bearing of the highway segment.
+<form name="waytypes" id="waytypes" action="#" method="get" onsubmit="return false;">
+<table>
+<tr><td>One-way segments: <td><input name="waytype" type="radio" value="oneway" onchange="displayData('waytype');" checked>
+<tr><td>Cycle-both-way segments:<td><input name="waytype" type="radio" value="cyclebothways" onchange="displayData('waytype');">
+<tr><td>Roundabout segments: <td><input name="waytype" type="radio" value="roundabout" onchange="displayData('waytype');">
+</table>
+</form>
</div>
</div>
@@ -200,18 +207,18 @@
<form name="highways" id="highways" action="#" method="get" onsubmit="return false;">
<table>
<tr><td>Autobahn: <td><input name="highway" type="radio" value="motorway" onchange="displayData('highway');">
-<tr><td>Schnellstraße: <td><input name="highway" type="radio" value="trunk" onchange="displayData('highway');">
-<tr><td>Bundesstraße: <td><input name="highway" type="radio" value="primary" onchange="displayData('highway');" checked>
-<tr><td>Landesstraße: <td><input name="highway" type="radio" value="secondary" onchange="displayData('highway');">
-<tr><td>Hauptstraße: <td><input name="highway" type="radio" value="tertiary" onchange="displayData('highway');">
-<tr><td>Straße:<td><input name="highway" type="radio" value="unclassified" onchange="displayData('highway');">
-<tr><td>Wohnstraße: <td><input name="highway" type="radio" value="residential" onchange="displayData('highway');">
+<tr><td>Schnellstraße: <td><input name="highway" type="radio" value="trunk" onchange="displayData('highway');">
+<tr><td>Bundesstraße: <td><input name="highway" type="radio" value="primary" onchange="displayData('highway');" checked>
+<tr><td>Landesstraße: <td><input name="highway" type="radio" value="secondary" onchange="displayData('highway');">
+<tr><td>Hauptstraße: <td><input name="highway" type="radio" value="tertiary" onchange="displayData('highway');">
+<tr><td>Straße:<td><input name="highway" type="radio" value="unclassified" onchange="displayData('highway');">
+<tr><td>Wohnstraße: <td><input name="highway" type="radio" value="residential" onchange="displayData('highway');">
<tr><td>Zufahrtsweg: <td><input name="highway" type="radio" value="service" onchange="displayData('highway');">
<tr><td>Feld-(Wald-)weg: <td><input name="highway" type="radio" value="track" onchange="displayData('highway');">
<tr><td>Fahrradweg: <td><input name="highway" type="radio" value="cycleway" onchange="displayData('highway');">
<tr><td>Weg: <td><input name="highway" type="radio" value="path" onchange="displayData('highway');">
-<tr><td>Fußweg: <td><input name="highway" type="radio" value="steps" onchange="displayData('highway');">
-<tr><td>Fähre: <td><input name="highway" type="radio" value="ferry" onchange="displayData('highway');">
+<tr><td>Fußweg: <td><input name="highway" type="radio" value="steps" onchange="displayData('highway');">
+<tr><td>Fähre: <td><input name="highway" type="radio" value="ferry" onchange="displayData('highway');">
</table>
</form>
</div>
@@ -225,7 +232,7 @@
Each segment allowed for the chosen type of transport is drawn.
<form name="transports" id="transports" action="#" method="get" onsubmit="return false;">
<table>
-<tr><td>Fußgänger: <td><input name="transport" type="radio" value="foot" onchange="displayData('transport');">
+<tr><td>Fußgänger: <td><input name="transport" type="radio" value="foot" onchange="displayData('transport');">
<tr><td>Reiter: <td><input name="transport" type="radio" value="horse" onchange="displayData('transport');">
<tr><td>Rollstuhl:<td><input name="transport" type="radio" value="wheelchair" onchange="displayData('transport');">
<tr><td>Fahrrad: <td><input name="transport" type="radio" value="bicycle" onchange="displayData('transport');">
@@ -248,7 +255,7 @@
Each barrier blocking the chosen type of transport is drawn.
<form name="barriers" id="barriers" action="#" method="get" onsubmit="return false;">
<table>
-<tr><td>Fußgänger: <td><input name="barrier" type="radio" value="foot" onchange="displayData('barrier');">
+<tr><td>Fußgänger: <td><input name="barrier" type="radio" value="foot" onchange="displayData('barrier');">
<tr><td>Reiter: <td><input name="barrier" type="radio" value="horse" onchange="displayData('barrier');">
<tr><td>Rollstuhl:<td><input name="barrier" type="radio" value="wheelchair" onchange="displayData('barrier');">
<tr><td>Fahrrad: <td><input name="barrier" type="radio" value="bicycle" onchange="displayData('barrier');">
@@ -299,7 +306,7 @@
<table>
<tr><td><img src="icons/ball-1.png" alt="." ><td>Change of limit
<tr><td><img src="icons/limit-no.png" alt="()" ><td>No specified limit
-<tr><td><img src="icons/limit-8.0.png" alt="(8.0)"><td>8.0 tonnes weight limit
+<tr><td><img src="icons/limit-8.0.png" alt="(8.0)"><td>8 Tonnen Wegbeschränkung
</table>
</div>
</div>
@@ -307,7 +314,7 @@
<div class="hideshow_box">
<span id="hideshow_height_show" onclick="hideshow_show('height');" class="hideshow_show">+</span>
<span id="hideshow_height_hide" onclick="hideshow_hide('height');" class="hideshow_hide">-</span>
-<input type="button" id="height" onclick="displayData('height');" value="Display Height Limits">
+<input type="button" id="height" onclick="displayData('height');" value="Maximale Höhe anzeigen ">
<div id="hideshow_height_div" style="display: none;">
Each node that joins segments with different height limits is shown
along with the height limit on relevant segments.
@@ -323,7 +330,7 @@
<div class="hideshow_box">
<span id="hideshow_width_show" onclick="hideshow_show('width');" class="hideshow_show">+</span>
<span id="hideshow_width_hide" onclick="hideshow_hide('width');" class="hideshow_hide">-</span>
-<input type="button" id="width" onclick="displayData('width');" value="Display Width Limits">
+<input type="button" id="width" onclick="displayData('width');" value="Maximale Breite anzeigen">
<div id="hideshow_width_div" style="display: none;">
Each node that joins segments with different width limits is shown
along with the width limit on relevant segments.
@@ -362,11 +369,10 @@
<table>
<tr><td>befestigt: <td><input name="property" type="radio" value="paved" onchange="displayData('property');" checked>
<tr><td>mehrspurig: <td><input name="property" type="radio" value="multilane" onchange="displayData('property');">
-<tr><td>Brücken: <td><input name="property" type="radio" value="bridge" onchange="displayData('property');">
+<tr><td>Brücken: <td><input name="property" type="radio" value="bridge" onchange="displayData('property');">
<tr><td>Tunnel: <td><input name="property" type="radio" value="tunnel" onchange="displayData('property');">
<tr><td>Wanderweg: <td><input name="property" type="radio" value="footroute" onchange="displayData('property');">
<tr><td>Radweg: <td><input name="property" type="radio" value="bicycleroute" onchange="displayData('property');">
-<tr><td>Cycle Both Ways:<td><input name="property" type="radio" value="cyclebothways" onchange="displayData('property');">
</table>
</form>
</div>
@@ -382,7 +388,7 @@
</div>
<div class="hideshow_box">
-<input type="button" id="clear" onclick="displayData('');" value="Clear data">
+<input type="button" id="clear" onclick="displayData('');" value="Daten zurücksetzen">
</div>
<div class="hideshow_box">
@@ -441,15 +447,15 @@
<div class="map" id="map">
<noscript>
<p>
-Javascript is <em>required</em> to use this web page because of the interactive map.
+Um die interaktive Karte zu nutzen iWork Javascript benötigt.
</noscript>
</div>
<div class="attribution">
Router: <a href="http://www.routino.org/" target="routino">Routino</a>
|
-Geo Data: <span id="attribution_data"></span>
+Geodaten: <span id="attribution_data"></span>
|
-Tiles: <span id="attribution_tile"></span>
+Kacheln: <span id="attribution_tile"></span>
</div>
</div>
diff -Nru routino-2.7/web/www/routino/visualiser.html.en routino-2.7.2/web/www/routino/visualiser.html.en
--- routino-2.7/web/www/routino/visualiser.html.en 2014-03-15 12:45:16.000000000 +0100
+++ routino-2.7.2/web/www/routino/visualiser.html.en 2014-06-05 20:16:25.000000000 +0200
@@ -83,7 +83,7 @@
<td><a id="lang_en_url" href="visualiser.html.en" title="English language webpage">English</a>
<td>(EN)
<tr>
-<td><a id="lang_de_url" href="visualiser.html.de" title="Deutsche Webseite">Deutsche</a>
+<td><a id="lang_de_url" href="visualiser.html.de" title="Deutsche Webseite">Deutsch</a>
<td>(DE)
<tr>
<td><a id="lang_fr_url" href="visualiser.html.fr" title="Francais">Francais</a>
@@ -92,7 +92,7 @@
<td><a id="lang_nl_url" href="visualiser.html.nl" title="Nederlandse web pagina">Nederlands</a>
<td>(NL)
<tr>
-<td>
+<td><a id="lang_ru_url" href="visualiser.html.ru" title="Русский">Русский</a>
<td>(RU)
</table>
<a target="translation" href="http://www.routino.org/translations/">Routino Translations</a>
@@ -122,8 +122,8 @@
<div id="result_status_super" style="display: none;">
<b>Processed # super-nodes/segments</b>
</div>
-<div id="result_status_oneway" style="display: none;">
-<b>Processed # oneway segments</b>
+<div id="result_status_waytype" style="display: none;">
+<b>Processed # way type segments</b>
</div>
<div id="result_status_highway" style="display: none;">
<b>Processed # segments</b>
@@ -156,7 +156,7 @@
<div id="hideshow_junctions_div" style="display: none;">
Each node that is a dead-end, a junction of two highways of different
types (or different properties) or a junction where more than two segments
-join are shown colour-coded:
+join are shown colour-coded.
<br>
<table>
<tr><td><img src="icons/ball-1.png" alt="1" ><td>only one highway - a dead-end.
@@ -181,13 +181,20 @@
</div>
<div class="hideshow_box">
-<span id="hideshow_oneway_show" onclick="hideshow_show('oneway');" class="hideshow_show">+</span>
-<span id="hideshow_oneway_hide" onclick="hideshow_hide('oneway');" class="hideshow_hide">-</span>
-<input type="button" id="oneway" onclick="displayData('oneway');" value="Display One-way Segments">
-<div id="hideshow_oneway_div" style="display: none;">
-Each one-way segment is shown with a coloured triangle indicating the
-allowed direction. The colours of the triangles depend on the bearing
-of the highway segment.
+<span id="hideshow_waytype_show" onclick="hideshow_show('waytype');" class="hideshow_show">+</span>
+<span id="hideshow_waytype_hide" onclick="hideshow_hide('waytype');" class="hideshow_hide">-</span>
+<input type="button" id="waytype" onclick="displayData('waytype');" value="Display Way Type Segments">
+<div id="hideshow_waytype_div" style="display: none;">
+Each highway segment of special types (one-way, cycle-both-ways and roundabout) are
+shown. For one-way segments a coloured triangle indicates the allowed direction.
+The colours of the triangles depend on the bearing of the highway segment.
+<form name="waytypes" id="waytypes" action="#" method="get" onsubmit="return false;">
+<table>
+<tr><td>One-way segments: <td><input name="waytype" type="radio" value="oneway" onchange="displayData('waytype');" checked>
+<tr><td>Cycle-both-way segments:<td><input name="waytype" type="radio" value="cyclebothways" onchange="displayData('waytype');">
+<tr><td>Roundabout segments: <td><input name="waytype" type="radio" value="roundabout" onchange="displayData('waytype');">
+</table>
+</form>
</div>
</div>
@@ -366,7 +373,6 @@
<tr><td>Tunnel: <td><input name="property" type="radio" value="tunnel" onchange="displayData('property');">
<tr><td>Walking Route: <td><input name="property" type="radio" value="footroute" onchange="displayData('property');">
<tr><td>Bicycle Route: <td><input name="property" type="radio" value="bicycleroute" onchange="displayData('property');">
-<tr><td>Cycle Both Ways:<td><input name="property" type="radio" value="cyclebothways" onchange="displayData('property');">
</table>
</form>
</div>
diff -Nru routino-2.7/web/www/routino/visualiser.html.fr routino-2.7.2/web/www/routino/visualiser.html.fr
--- routino-2.7/web/www/routino/visualiser.html.fr 2014-03-15 12:45:17.000000000 +0100
+++ routino-2.7.2/web/www/routino/visualiser.html.fr 2014-06-05 20:16:26.000000000 +0200
@@ -83,7 +83,7 @@
<td><a id="lang_en_url" href="visualiser.html.en" title="English language webpage">English</a>
<td>(EN)
<tr>
-<td><a id="lang_de_url" href="visualiser.html.de" title="Deutsche Webseite">Deutsche</a>
+<td><a id="lang_de_url" href="visualiser.html.de" title="Deutsche Webseite">Deutsch</a>
<td>(DE)
<tr>
<td><a id="lang_fr_url" href="visualiser.html.fr" title="Francais">Francais</a>
@@ -92,7 +92,7 @@
<td><a id="lang_nl_url" href="visualiser.html.nl" title="Nederlandse web pagina">Nederlands</a>
<td>(NL)
<tr>
-<td>
+<td><a id="lang_ru_url" href="visualiser.html.ru" title="Русский">Русский</a>
<td>(RU)
</table>
<a target="translation" href="http://www.routino.org/translations/">Routino Translations</a>
@@ -122,8 +122,8 @@
<div id="result_status_super" style="display: none;">
<b>Processed # super-nodes/segments</b>
</div>
-<div id="result_status_oneway" style="display: none;">
-<b>Processed # oneway segments</b>
+<div id="result_status_waytype" style="display: none;">
+<b>Processed # way type segments</b>
</div>
<div id="result_status_highway" style="display: none;">
<b>Processed # segments</b>
@@ -156,7 +156,7 @@
<div id="hideshow_junctions_div" style="display: none;">
Each node that is a dead-end, a junction of two highways of different
types (or different properties) or a junction where more than two segments
-join are shown colour-coded:
+join are shown colour-coded.
<br>
<table>
<tr><td><img src="icons/ball-1.png" alt="1" ><td>only one highway - a dead-end.
@@ -181,13 +181,20 @@
</div>
<div class="hideshow_box">
-<span id="hideshow_oneway_show" onclick="hideshow_show('oneway');" class="hideshow_show">+</span>
-<span id="hideshow_oneway_hide" onclick="hideshow_hide('oneway');" class="hideshow_hide">-</span>
-<input type="button" id="oneway" onclick="displayData('oneway');" value="Display One-way Segments">
-<div id="hideshow_oneway_div" style="display: none;">
-Each one-way segment is shown with a coloured triangle indicating the
-allowed direction. The colours of the triangles depend on the bearing
-of the highway segment.
+<span id="hideshow_waytype_show" onclick="hideshow_show('waytype');" class="hideshow_show">+</span>
+<span id="hideshow_waytype_hide" onclick="hideshow_hide('waytype');" class="hideshow_hide">-</span>
+<input type="button" id="waytype" onclick="displayData('waytype');" value="Display Way Type Segments">
+<div id="hideshow_waytype_div" style="display: none;">
+Each highway segment of special types (one-way, cycle-both-ways and roundabout) are
+shown. For one-way segments a coloured triangle indicates the allowed direction.
+The colours of the triangles depend on the bearing of the highway segment.
+<form name="waytypes" id="waytypes" action="#" method="get" onsubmit="return false;">
+<table>
+<tr><td>One-way segments: <td><input name="waytype" type="radio" value="oneway" onchange="displayData('waytype');" checked>
+<tr><td>Cycle-both-way segments:<td><input name="waytype" type="radio" value="cyclebothways" onchange="displayData('waytype');">
+<tr><td>Roundabout segments: <td><input name="waytype" type="radio" value="roundabout" onchange="displayData('waytype');">
+</table>
+</form>
</div>
</div>
@@ -204,8 +211,8 @@
<tr><td>Primaire: <td><input name="highway" type="radio" value="primary" onchange="displayData('highway');" checked>
<tr><td>Secondaire: <td><input name="highway" type="radio" value="secondary" onchange="displayData('highway');">
<tr><td>Tertiaire: <td><input name="highway" type="radio" value="tertiary" onchange="displayData('highway');">
-<tr><td>Non classée:<td><input name="highway" type="radio" value="unclassified" onchange="displayData('highway');">
-<tr><td>Résidentiel: <td><input name="highway" type="radio" value="residential" onchange="displayData('highway');">
+<tr><td>Non classée:<td><input name="highway" type="radio" value="unclassified" onchange="displayData('highway');">
+<tr><td>Résidentiel: <td><input name="highway" type="radio" value="residential" onchange="displayData('highway');">
<tr><td>Service: <td><input name="highway" type="radio" value="service" onchange="displayData('highway');">
<tr><td>Chemin: <td><input name="highway" type="radio" value="track" onchange="displayData('highway');">
<tr><td>Voie cyclable: <td><input name="highway" type="radio" value="cycleway" onchange="displayData('highway');">
@@ -225,8 +232,8 @@
Each segment allowed for the chosen type of transport is drawn.
<form name="transports" id="transports" action="#" method="get" onsubmit="return false;">
<table>
-<tr><td>À pied: <td><input name="transport" type="radio" value="foot" onchange="displayData('transport');">
-<tr><td>À cheval: <td><input name="transport" type="radio" value="horse" onchange="displayData('transport');">
+<tr><td>À pied: <td><input name="transport" type="radio" value="foot" onchange="displayData('transport');">
+<tr><td>À cheval: <td><input name="transport" type="radio" value="horse" onchange="displayData('transport');">
<tr><td>Fauteuil roulant:<td><input name="transport" type="radio" value="wheelchair" onchange="displayData('transport');">
<tr><td>Bicyclette: <td><input name="transport" type="radio" value="bicycle" onchange="displayData('transport');">
<tr><td>Mobilette: <td><input name="transport" type="radio" value="moped" onchange="displayData('transport');">
@@ -248,8 +255,8 @@
Each barrier blocking the chosen type of transport is drawn.
<form name="barriers" id="barriers" action="#" method="get" onsubmit="return false;">
<table>
-<tr><td>À pied: <td><input name="barrier" type="radio" value="foot" onchange="displayData('barrier');">
-<tr><td>À cheval: <td><input name="barrier" type="radio" value="horse" onchange="displayData('barrier');">
+<tr><td>À pied: <td><input name="barrier" type="radio" value="foot" onchange="displayData('barrier');">
+<tr><td>À cheval: <td><input name="barrier" type="radio" value="horse" onchange="displayData('barrier');">
<tr><td>Fauteuil roulant:<td><input name="barrier" type="radio" value="wheelchair" onchange="displayData('barrier');">
<tr><td>Bicyclette: <td><input name="barrier" type="radio" value="bicycle" onchange="displayData('barrier');">
<tr><td>Mobilette: <td><input name="barrier" type="radio" value="moped" onchange="displayData('barrier');">
@@ -360,13 +367,12 @@
Each segment of the highways with a particular property is drawn.
<form name="properties" id="properties" action="#" method="get" onsubmit="return false;">
<table>
-<tr><td>Pavée: <td><input name="property" type="radio" value="paved" onchange="displayData('property');" checked>
+<tr><td>Pavée: <td><input name="property" type="radio" value="paved" onchange="displayData('property');" checked>
<tr><td>Voies multiples: <td><input name="property" type="radio" value="multilane" onchange="displayData('property');">
<tr><td>Pont: <td><input name="property" type="radio" value="bridge" onchange="displayData('property');">
<tr><td>Tunnel: <td><input name="property" type="radio" value="tunnel" onchange="displayData('property');">
-<tr><td>Itinér. piéton: <td><input name="property" type="radio" value="footroute" onchange="displayData('property');">
-<tr><td>Itinér. cycle: <td><input name="property" type="radio" value="bicycleroute" onchange="displayData('property');">
-<tr><td>Cycle Both Ways:<td><input name="property" type="radio" value="cyclebothways" onchange="displayData('property');">
+<tr><td>Itinér. piéton: <td><input name="property" type="radio" value="footroute" onchange="displayData('property');">
+<tr><td>Itinér. cycle: <td><input name="property" type="radio" value="bicycleroute" onchange="displayData('property');">
</table>
</form>
</div>
@@ -389,7 +395,7 @@
<span class="hideshow_title">Liens</span>
<a id="permalink_url" href="visualiser.html">Lien vers cet outil de visualisation</a>
<br>
-<a id="edit_url" target="edit" style="display: none;">Editer cette donnée OSM</a>
+<a id="edit_url" target="edit" style="display: none;">Editer cette donnée OSM</a>
</div>
<div class="hideshow_box">
@@ -429,7 +435,7 @@
<div class="hideshow_box">
<span class="hideshow_title">Routino Statistiques</span>
<div id="statistics_data"></div>
-<a id="statistics_link" href="statistics.cgi" onclick="displayStatistics();return(false);">Afficher les données statistiques</a>
+<a id="statistics_link" href="statistics.cgi" onclick="displayStatistics();return(false);">Afficher les données statistiques</a>
</div>
</div>
@@ -441,7 +447,7 @@
<div class="map" id="map">
<noscript>
<p>
-Javascript est <em>nécessaire</em> pour cette page web à cause de la carte intéractive.
+Javascript est <em>nécessaire</em> pour cette page web à cause de la carte intéractive.
</noscript>
</div>
<div class="attribution">
diff -Nru routino-2.7/web/www/routino/visualiser.html.nl routino-2.7.2/web/www/routino/visualiser.html.nl
--- routino-2.7/web/www/routino/visualiser.html.nl 2014-03-15 12:45:17.000000000 +0100
+++ routino-2.7.2/web/www/routino/visualiser.html.nl 2014-06-05 20:16:26.000000000 +0200
@@ -83,7 +83,7 @@
<td><a id="lang_en_url" href="visualiser.html.en" title="English language webpage">English</a>
<td>(EN)
<tr>
-<td><a id="lang_de_url" href="visualiser.html.de" title="Deutsche Webseite">Deutsche</a>
+<td><a id="lang_de_url" href="visualiser.html.de" title="Deutsche Webseite">Deutsch</a>
<td>(DE)
<tr>
<td><a id="lang_fr_url" href="visualiser.html.fr" title="Francais">Francais</a>
@@ -92,7 +92,7 @@
<td><a id="lang_nl_url" href="visualiser.html.nl" title="Nederlandse web pagina">Nederlands</a>
<td>(NL)
<tr>
-<td>
+<td><a id="lang_ru_url" href="visualiser.html.ru" title="Русский">Русский</a>
<td>(RU)
</table>
<a target="translation" href="http://www.routino.org/translations/">Routino Translations</a>
@@ -122,8 +122,8 @@
<div id="result_status_super" style="display: none;">
<b>Processed # super-nodes/segments</b>
</div>
-<div id="result_status_oneway" style="display: none;">
-<b>Processed # oneway segments</b>
+<div id="result_status_waytype" style="display: none;">
+<b>Processed # way type segments</b>
</div>
<div id="result_status_highway" style="display: none;">
<b>Processed # segments</b>
@@ -156,7 +156,7 @@
<div id="hideshow_junctions_div" style="display: none;">
Each node that is a dead-end, a junction of two highways of different
types (or different properties) or a junction where more than two segments
-join are shown colour-coded:
+join are shown colour-coded.
<br>
<table>
<tr><td><img src="icons/ball-1.png" alt="1" ><td>only one highway - a dead-end.
@@ -181,13 +181,20 @@
</div>
<div class="hideshow_box">
-<span id="hideshow_oneway_show" onclick="hideshow_show('oneway');" class="hideshow_show">+</span>
-<span id="hideshow_oneway_hide" onclick="hideshow_hide('oneway');" class="hideshow_hide">-</span>
-<input type="button" id="oneway" onclick="displayData('oneway');" value="Display One-way Segments">
-<div id="hideshow_oneway_div" style="display: none;">
-Each one-way segment is shown with a coloured triangle indicating the
-allowed direction. The colours of the triangles depend on the bearing
-of the highway segment.
+<span id="hideshow_waytype_show" onclick="hideshow_show('waytype');" class="hideshow_show">+</span>
+<span id="hideshow_waytype_hide" onclick="hideshow_hide('waytype');" class="hideshow_hide">-</span>
+<input type="button" id="waytype" onclick="displayData('waytype');" value="Display Way Type Segments">
+<div id="hideshow_waytype_div" style="display: none;">
+Each highway segment of special types (one-way, cycle-both-ways and roundabout) are
+shown. For one-way segments a coloured triangle indicates the allowed direction.
+The colours of the triangles depend on the bearing of the highway segment.
+<form name="waytypes" id="waytypes" action="#" method="get" onsubmit="return false;">
+<table>
+<tr><td>One-way segments: <td><input name="waytype" type="radio" value="oneway" onchange="displayData('waytype');" checked>
+<tr><td>Cycle-both-way segments:<td><input name="waytype" type="radio" value="cyclebothways" onchange="displayData('waytype');">
+<tr><td>Roundabout segments: <td><input name="waytype" type="radio" value="roundabout" onchange="displayData('waytype');">
+</table>
+</form>
</div>
</div>
@@ -366,7 +373,6 @@
<tr><td>Tunnel: <td><input name="property" type="radio" value="tunnel" onchange="displayData('property');">
<tr><td>Walking Route: <td><input name="property" type="radio" value="footroute" onchange="displayData('property');">
<tr><td>Bicycle Route: <td><input name="property" type="radio" value="bicycleroute" onchange="displayData('property');">
-<tr><td>Cycle Both Ways:<td><input name="property" type="radio" value="cyclebothways" onchange="displayData('property');">
</table>
</form>
</div>
diff -Nru routino-2.7/web/www/routino/visualiser.html.ru routino-2.7.2/web/www/routino/visualiser.html.ru
--- routino-2.7/web/www/routino/visualiser.html.ru 1970-01-01 01:00:00.000000000 +0100
+++ routino-2.7.2/web/www/routino/visualiser.html.ru 2014-06-05 20:16:27.000000000 +0200
@@ -0,0 +1,464 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="openstreetmap routino verifier">
+<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=no">
+
+<title>Routino : Data Visualiser for Routing Data</title>
+
+<!--
+Routino data visualiser web page.
+
+Part of the Routino routing software.
+
+This file Copyright 2008-2014 Andrew M. Bishop
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see http://www.gnu.org/licenses/.
+-->
+
+<!-- Page elements -->
+<script src="page-elements.js" type="text/javascript"></script>
+<link href="page-elements.css" type="text/css" rel="stylesheet">
+
+<!-- Router and visualiser shared features -->
+<link href="maplayout.css" type="text/css" rel="stylesheet">
+
+<!-- Visualiser specific features -->
+<script src="mapprops.js" type="text/javascript"></script>
+<link href="visualiser.css" type="text/css" rel="stylesheet">
+
+<!-- Map parameters -->
+<script src="mapprops.js" type="text/javascript"></script>
+
+<!-- Map loader -->
+<script src="maploader.js" type="text/javascript"></script>
+
+</head>
+<body onload="map_load('map_init();');">
+
+<!-- Left hand side of window - data panel -->
+
+<div class="left_panel">
+
+<div class="tab_box">
+<span id="tab_visualiser" onclick="tab_select('visualiser');" class="tab_selected" title="Select data options">Visualiser</span>
+<span id="tab_router" onclick="tab_select('router');" class="tab_unselected" title="Plan a route">Router</span>
+<span id="tab_data" onclick="tab_select('data');" class="tab_unselected" title="View database information">Data</span>
+</div>
+
+<div class="tab_content" id="tab_visualiser_div">
+
+<div class="hideshow_box">
+<span class="hideshow_title">Routino Visualiser</span>
+This web page allows visualisation of the data that Routino uses for routing.
+Only data relevant for routing is displayed and some will therefore be excluded.
+<div class="center">
+<a target="other" href="http://www.routino.org/">Routino Website</a>
+|
+<a target="other" href="documentation/">Документация</a>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_language_show" onclick="hideshow_show('language');" class="hideshow_show">+</span>
+<span id="hideshow_language_hide" onclick="hideshow_hide('language');" class="hideshow_hide">-</span>
+<span class="hideshow_title">Язык</span>
+
+<div id="hideshow_language_div" style="display: none;">
+<table>
+<tr>
+<td><a id="lang_en_url" href="visualiser.html.en" title="English language webpage">English</a>
+<td>(EN)
+<tr>
+<td><a id="lang_de_url" href="visualiser.html.de" title="Deutsche Webseite">Deutsch</a>
+<td>(DE)
+<tr>
+<td><a id="lang_fr_url" href="visualiser.html.fr" title="Francais">Francais</a>
+<td>(FR)
+<tr>
+<td><a id="lang_nl_url" href="visualiser.html.nl" title="Nederlandse web pagina">Nederlands</a>
+<td>(NL)
+<tr>
+<td><a id="lang_ru_url" href="visualiser.html.ru" title="Русский">Русский</a>
+<td>(RU)
+</table>
+<a target="translation" href="http://www.routino.org/translations/">Routino Translations</a>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span class="hideshow_title">Инструкции</span>
+Zoom in and then use the buttons below to download the data. The
+server will only return data if the selected area is small enough.
+</div>
+
+<div class="hideshow_box">
+<span class="hideshow_title">Статус</span>
+<div id="result_status">
+<div id="result_status_no_data">
+<b><i>Нет данных для отображения</i></b>
+</div>
+<div id="result_status_data" style="display: none;">
+</div>
+<div id="result_status_failed" style="display: none;">
+<b>Failed to get visualiser data!</b>
+</div>
+<div id="result_status_junctions" style="display: none;">
+<b>Processed # junctions</b>
+</div>
+<div id="result_status_super" style="display: none;">
+<b>Processed # super-nodes/segments</b>
+</div>
+<div id="result_status_waytype" style="display: none;">
+<b>Processed # way type segments</b>
+</div>
+<div id="result_status_highway" style="display: none;">
+<b>Processed # segments</b>
+</div>
+<div id="result_status_transport" style="display: none;">
+<b>Processed # segments</b>
+</div>
+<div id="result_status_barrier" style="display: none;">
+<b>Обработано # нод</b>
+</div>
+<div id="result_status_turns" style="display: none;">
+<b>Обработано # ограничений поворотов</b>
+</div>
+<div id="result_status_limit" style="display: none;">
+<b>Processed # limit changes</b>
+</div>
+<div id="result_status_property" style="display: none;">
+<b>Processed # segments</b>
+</div>
+<div id="result_status_errorlogs" style="display: none;">
+<b>Processed # error logs</b>
+</div>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_junctions_show" onclick="hideshow_show('junctions');" class="hideshow_show">+</span>
+<span id="hideshow_junctions_hide" onclick="hideshow_hide('junctions');" class="hideshow_hide">-</span>
+<input type="button" id="junctions" onclick="displayData('junctions');" value="Display Junctions">
+<div id="hideshow_junctions_div" style="display: none;">
+Each node that is a dead-end, a junction of two highways of different
+types (or different properties) or a junction where more than two segments
+join are shown colour-coded.
+<br>
+<table>
+<tr><td><img src="icons/ball-1.png" alt="1" ><td>only one highway - a dead-end.
+<tr><td><img src="icons/ball-2.png" alt="2" ><td>two highways of different types meet.
+<tr><td><img src="icons/ball-3.png" alt="3" ><td>three highways meet.
+<tr><td><img src="icons/ball-4.png" alt="4" ><td>four highways meet.
+<tr><td><img src="icons/ball-5.png" alt="5" ><td>five highways meet.
+<tr><td><img src="icons/ball-6.png" alt="6" ><td>six highways meet.
+<tr><td><img src="icons/ball-7.png" alt="7+"><td>seven (or more) highways meet.
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_super_show" onclick="hideshow_show('super');" class="hideshow_show">+</span>
+<span id="hideshow_super_hide" onclick="hideshow_hide('super');" class="hideshow_hide">-</span>
+<input type="button" id="super" onclick="displayData('super');" value="Display Super Segments">
+<div id="hideshow_super_div" style="display: none;">
+Each super-node and the associated super-segments are shown (see
+algorithm page for description).
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_waytype_show" onclick="hideshow_show('waytype');" class="hideshow_show">+</span>
+<span id="hideshow_waytype_hide" onclick="hideshow_hide('waytype');" class="hideshow_hide">-</span>
+<input type="button" id="waytype" onclick="displayData('waytype');" value="Display Way Type Segments">
+<div id="hideshow_waytype_div" style="display: none;">
+Each highway segment of special types (one-way, cycle-both-ways and roundabout) are
+shown. For one-way segments a coloured triangle indicates the allowed direction.
+The colours of the triangles depend on the bearing of the highway segment.
+<form name="waytypes" id="waytypes" action="#" method="get" onsubmit="return false;">
+<table>
+<tr><td>One-way segments: <td><input name="waytype" type="radio" value="oneway" onchange="displayData('waytype');" checked>
+<tr><td>Cycle-both-way segments:<td><input name="waytype" type="radio" value="cyclebothways" onchange="displayData('waytype');">
+<tr><td>Roundabout segments: <td><input name="waytype" type="radio" value="roundabout" onchange="displayData('waytype');">
+</table>
+</form>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_highway_show" onclick="hideshow_show('highway');" class="hideshow_show">+</span>
+<span id="hideshow_highway_hide" onclick="hideshow_hide('highway');" class="hideshow_hide">-</span>
+<input type="button" id="highway" onclick="displayData('highway');" value="Display Highway Segments">
+<div id="hideshow_highway_div" style="display: none;">
+Each segment of the chosen type of highway is drawn.
+<form name="highways" id="highways" action="#" method="get" onsubmit="return false;">
+<table>
+<tr><td>Автомагистраль: <td><input name="highway" type="radio" value="motorway" onchange="displayData('highway');">
+<tr><td>Trunk: <td><input name="highway" type="radio" value="trunk" onchange="displayData('highway');">
+<tr><td>Primary: <td><input name="highway" type="radio" value="primary" onchange="displayData('highway');" checked>
+<tr><td>Secondary: <td><input name="highway" type="radio" value="secondary" onchange="displayData('highway');">
+<tr><td>Tertiary: <td><input name="highway" type="radio" value="tertiary" onchange="displayData('highway');">
+<tr><td>Unclassified:<td><input name="highway" type="radio" value="unclassified" onchange="displayData('highway');">
+<tr><td>Residential: <td><input name="highway" type="radio" value="residential" onchange="displayData('highway');">
+<tr><td>Service: <td><input name="highway" type="radio" value="service" onchange="displayData('highway');">
+<tr><td>Track: <td><input name="highway" type="radio" value="track" onchange="displayData('highway');">
+<tr><td>Cycleway: <td><input name="highway" type="radio" value="cycleway" onchange="displayData('highway');">
+<tr><td>Path: <td><input name="highway" type="radio" value="path" onchange="displayData('highway');">
+<tr><td>Steps: <td><input name="highway" type="radio" value="steps" onchange="displayData('highway');">
+<tr><td>Ferry: <td><input name="highway" type="radio" value="ferry" onchange="displayData('highway');">
+</table>
+</form>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_transport_show" onclick="hideshow_show('transport');" class="hideshow_show">+</span>
+<span id="hideshow_transport_hide" onclick="hideshow_hide('transport');" class="hideshow_hide">-</span>
+<input type="button" id="transport" onclick="displayData('transport');" value="Display Transport Segments">
+<div id="hideshow_transport_div" style="display: none;">
+Each segment allowed for the chosen type of transport is drawn.
+<form name="transports" id="transports" action="#" method="get" onsubmit="return false;">
+<table>
+<tr><td>Foot: <td><input name="transport" type="radio" value="foot" onchange="displayData('transport');">
+<tr><td>Лошадь: <td><input name="transport" type="radio" value="horse" onchange="displayData('transport');">
+<tr><td>Инвалидное кресло:<td><input name="transport" type="radio" value="wheelchair" onchange="displayData('transport');">
+<tr><td>Велосипед: <td><input name="transport" type="radio" value="bicycle" onchange="displayData('transport');">
+<tr><td>Мопед: <td><input name="transport" type="radio" value="moped" onchange="displayData('transport');">
+<tr><td>Мотоцикл:<td><input name="transport" type="radio" value="motorcycle" onchange="displayData('transport');">
+<tr><td>Motorcar: <td><input name="transport" type="radio" value="motorcar" onchange="displayData('transport');" checked>
+<tr><td>Товары: <td><input name="transport" type="radio" value="goods" onchange="displayData('transport');">
+<tr><td>HGV: <td><input name="transport" type="radio" value="hgv" onchange="displayData('transport');">
+<tr><td>PSV: <td><input name="transport" type="radio" value="psv" onchange="displayData('transport');">
+</table>
+</form>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_barrier_show" onclick="hideshow_show('barrier');" class="hideshow_show">+</span>
+<span id="hideshow_barrier_hide" onclick="hideshow_hide('barrier');" class="hideshow_hide">-</span>
+<input type="button" id="barrier" onclick="displayData('barrier');" value="Display Barrier Nodes">
+<div id="hideshow_barrier_div" style="display: none;">
+Each barrier blocking the chosen type of transport is drawn.
+<form name="barriers" id="barriers" action="#" method="get" onsubmit="return false;">
+<table>
+<tr><td>Foot: <td><input name="barrier" type="radio" value="foot" onchange="displayData('barrier');">
+<tr><td>Лошадь: <td><input name="barrier" type="radio" value="horse" onchange="displayData('barrier');">
+<tr><td>Инвалидное кресло:<td><input name="barrier" type="radio" value="wheelchair" onchange="displayData('barrier');">
+<tr><td>Велосипед: <td><input name="barrier" type="radio" value="bicycle" onchange="displayData('barrier');">
+<tr><td>Мопед: <td><input name="barrier" type="radio" value="moped" onchange="displayData('barrier');">
+<tr><td>Мотоцикл:<td><input name="barrier" type="radio" value="motorcycle" onchange="displayData('barrier');">
+<tr><td>Motorcar: <td><input name="barrier" type="radio" value="motorcar" onchange="displayData('barrier');" checked>
+<tr><td>Товары: <td><input name="barrier" type="radio" value="goods" onchange="displayData('barrier');">
+<tr><td>HGV: <td><input name="barrier" type="radio" value="hgv" onchange="displayData('barrier');">
+<tr><td>PSV: <td><input name="barrier" type="radio" value="psv" onchange="displayData('barrier');">
+</table>
+</form>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_turns_show" onclick="hideshow_show('turns');" class="hideshow_show">+</span>
+<span id="hideshow_turns_hide" onclick="hideshow_hide('turns');" class="hideshow_hide">-</span>
+<input type="button" id="turns" onclick="displayData('turns');" value="Показывать ограничения поворотов">
+<div id="hideshow_turns_div" style="display: none;">
+Each turn restrictions is shown with a line indicating the disallowed turn.
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_speed_show" onclick="hideshow_show('speed');" class="hideshow_show">+</span>
+<span id="hideshow_speed_hide" onclick="hideshow_hide('speed');" class="hideshow_hide">-</span>
+<input type="button" id="speed" onclick="displayData('speed');" value="Показывать ограничения скорости">
+<div id="hideshow_speed_div" style="display: none;">
+Each node that joins segments with different speed limits is shown
+along with the speed limit on relevant segments.
+<br>
+<table>
+<tr><td><img src="icons/ball-1.png" alt="." ><td>Изменить ограничения
+<tr><td><img src="icons/limit-no.png" alt="()" ><td>No specified limit
+<tr><td><img src="icons/limit-80.png" alt="(80)"><td>Ограничение скорости 80 км/ч
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_weight_show" onclick="hideshow_show('weight');" class="hideshow_show">+</span>
+<span id="hideshow_weight_hide" onclick="hideshow_hide('weight');" class="hideshow_hide">-</span>
+<input type="button" id="weight" onclick="displayData('weight');" value="Показывать ограничения по весу">
+<div id="hideshow_weight_div" style="display: none;">
+Each node that joins segments with different weight limits is shown
+along with the weight limit on relevant segments.
+<br>
+<table>
+<tr><td><img src="icons/ball-1.png" alt="." ><td>Изменить ограничения
+<tr><td><img src="icons/limit-no.png" alt="()" ><td>No specified limit
+<tr><td><img src="icons/limit-8.0.png" alt="(8.0)"><td>Ограничение веса 8 тонн
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_height_show" onclick="hideshow_show('height');" class="hideshow_show">+</span>
+<span id="hideshow_height_hide" onclick="hideshow_hide('height');" class="hideshow_hide">-</span>
+<input type="button" id="height" onclick="displayData('height');" value="Показывать ограничение по высоте">
+<div id="hideshow_height_div" style="display: none;">
+Each node that joins segments with different height limits is shown
+along with the height limit on relevant segments.
+<br>
+<table>
+<tr><td><img src="icons/ball-1.png" alt="." ><td>Изменить ограничения
+<tr><td><img src="icons/limit-no.png" alt="()" ><td>No specified limit
+<tr><td><img src="icons/limit-4.0.png" alt="(4.0)"><td>Ограничение высоты 4.0 метра
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_width_show" onclick="hideshow_show('width');" class="hideshow_show">+</span>
+<span id="hideshow_width_hide" onclick="hideshow_hide('width');" class="hideshow_hide">-</span>
+<input type="button" id="width" onclick="displayData('width');" value="Показывать ограничение ширины">
+<div id="hideshow_width_div" style="display: none;">
+Each node that joins segments with different width limits is shown
+along with the width limit on relevant segments.
+<br>
+<table>
+<tr><td><img src="icons/ball-1.png" alt="." ><td>Изменить ограничения
+<tr><td><img src="icons/limit-no.png" alt="()" ><td>No specified limit
+<tr><td><img src="icons/limit-3.0.png" alt="(3.0)"><td>3.0 m width limit
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_length_show" onclick="hideshow_show('length');" class="hideshow_show">+</span>
+<span id="hideshow_length_hide" onclick="hideshow_hide('length');" class="hideshow_hide">-</span>
+<input type="button" id="length" onclick="displayData('length');" value="Display Length Limits">
+<div id="hideshow_length_div" style="display: none;">
+Each node that joins segments with different length limits is shown
+along with the length limit on relevant segments.
+<br>
+<table>
+<tr><td><img src="icons/ball-1.png" alt="." ><td>Изменить ограничения
+<tr><td><img src="icons/limit-no.png" alt="()" ><td>No specified limit
+<tr><td><img src="icons/limit-9.0.png" alt="(9.0)"><td>9.0 m length limit
+</table>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_property_show" onclick="hideshow_show('property');" class="hideshow_show">+</span>
+<span id="hideshow_property_hide" onclick="hideshow_hide('property');" class="hideshow_hide">-</span>
+<input type="button" id="property" onclick="displayData('property');" value="Display Highway Properties">
+<div id="hideshow_property_div" style="display: none;">
+Each segment of the highways with a particular property is drawn.
+<form name="properties" id="properties" action="#" method="get" onsubmit="return false;">
+<table>
+<tr><td>Paved: <td><input name="property" type="radio" value="paved" onchange="displayData('property');" checked>
+<tr><td>Multiple Lanes: <td><input name="property" type="radio" value="multilane" onchange="displayData('property');">
+<tr><td>Мост: <td><input name="property" type="radio" value="bridge" onchange="displayData('property');">
+<tr><td>Туннель: <td><input name="property" type="radio" value="tunnel" onchange="displayData('property');">
+<tr><td>Пеший маршрут: <td><input name="property" type="radio" value="footroute" onchange="displayData('property');">
+<tr><td>Велодорожка: <td><input name="property" type="radio" value="bicycleroute" onchange="displayData('property');">
+</table>
+</form>
+</div>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_errorlogs_show" onclick="hideshow_show('errorlogs');" class="hideshow_show">+</span>
+<span id="hideshow_errorlogs_hide" onclick="hideshow_hide('errorlogs');" class="hideshow_hide">-</span>
+<input type="button" id="errorlogs" onclick="displayData('errorlogs');" value="Display Error Logs">
+<div id="hideshow_errorlogs_div" style="display: none;">
+Potential problems found by Routino when processing the input data.
+</div>
+</div>
+
+<div class="hideshow_box">
+<input type="button" id="clear" onclick="displayData('');" value="Clear data">
+</div>
+
+<div class="hideshow_box">
+<span class="hideshow_title">Links</span>
+<a id="permalink_url" href="visualiser.html">Link to this map view</a>
+<br>
+<a id="edit_url" target="edit" style="display: none;">Edit this OSM data</a>
+</div>
+
+<div class="hideshow_box">
+<span id="hideshow_help_options_show" onclick="hideshow_show('help_options');" class="hideshow_hide">+</span>
+<span id="hideshow_help_options_hide" onclick="hideshow_hide('help_options');" class="hideshow_show">-</span>
+<span class="hideshow_title">Помощь</span>
+<div id="hideshow_help_options_div">
+<div class="scrollable">
+<b>Quick Start</b>
+<br>
+Zoom to an area and select one of the buttons to display that type of
+data.
+<br>
+More data options can be found by expanding the details below each
+button.
+<p>
+<b>Data Failure</b>
+<br>
+If the area selected is too large (depends on the data type) then the
+status will say "Failed to get visualiser data" - zoom in and try
+again.
+</div>
+</div>
+</div>
+</div>
+
+<div class="tab_content" id="tab_router_div" style="display: none;">
+<div class="hideshow_box">
+<span class="hideshow_title">Routino Router</span>
+To perform routing on the map use the link below.
+<br>
+<a id="router_url" href="router.html" target="router">Link to this map view</a>
+</div>
+</div>
+
+<div class="tab_content" id="tab_data_div" style="display: none;">
+<div class="hideshow_box">
+<span class="hideshow_title">Routino Statistics</span>
+<div id="statistics_data"></div>
+<a id="statistics_link" href="statistics.cgi" onclick="displayStatistics();return(false);">Display data statistics</a>
+</div>
+</div>
+
+</div>
+
+<!-- Right hand side of window - map -->
+
+<div class="right_panel">
+<div class="map" id="map">
+<noscript>
+<p>
+Javascript is <em>required</em> to use this web page because of the interactive map.
+</noscript>
+</div>
+<div class="attribution">
+Router: <a href="http://www.routino.org/" target="routino">Routino</a>
+|
+Geo Data: <span id="attribution_data"></span>
+|
+Тайлы: <span id="attribution_tile"></span>
+</div>
+</div>
+
+</body>
+
+</html>
diff -Nru routino-2.7/web/www/routino/visualiser.leaflet.js routino-2.7.2/web/www/routino/visualiser.leaflet.js
--- routino-2.7/web/www/routino/visualiser.leaflet.js 2014-01-28 20:12:44.000000000 +0100
+++ routino-2.7.2/web/www/routino/visualiser.leaflet.js 2014-05-02 16:50:20.000000000 +0200
@@ -27,7 +27,7 @@
var data_types=[
"junctions",
"super",
- "oneway",
+ "waytype",
"highway",
"transport",
"barrier",
@@ -585,8 +585,14 @@
case "super":
ajaxGET(url, runSuperSuccess, runFailure);
break;
- case "oneway":
- ajaxGET(url, runOnewaySuccess, runFailure);
+ case "waytype":
+ var waytype;
+ var waytypes=document.forms["waytypes"].elements["waytype"];
+ for(var h in waytypes)
+ if(waytypes[h].checked)
+ waytype=waytypes[h].value;
+ url+="-" + waytype;
+ ajaxGET(url, runWaytypeSuccess, runFailure);
break;
case "highway":
var highway;
@@ -766,10 +772,10 @@
//
-// Success in getting the oneway data
+// Success in getting the waytype data
//
-function runOnewaySuccess(response)
+function runWaytypeSuccess(response)
{
var hex={0: "00", 1: "11", 2: "22", 3: "33", 4: "44", 5: "55", 6: "66", 7: "77",
8: "88", 9: "99", 10: "AA", 11: "BB", 12: "CC", 13: "DD", 14: "EE", 15: "FF"};
@@ -833,7 +839,7 @@
}
}
- displayStatus("data","oneway",lines.length-2);
+ displayStatus("data","waytype",lines.length-2);
}
diff -Nru routino-2.7/web/www/routino/visualiser.openlayers.js routino-2.7.2/web/www/routino/visualiser.openlayers.js
--- routino-2.7/web/www/routino/visualiser.openlayers.js 2014-03-01 12:53:24.000000000 +0100
+++ routino-2.7.2/web/www/routino/visualiser.openlayers.js 2014-04-29 20:29:24.000000000 +0200
@@ -27,7 +27,7 @@
var data_types=[
"junctions",
"super",
- "oneway",
+ "waytype",
"highway",
"transport",
"barrier",
@@ -599,8 +599,14 @@
case "super":
ajaxGET(url, runSuperSuccess, runFailure);
break;
- case "oneway":
- ajaxGET(url, runOnewaySuccess, runFailure);
+ case "waytype":
+ var waytype;
+ var waytypes=document.forms["waytypes"].elements["waytype"];
+ for(var h in waytypes)
+ if(waytypes[h].checked)
+ waytype=waytypes[h].value;
+ url+="-" + waytype;
+ ajaxGET(url, runWaytypeSuccess, runFailure);
break;
case "highway":
var highway;
@@ -796,10 +802,10 @@
//
-// Success in getting the oneway data
+// Success in getting the waytype data
//
-function runOnewaySuccess(response)
+function runWaytypeSuccess(response)
{
var hex={0: "00", 1: "11", 2: "22", 3: "33", 4: "44", 5: "55", 6: "66", 7: "77",
8: "88", 9: "99", 10: "AA", 11: "BB", 12: "CC", 13: "DD", 14: "EE", 15: "FF"};
@@ -864,7 +870,7 @@
layerVectors.addFeatures(features);
- displayStatus("data","oneway",lines.length-2);
+ displayStatus("data","waytype",lines.length-2);
}
diff -Nru routino-2.7/xml/routino-profiles.xml routino-2.7.2/xml/routino-profiles.xml
--- routino-2.7/xml/routino-profiles.xml 2014-01-27 20:39:51.000000000 +0100
+++ routino-2.7.2/xml/routino-profiles.xml 2014-04-28 20:24:41.000000000 +0200
@@ -54,7 +54,6 @@
<property type="tunnel" percent="50" />
<property type="footroute" percent="55" />
<property type="bicycleroute" percent="55" />
- <property type="cyclebothways" percent="50" />
</properties>
<restrictions>
<oneway obey="0" />
@@ -104,7 +103,6 @@
<property type="tunnel" percent="50" />
<property type="footroute" percent="50" />
<property type="bicycleroute" percent="50" />
- <property type="cyclebothways" percent="50" />
</properties>
<restrictions>
<oneway obey="1" />
@@ -154,7 +152,6 @@
<property type="tunnel" percent="50" />
<property type="footroute" percent="55" />
<property type="bicycleroute" percent="55" />
- <property type="cyclebothways" percent="50" />
</properties>
<restrictions>
<oneway obey="0" />
@@ -204,7 +201,6 @@
<property type="tunnel" percent="50" />
<property type="footroute" percent="50" />
<property type="bicycleroute" percent="60" />
- <property type="cyclebothways" percent="50" />
</properties>
<restrictions>
<oneway obey="1" />
@@ -254,7 +250,6 @@
<property type="tunnel" percent="50" />
<property type="footroute" percent="50" />
<property type="bicycleroute" percent="50" />
- <property type="cyclebothways" percent="50" />
</properties>
<restrictions>
<oneway obey="1" />
@@ -304,7 +299,6 @@
<property type="tunnel" percent="50" />
<property type="footroute" percent="50" />
<property type="bicycleroute" percent="50" />
- <property type="cyclebothways" percent="50" />
</properties>
<restrictions>
<oneway obey="1" />
@@ -354,7 +348,6 @@
<property type="tunnel" percent="50" />
<property type="footroute" percent="45" />
<property type="bicycleroute" percent="45" />
- <property type="cyclebothways" percent="50" />
</properties>
<restrictions>
<oneway obey="1" />
@@ -404,7 +397,6 @@
<property type="tunnel" percent="50" />
<property type="footroute" percent="45" />
<property type="bicycleroute" percent="45" />
- <property type="cyclebothways" percent="50" />
</properties>
<restrictions>
<oneway obey="1" />
@@ -454,7 +446,6 @@
<property type="tunnel" percent="50" />
<property type="footroute" percent="45" />
<property type="bicycleroute" percent="45" />
- <property type="cyclebothways" percent="50" />
</properties>
<restrictions>
<oneway obey="1" />
@@ -504,7 +495,6 @@
<property type="tunnel" percent="50" />
<property type="footroute" percent="45" />
<property type="bicycleroute" percent="45" />
- <property type="cyclebothways" percent="50" />
</properties>
<restrictions>
<oneway obey="1" />
diff -Nru routino-2.7/xml/routino-translations.xml routino-2.7.2/xml/routino-translations.xml
--- routino-2.7/xml/routino-translations.xml 2014-01-13 18:36:20.000000000 +0100
+++ routino-2.7.2/xml/routino-translations.xml 2014-06-05 20:16:27.000000000 +0200
@@ -16,14 +16,12 @@
<routino-translations xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.routino.org/xml/routino-translations.xsd">
- <!-- Original English language version by Andrew M. Bishop -->
-
<language lang="en">
<!-- Copyright of the data being routed, not of this file -->
<copyright>
<creator string="Creator" text="Routino - http://www.routino.org/" />
- <source string="Source" text="Based on OpenStreetMap data from http://www.openstreetmap.org/" />
+ <source string="Source" text="Based on OpenStreetMap data from http://www.openstreetmap.org/" />
<license string="License" text="http://www.openstreetmap.org/copyright" />
</copyright>
@@ -82,44 +80,42 @@
<!-- HTML output -->
<output-html>
- <waypoint type="waypoint" string="Waypoint" /> <!-- For the chosen waypoints -->
- <waypoint type="junction" string="Junction" /> <!-- For the interesting junctions -->
+ <waypoint type="waypoint" string="Waypoint" /> <!-- For the chosen waypoints -->
+ <waypoint type="junction" string="Junction" /> <!-- For the interesting junctions -->
<waypoint type="roundabout" string="Roundabout" /> <!-- For roundabouts -->
<title text="%s Route" /> <!-- %s = [shortest|quickest] -->
- <start string="Start" text="At %s, head %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [heading] -->
- <node string="At" text="%s, go %s heading %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [turn], 3rd %s = [heading] -->
- <rbnode string="Leave" text="%s, take the %s exit heading %s" /> <!-- 1st %s = [roundabout], 2nd %s = [first|second|...], 3rd %s = [heading] -->
- <segment string="Follow" text="%s for %.3f km, %.1f min" /> <!-- 1st %s = street name -->
- <stop string="Stop" text="At %s" /> <!-- 1st %s = [waypoint|junction] -->
- <total string="Total" text="%.1f km, %.0f minutes" />
+ <start string="Start" text="At %s, head %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [heading] -->
+ <node string="At" text="%s, go %s heading %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [turn], 3rd %s = [heading] -->
+ <rbnode string="Leave" text="%s, take the %s exit heading %s" /> <!-- 1st %s = [roundabout], 2nd %s = [first|second|...], 3rd %s = [heading] -->
+ <segment string="Follow" text="%s for %.3f km, %.1f min" /> <!-- 1st %s = street name -->
+ <stop string="Stop" text="At %s" /> <!-- 1st %s = [waypoint|junction] -->
+ <total string="Total" text="%.1f km, %.0f minutes" />
</output-html>
<!-- GPX output -->
<output-gpx>
- <waypoint type="start" string="START" /> <!-- For the first route waypoint -->
- <waypoint type="inter" string="INTER" /> <!-- For the intermediate route waypoints -->
- <waypoint type="trip" string="TRIP" /> <!-- For the other route points -->
+ <waypoint type="start" string="START" /> <!-- For the first route waypoint -->
+ <waypoint type="inter" string="INTER" /> <!-- For the intermediate route waypoints -->
+ <waypoint type="trip" string="TRIP" /> <!-- For the other route points -->
<waypoint type="finish" string="FINISH"/> <!-- For the last route waypoint -->
<desc text="%s route between 'start' and 'finish' waypoints" /> <!-- %s = [shortest|quickest] -->
- <name text="%s route" /> <!-- %s = [shortest|quickest] -->
- <step text="%s on '%s' for %.3f km, %.1f min" /> <!-- 1st %s = [turn], 2nd %s = street name -->
+ <name text="%s route" /> <!-- %s = [shortest|quickest] -->
+ <step text="%s on '%s' for %.3f km, %.1f min" /> <!-- 1st %s = [turn], 2nd %s = street name -->
<final text="Total Journey %.1f km, %.0f minutes" />
</output-gpx>
</language>
- <!-- German translation by Christoph Eckert (July 2010) / Alex Treiber (Jan 2013) -->
-
<language lang="de">
<!-- Copyright of the data being routed, not of this file -->
<copyright>
- <creator string="Creator" text="Routino - http://www.routino.org/" />
- <source string="Source" text="Basierend auf OpenStreetMap-Daten, erhältlich via http://www.openstreetmap.org/" />
- <license string="License" text="http://www.openstreetmap.org/copyright" />
+ <creator string="Urheber" text="Routino - http://www.routino.org/" />
+ <source string="Source" text="Basierend auf OpenStreetMap-Daten, erhältlich via http://www.openstreetmap.org/" />
+ <license string="Lizenz" text="http://www.openstreetmap.org/copyright" />
</copyright>
<!-- Turn directions, 0 = ahead, -2 = left, +/-4 = behind, +2 = right -->
@@ -169,51 +165,49 @@
<highway type="cycleway" string="Radweg" />
<highway type="path" string="Weg" />
<highway type="steps" string="Treppe" />
- <highway type="ferry" string="Fähre" />
+ <highway type="ferry" string="Fähre" />
<!-- The type of route -->
- <route type="shortest" string="Kürzeste" /> <!-- For the description and route name -->
+ <route type="shortest" string="Kürzeste" /> <!-- For the description and route name -->
<route type="quickest" string="Schnellste" /> <!-- For the description and route name -->
<!-- HTML output -->
<output-html>
- <waypoint type="waypoint" string="Wegpunkt" /> <!-- For the chosen waypoints -->
- <waypoint type="junction" string="Anschlussstelle" /> <!-- For the interesting junctions -->
+ <waypoint type="waypoint" string="Wegpunkt" /> <!-- For the chosen waypoints -->
+ <waypoint type="junction" string="Anschlussstelle" /> <!-- For the interesting junctions -->
<waypoint type="roundabout" string="Kreisverkehr" /> <!-- For roundabouts -->
<title text="%s Route" /> <!-- %s = [shortest|quickest] -->
- <start string="Start" text="Bei %s halten Sie sich Richtung %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [heading] -->
- <node string="Bei" text="Bei %s wenden Sie sich nach %s Richtung %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [turn], 3rd %s = [heading] -->
- <rbnode string="Verlassen Sie" text="%s, nehmen Sie die %s Ausfahrt Richtung %s" /> <!-- 1st %s = [roundabout], 2nd %s = [first|second|...], 3rd %s = [heading] -->
+ <start string="Start" text="Bei %s halten Sie sich Richtung %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [heading] -->
+ <node string="Bei" text="Bei %s wenden Sie sich nach %s Richtung %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [turn], 3rd %s = [heading] -->
+ <rbnode string="Verlassen Sie" text="%s, nehmen Sie die %s Ausfahrt Richtung %s" /> <!-- 1st %s = [roundabout], 2nd %s = [first|second|...], 3rd %s = [heading] -->
<segment string="Folgen" text="Folgen Sie der %s für %.3f km bzw. %.1f min" /> <!-- 1st %s = street name -->
- <stop string="Stop" text="Sie sind bei %s angekommen" /> <!-- 1st %s = [waypoint|junction] -->
+ <stop string="Stop" text="Sie sind bei %s angekommen" /> <!-- 1st %s = [waypoint|junction] -->
<total string="Gesamt" text="%.1f km, %.0f minuten" />
</output-html>
<!-- GPX output -->
<output-gpx>
- <waypoint type="start" string="START" /> <!-- For the first route waypoint -->
- <waypoint type="inter" string="INTER" /> <!-- For the intermediate route waypoints -->
- <waypoint type="trip" string="TRIP" /> <!-- For the other route points -->
+ <waypoint type="start" string="START" /> <!-- For the first route waypoint -->
+ <waypoint type="inter" string="INTER" /> <!-- For the intermediate route waypoints -->
+ <waypoint type="trip" string="TRIP" /> <!-- For the other route points -->
<waypoint type="finish" string="FINISH"/> <!-- For the last route waypoint -->
<desc text="%s Strecke zwischen 'Start' und 'Ziel'" /> <!-- %s = [shortest|quickest] -->
- <name text="%s Strecke" /> <!-- %s = [shortest|quickest] -->
- <step text="%s auf '%s' für %.3f km, %.1f min" /> <!-- 1st %s = [turn], 2nd %s = street name -->
+ <name text="%s Strecke" /> <!-- %s = [shortest|quickest] -->
+ <step text="%s auf '%s' für %.3f km, %.1f min" /> <!-- 1st %s = [turn], 2nd %s = street name -->
<final text="Gesamtstrecke %.1f km, %.0f minuten" />
</output-gpx>
</language>
- <!-- French translation by Christophe Collard (janvier 2014) -->
-
- <language lang="fr">
+ <language lang="fr">
<!-- Copyright of the data being routed, not of this file -->
<copyright>
<creator string="Créateur" text="Routino - http://www.routino.org/" />
- <source string="Source" text="Basé sur les données OpenStreetMap de http://www.openstreetmap.org/" />
+ <source string="Source" text="Basé sur les données OpenStreetMap de http://www.openstreetmap.org/" />
<license string="License" text="http://www.openstreetmap.org/copyright" />
</copyright>
@@ -272,43 +266,41 @@
<!-- HTML output -->
<output-html>
- <waypoint type="waypoint" string="Etape" /> <!-- For the chosen waypoints -->
- <waypoint type="junction" string="Croisement" /> <!-- For the interesting junctions -->
+ <waypoint type="waypoint" string="Etape" /> <!-- For the chosen waypoints -->
+ <waypoint type="junction" string="Croisement" /> <!-- For the interesting junctions -->
<waypoint type="roundabout" string="rond-point" /> <!-- For roundabouts -->
<title text="Itinéraire %s" /> <!-- %s = [shortest|quickest] -->
- <start string="Débute" text="à %s, direction %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [heading] -->
- <node string="à" text="%s, aller %s direction %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [turn], 3rd %s = [heading] -->
- <rbnode string="Quitter" text="%s, prendre le %s sortir direction %s" /> <!-- 1st %s = [roundabout], 2nd %s = [first|second|...], 3rd %s = [heading] -->
- <segment string="Suivre" text="%s pendant %.3f km, %.1f min" /> <!-- 1st %s = street name -->
- <stop string="S'arrêter" text="à %s" /> <!-- 1st %s = [waypoint|junction] -->
- <total string="Total" text="%.1f km, %.0f minutes" />
+ <start string="Débute" text="à %s, direction %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [heading] -->
+ <node string="à" text="%s, aller %s direction %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [turn], 3rd %s = [heading] -->
+ <rbnode string="Quitter" text="%s, prendre le %s sortir direction %s" /> <!-- 1st %s = [roundabout], 2nd %s = [first|second|...], 3rd %s = [heading] -->
+ <segment string="Suivre" text="%s pendant %.3f km, %.1f min" /> <!-- 1st %s = street name -->
+ <stop string="S'arrêter" text="à %s" /> <!-- 1st %s = [waypoint|junction] -->
+ <total string="Total" text="%.1f km, %.0f minutes" />
</output-html>
<!-- GPX output -->
<output-gpx>
- <waypoint type="start" string="DEBUT" /> <!-- For the first route waypoint -->
- <waypoint type="inter" string="INTER" /> <!-- For the intermediate route waypoints -->
- <waypoint type="trip" string="POINT" /> <!-- For the other route points -->
+ <waypoint type="start" string="DEBUT" /> <!-- For the first route waypoint -->
+ <waypoint type="inter" string="INTER" /> <!-- For the intermediate route waypoints -->
+ <waypoint type="trip" string="POINT" /> <!-- For the other route points -->
<waypoint type="finish" string="FINAL"/> <!-- For the last route waypoint -->
- <desc text="Itinéraire %s entre les étapes 'début' et 'fin' " /> <!-- %s = [shortest|quickest] -->
- <name text="Itinéraire %s" /> <!-- %s = [shortest|quickest] -->
- <step text="%s sur '%s' pendant %.3f km, %.1f min" /> <!-- 1st %s = [turn], 2nd %s = street name -->
+ <desc text="Itinéraire %s entre les étapes 'début' et 'fin'" /> <!-- %s = [shortest|quickest] -->
+ <name text="Itinéraire %s" /> <!-- %s = [shortest|quickest] -->
+ <step text="%s sur '%s' pendant %.3f km, %.1f min" /> <!-- 1st %s = [turn], 2nd %s = street name -->
<final text="Trajet total %.1f km, %.0f minutes" />
</output-gpx>
</language>
- <!-- Dutch translation by Jan Jansen (August 2010) / Glenn Plas (August 2013) -->
-
<language lang="nl">
<!-- Copyright of the data being routed, not of this file -->
<copyright>
<creator string="Creator" text="Routino - http://www.routino.org/" />
- <source string="Source" text="Gebouwd op OpenStreetMap data van http://www.openstreetmap.org/" />
+ <source string="Source" text="Gebouwd op OpenStreetMap data van http://www.openstreetmap.org/" />
<license string="License" text="http://www.openstreetmap.org/copyright" />
</copyright>
@@ -367,43 +359,41 @@
<!-- HTML output -->
<output-html>
- <waypoint type="waypoint" string="Punt" /> <!-- For the chosen waypoints -->
- <waypoint type="junction" string="de splitsing" /> <!-- For the interesting junctions -->
+ <waypoint type="waypoint" string="Punt" /> <!-- For the chosen waypoints -->
+ <waypoint type="junction" string="de splitsing" /> <!-- For the interesting junctions -->
<waypoint type="roundabout" string="rotonde" /> <!-- For roundabouts -->
<title text="%s Route" /> <!-- %s = [shortest|quickest] -->
- <start string="Start" text="Bij %s neemt u de richting %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [heading] -->
- <node string="Bij" text="Bij %s gaat u %s richting %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [turn], 3rd %s = [heading] -->
- <rbnode string="Leave" text="Aan de %s, neem de %s afslag richting %s" /> <!-- 1st %s = [roundabout], 2nd %s = [first|second|...], 3rd %s = [heading] -->
- <segment string="Volg" text="Volgt u de %s voor %.3f km %.1f min" /> <!-- 1st %s = street name -->
- <stop string="Stop" text="U bent bij %s aangekomen" /> <!-- 1st %s = [waypoint|junction] -->
+ <start string="Start" text="Bij %s neemt u de richting %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [heading] -->
+ <node string="Bij" text="Bij %s gaat u %s richting %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [turn], 3rd %s = [heading] -->
+ <rbnode string="Leave" text="Aan de %s, neem de %s afslag richting %s" /> <!-- 1st %s = [roundabout], 2nd %s = [first|second|...], 3rd %s = [heading] -->
+ <segment string="Volg" text="Volgt u de %s voor %.3f km %.1f min" /> <!-- 1st %s = street name -->
+ <stop string="Stop" text="U bent bij %s aangekomen" /> <!-- 1st %s = [waypoint|junction] -->
<total string="Totaal" text="%.1f km, %.0f minuten" />
</output-html>
<!-- GPX output -->
<output-gpx>
- <waypoint type="start" string="START" /> <!-- For the first route waypoint -->
- <waypoint type="inter" string="INTER" /> <!-- For the intermediate route waypoints -->
- <waypoint type="trip" string="TRIP" /> <!-- For the other route points -->
+ <waypoint type="start" string="START" /> <!-- For the first route waypoint -->
+ <waypoint type="inter" string="INTER" /> <!-- For the intermediate route waypoints -->
+ <waypoint type="trip" string="TRIP" /> <!-- For the other route points -->
<waypoint type="finish" string="FINISH"/> <!-- For the last route waypoint -->
<desc text="%s Route tussen 'Start' und 'Finish'" /> <!-- %s = [shortest|quickest] -->
- <name text="%s Route " /> <!-- %s = [shortest|quickest] -->
- <step text="%s op '%s' voor %.3f km, %.1f min" /> <!-- 1st %s = [turn], 2nd %s = street name -->
+ <name text="%s Route" /> <!-- %s = [shortest|quickest] -->
+ <step text="%s op '%s' voor %.3f km, %.1f min" /> <!-- 1st %s = [turn], 2nd %s = street name -->
<final text="Totaal trip %.1f km, %.0f minuten" />
</output-gpx>
</language>
- <!-- Russian language by dimmer (November 2011) -->
-
<language lang="ru">
<!-- Copyright of the data being routed, not of this file -->
<copyright>
<creator string="Автор" text="Routino - http://www.routino.org/" />
- <source string="Источник" text="Использованы данные OpenStreetMap http://www.openstreetmap.org/" />
+ <source string="Источник" text="Использованы данные OpenStreetMap http://www.openstreetmap.org/" />
<license string="Лицензия" text="http://www.openstreetmap.org/copyright" />
</copyright>
@@ -430,16 +420,16 @@
<heading direction="4" string="юг" />
<!-- Ordinals, 1 = first, 2 = second ... -->
- <!-- TRANSLATION REQUIRED: ordinal number="1" string="First" / -->
- <!-- TRANSLATION REQUIRED: ordinal number="2" string="Second" / -->
- <!-- TRANSLATION REQUIRED: ordinal number="3" string="Third" / -->
- <!-- TRANSLATION REQUIRED: ordinal number="4" string="Fourth" / -->
- <!-- TRANSLATION REQUIRED: ordinal number="5" string="Fifth" / -->
- <!-- TRANSLATION REQUIRED: ordinal number="6" string="Sixth" / -->
- <!-- TRANSLATION REQUIRED: ordinal number="7" string="Seventh" / -->
- <!-- TRANSLATION REQUIRED: ordinal number="8" string="Eighth" / -->
- <!-- TRANSLATION REQUIRED: ordinal number="9" string="Ninth" / -->
- <!-- TRANSLATION REQUIRED: ordinal number="10" string="Tenth" / -->
+ <ordinal number="1" string="Первый" />
+ <ordinal number="2" string="Второй" />
+ <ordinal number="3" string="Третий" />
+ <ordinal number="4" string="Четвертый" />
+ <ordinal number="5" string="Пятый" />
+ <ordinal number="6" string="Шестой" />
+ <ordinal number="7" string="Седьмой" />
+ <ordinal number="8" string="Восьмой" />
+ <ordinal number="9" string="Девятый" />
+ <ordinal number="10" string="Десятый" />
<!-- Highway names -->
<highway type="motorway" string="автомагистраль" />
@@ -462,30 +452,30 @@
<!-- HTML output -->
<output-html>
- <waypoint type="waypoint" string="путевая точка" /> <!-- For the chosen waypoints -->
- <waypoint type="junction" string="перекрестке" /> <!-- For the interesting junctions -->
+ <waypoint type="waypoint" string="путевая точка" /> <!-- For the chosen waypoints -->
+ <waypoint type="junction" string="перекрестке" /> <!-- For the interesting junctions -->
<!-- TRANSLATION REQUIRED: waypoint type="roundabout" string="Roundabout" / --> <!-- For roundabouts -->
<title text="%s маршрут" /> <!-- %s = [shortest|quickest] -->
- <start string="Старт" text=" %s, на %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [heading] -->
- <node string="на" text="%s, %s, на %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [turn], 3rd %s = [heading] -->
- <!-- TRANSLATION REQUIRED: rbnode string="Leave" text="%s, take the %s exit heading %s" / --> <!-- 1st %s = [roundabout], 2nd %s = [first|second|...], 3rd %s = [heading] -->
+ <start string="Старт" text=" %s, на %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [heading] -->
+ <node string="на" text="%s, %s, на %s" /> <!-- 1st %s = [waypoint|junction], 2nd %s = [turn], 3rd %s = [heading] -->
+ <!-- TRANSLATION REQUIRED: rbnode string="Покинуть" text="%s, take the %s exit heading %s" / --> <!-- 1st %s = [roundabout], 2nd %s = [first|second|...], 3rd %s = [heading] -->
<segment string="Следуйте" text="по %s %.3f км, %.1f мин" /> <!-- 1st %s = street name -->
- <stop string="Стоп" text=" %s" /> <!-- 1st %s = [waypoint|junction] -->
- <total string="Всего" text="%.1f км, %.0f минут" />
+ <stop string="Стоп" text=" %s" /> <!-- 1st %s = [waypoint|junction] -->
+ <total string="Всего" text="%.1f км, %.0f минут" />
</output-html>
<!-- GPX output -->
<output-gpx>
- <waypoint type="start" string="Старт" /> <!-- For the first route waypoint -->
- <waypoint type="inter" string="INTER" /> <!-- For the intermediate route waypoints -->
- <waypoint type="trip" string="TRIP" /> <!-- For the other route points -->
+ <waypoint type="start" string="Старт" /> <!-- For the first route waypoint -->
+ <waypoint type="inter" string="INTER" /> <!-- For the intermediate route waypoints -->
+ <waypoint type="trip" string="TRIP" /> <!-- For the other route points -->
<waypoint type="finish" string="Финиш"/> <!-- For the last route waypoint -->
- <desc text="%s маршрут от 'Старта' до 'Финиша' " /> <!-- %s = [shortest|quickest] -->
- <name text="%s маршрут" /> <!-- %s = [shortest|quickest] -->
- <step text="на %s по '%s' %.3f км, %.1f мин" /> <!-- 1st %s = [turn], 2nd %s = street name -->
+ <desc text="%s маршрут от 'Старта' до 'Финиша'" /> <!-- %s = [shortest|quickest] -->
+ <name text="%s маршрут" /> <!-- %s = [shortest|quickest] -->
+ <step text="на %s по '%s' %.3f км, %.1f мин" /> <!-- 1st %s = [turn], 2nd %s = street name -->
<final text="Всего - %.1f км, продолжительность - %.0f минут" />
</output-gpx>
diff -Nru routino-2.7/xml/scripts/drive.pl routino-2.7.2/xml/scripts/drive.pl
--- routino-2.7/xml/scripts/drive.pl 2014-03-08 20:31:02.000000000 +0100
+++ routino-2.7.2/xml/scripts/drive.pl 2014-04-19 18:36:04.000000000 +0200
@@ -36,8 +36,11 @@
print " <output k=\"wheelchair\" v=\"no\"/>\n";
print " <output k=\"bicycle\" v=\"no\"/>\n";
print "\n";
- print " <output k=\"bridge\" v=\"no\"/>\n";
- print " <output k=\"tunnel\" v=\"no\"/>\n";
+ print " <output k=\"bridge\" v=\"no\"/>\n";
+ print " <output k=\"tunnel\" v=\"no\"/>\n";
+ print " <output k=\"footroute\" v=\"no\"/>\n";
+ print " <output k=\"bicycleroute\" v=\"no\"/>\n";
+ print " <output k=\"cyclebothways\" v=\"no\"/>\n";
print " </if>\n";
print "\n";
}
diff -Nru routino-2.7/xml/scripts/walk.pl routino-2.7.2/xml/scripts/walk.pl
--- routino-2.7/xml/scripts/walk.pl 2014-03-08 20:30:54.000000000 +0100
+++ routino-2.7.2/xml/scripts/walk.pl 2014-04-19 18:36:37.000000000 +0200
@@ -45,7 +45,8 @@
print " <output k=\"bridge\" v=\"no\"/>\n";
print " <output k=\"tunnel\" v=\"no\"/>\n";
print "\n";
- print " <output k=\"bicycleroute\" v=\"no\"/>\n";
+ print " <output k=\"bicycleroute\" v=\"no\"/>\n";
+ print " <output k=\"cyclebothways\" v=\"no\"/>\n";
print " </if>\n";
print "\n";
}
Reply to: