<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Elevation Enabled Bicycle Router Supporting User-Profiles</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nikolaus Krismer</string-name>
          <email>nikolaus.krismer@uibk.ac.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Doris Silbernagl</string-name>
          <email>doris.silbernagl@uibk.ac.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Günther Specht</string-name>
          <email>guenther.specht@uibk.ac.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Martin Malfertheiner</string-name>
          <email>martin.malfertheiner@student.uibk.ac.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer</institution>
          ,
          <addr-line>Science</addr-line>
          ,
          <institution>University of</institution>
          ,
          <addr-line>Innsbruck</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>74</fpage>
      <lpage>79</lpage>
      <abstract>
        <p>Routing engines offer various algorithms to find the shortest or fastest path from point A to point B. Most of them are designed to find best paths for automobiles. Searching for a path as a cyclist has often very disappointing results. The main problem is that currently available routers do neither consider elevation or nor support profile aware routing. Therefore, this paper proposes a bicycle router that is build on top of GraphHopper, OpenStreetMap and SRTM supporting both of these requirements. The engine learns from previously gathered biking trips of users how fast one can ride on which street type as well as which kind of tracks are preferred. With the help of this information the system is able to suggest appropriate paths for each individual and estimates very accurate travel times.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Categories and Subject Descriptors</title>
      <p>F.2.2 [Analysis of Algorithms and Problem
Complexity]: Nonnumerical Algorithms and Problems—Routing and
layout ; H.2.8 [Information Systems]: Database
Applications—Spatial databases and GIS</p>
    </sec>
    <sec id="sec-2">
      <title>1. INTRODUCTION</title>
      <p>People often rely on online services that propose best
paths while planning a trip or when traveling. Contrary to
traveling by car, cycling depends on different factors. One
of these is elevation. Most cars have enough power to drive
close to the speed limit regardless of the slope of the street.
However, cycling uphill or downhill makes a huge difference
and many of the currently available online routers do not
consider an altitude profile at all.</p>
      <p>
        Even though there are some elevation aware routing
engines like GraphHopper[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], its estimations are not tailored
to individual persons. The physical capabilities of Sunday
cyclists, hobby bikers and professionals are very different
and should be reflected by a routing engine. In addition, it
should also be able to propose paths that mirror the
preferences of the requesting cyclist.
      </p>
      <p>Therefore, a bicycle routing engine is presented in this
paper that addresses these issues. The system does not simply
find the fastest route from point A to point B, it is able to
find the best path for each user individually. The result is
a combination of the users preferred street types, the
accurate time estimation and the elevation profile. To achieve
this goal as much information as possible provided by
various datasets should be used.</p>
      <p>The remainder of this paper is structured in five parts,
with a related work section following this introduction. It
includes a description of the routing engine GraphHopper
and a short overview of other currently available research
projects on profile aware routing. The third section explains
the developed bicycle router in detail and gives insight into
how profiles are stored and loaded during the route
computation. The proposed bicycle router is later evaluated in
Section 4 using various tracks and different bicycle riders.
The paper ends with a short summary and possible future
work to further improve the elevation aware routing engine.
2.</p>
    </sec>
    <sec id="sec-3">
      <title>RELATED WORK</title>
      <p>
        Every routing engine needs a street network to find the
shortest, fastest or most safe cycle path between two points.
Therefore, the community driven geographic datasource from
OpenStreetMap (OSM)1 will be used. The project gets its
data from individual supporters, but also from institutions.
The work of Corcoran et.al.[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] shows that the community is
very active and constantly increasing the level of detail. A
typical OSM file contains lists of nodes, ways and relations,
where each one of these elements can be further specified by
a very flexible key-value pair tagging system. A node is a
single point on the world, defined by latitude and longitude.
A way is not only used as a way in the conventional sense,
like a street, but it is also used to describe an area, like the
      </p>
      <sec id="sec-3-1">
        <title>1http://www.openstreetmap.org</title>
        <p>perimeter of a park or a forest. The third element used, the
relation, is the most complex data element in OSM, as it
can have nodes, ways and relations as members.</p>
        <p>
          A lot of research about the quality of OSM has been done
during the last years. Barron et al. [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] developed a tool
to measure the quality of OSM regions based on the
editing history. The authors pointed out that for each type of
application, different requirements for the data hold.
Completeness, currentness and logical consistency of the road
network, attribute and positional accuracy are the major
requirements for a routing engine. Loidl et al. [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] performed
an evaluation on incomplete, erroneous and heterogeneous
attributes and were able to achieve improvements for the
investigates region. Since OSM is the best free available
solution available it will be the base geographic source.
        </p>
        <p>
          Every OSM node usually has a value for latitude and
longitude, but although generally supported by OSM, only 0.07
% contain information about the third dimension: the
elevation. Without accurate elevation profiles the system can
not calculate correct time estimations. Thus, another data
source that was collected in 2000 during the Shuttle Radar
Topography Mission (SRTM) is used. Together, the two
datasets OSM and SRTM, deliver enough information to
create the required three dimensional geographic map on
which the routing engine can search for paths. To increase
the accuracy of the elevation model some post–processing
has been performed that is discussed in detail by [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
        </p>
        <p>
          OpenStreetMap is used by many open source routing
engines, such as OSRM2, MapQuest3, GraphHopper, BRouter4
and many more. Most routing engines share a vast amount
of similar characteristics, but often their focus is on cars and
less on bicycle routing[
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. The elevation profile of a
highway should not be neglected, but it influences the drive by
car less than a cycling trip.
        </p>
        <p>
          GraphHopper is chosen over the other available options as
base engine because it is easily extendable, well tested and
can deal with altitude profiles (in a very basic way) without
modification. Besides, it has an active community that is
bigger than the ones of the other engines capable of
providing routes for cyclists. It uses a PBF (Protocolbuffer Binary
Format) file of the area the user wants to search for routes
in, combined with SRTM or CGIAR (Consultative Group
on International Agricultural Research) elevation data. On
startup of the routing engine, two initialization phases are
performed. While marking nodes as tower or pillar nodes
and maintaining tag restrictions in the first phase, a routing
graph is built using the gathered information in the second
phase. Weighting is then used to update the speed property
of edges. Using the GraphHopper engine in its original and
unmodified version, only the altitude of the starting and
ending point is taken into account to calculate the slope of an
edge. Depending on the result the speed is increased or
decreased. For routing purposes several algorithms for finding
routes are supported. The default algorithm used is
bidirectional Dijkstra[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], but GraphHopper also supports
unidirectional Dijkstra, one-to-many Dijkstra, as well as uni– and
bidirectional AStar[
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. The algorithms calculate a weighting
value for each path and the one with the lowest value will
be returned to the user.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>2http://project-osrm.org/ 3http://www.mapquest.com/ 4http://brouter.de/</title>
        <p>
          In the last few years there has been a strong movement
on cycle route planning depending on security issues along
the route. Researchers gathered information through
surveys, cycling organizations [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] or in corporation with
governments [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] and built models for safe street networks.
Routers were developed that are able to provide tracks with
low traffic, routes labeled for bikes, broad paths and other
metrics, but they never consider the individual preferences
of a user. Some projects investigate route choice behavior
of cyclists to support governments on taking street network
modeling decisions. Hood et al. [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] did an analysis in San
Francisco using GPS data of hundreds of participants.
Community driven route planning is another approach to find
better suited paths for cyclists. It uses a mobile
application to record GPS data, geo-tagged media, noise level and
roughness of a bike trip. A user then can see all tracks used
by anyone beforehand and is able to lookup the information
collected [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Another approach by the community is
Cyclopath, a so called GeoWiki. A user can add information
about points of interest on a track, post comments (width,
surface) and rate the ”bikeability” of the track [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. All this
user input can then be considered during route finding, but
it again is not tailored to a specific user.
3.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>THE BICYCLE ROUTER</title>
      <p>
        An elevation aware router for bicycles needs detailed
information about the elevation profile and the properties of
a street. On the one hand the router should avoid
unnecessary climbings, but on the other hand a cyclist does not
want to take too much of a detour. Even more important
is the type of the street. Broach et. al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] collected rider
preferences and showed that distance, turn frequency, slope,
intersection control and traffic volumes have a strong impact
on route choice. A router that is able to consider all these
aspects, needs to be fed with data from OpenStreetMap as
well as with elevation information.
      </p>
      <p>One characteristic of GraphHopper is that it is designed
to route with precalculated values for speed, distance and
priority. These values are sufficient to find the fastest and
shortest paths without knowledge of user preferences and
cycling capabilities, but to find routes tailored to specific
needs more data needs to be taken into account. Therefore,
many tags of OSM were investigated regarding route finding.
Table 1 lists the keys of the tags chosen and gives a short
description for each one.</p>
      <p>However, it is not sufficient to solely rely on information
from these tags. Although a racing bike requires paved
surfaces and mountain bikes can ride on paved as well as on
unpaved surfaces, this is only one aspect of the criteria to
consider. When it comes to profile based routing, more
conditions need to be addressed. An easy path might be doable
for a non-professional mountain biker and could be a nice
alternative to a parallel, traffic loaded road, but a downhill
racer might search for different way types. Therefore, it is
obvious that additional and more detailed information for
each edge (besides speed and its length) need to be stored.
3.1</p>
    </sec>
    <sec id="sec-5">
      <title>Added routing information</title>
      <p>An edge can not simply be extended with a ton of new
information from various OSM tags. The added information
has to be reduced to a minimum in order to hold the data
in main memory. This allows the engine to operate in an
efficient way. Therefore, a newly created flag encoder stores
the way type, the adjusted speed depending on the ways
surface, average incline/decline elevation and the distance
an edge continues to rise.
very detailed street graph. The combination of all these
variables allow path finding algorithm to retrieve the most
suitable path for each user.
3.1.1</p>
      <sec id="sec-5-1">
        <title>Way Type</title>
        <p>It is possible to meet the users preferences without storing
the entire flood of OSM information. Dealing with bicycles it
is very important to know the compactness of the way as well
as the traffic load and the difficulty of a street (e.g. if a user
is a passionate racing cyclist, then only those streets with
paved surface should be considered). With that in mind 16
different classes have been designed. Each way gets assigned
to one of these classes.
3.1.2</p>
      </sec>
      <sec id="sec-5-2">
        <title>Surface</title>
        <p>The speed calculation carried out to estimate travel times
depends on way type and especially on its surface. A track
with surface “compacted” and one with surface “mud” are for
example both considered unpaved tracks, but riding them
makes a big difference in terms of speed. A factor is defined
for each surface/way type combination to modify the speed
when riding it. Track surface “compacted” uses a
multiplication factor of 1.2 while “mud” is assigned to 0.6, resulting
in different calculation speed.
3.1.3</p>
      </sec>
      <sec id="sec-5-3">
        <title>Elevation</title>
        <p>The last information added for each edge is the elevation
profile. Every point of an edge already has altitude
information, but calculating the slope for each edge every time a
request is processed would be a waste of processing power.
The slope can be precalculated because it does not change
between different users unlike way type preference.</p>
        <p>The algorithm calculates the average incline and decline
slope for each edge. Moreover, it stores how long an edge
continues to rise. This is expressed as percentage of its
distance. These three values are enough to reason about the
edges elevation profile during path finding. Exceptions are
made for tunnels, bridges, steps and very short edges (less
than one meter). For these types of ways the slope will not
be calculated, but instead considered to be flat.</p>
        <p>The three elevation variables take up 19 bits of the flag
variable on each edge, but deliver very valuable information
for bicycle routing and avoid a lot of processing time.</p>
        <p>With only 32 bits per edge (way type (4 bits) + speed
(9 bits) + elevation (19 bits)) the router can reason on a
3.2</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Routing without profiles</title>
      <p>In order to profit from the newly generated details for
each edge, the routing engine had to be extended with a
new weighting implementation. Every path finding
algorithm calls it to find the best path. Usually fastest routing
takes the travel time for each edge as parameter while
shortest path weighting considers only the distance of each edge.
The developed approach also considers way type, surface
and elevation.</p>
      <p>Without any information about a user, the weighting
algorithm prefers paved, low traffic, short travel time and bicycle
designated streets. Therefore, a preference value depending
on way type, surface type and elevation profile is calculated.
Every edge starts with a priority value equal to four. The
current implementation for non–profile based routing assigns
a value between -4 and +3 to each way type. For example:
the algorithm subtracts two from ways with unpaved
surface and also penalizes if it has very steep inclines or a bad
surface. The idea is that riding uphill and/or on unpaved
surfaces is very inconvenient with a bicycle.</p>
      <p>The resulting priority (a value between zero and seven
that is divided by seven so it can be thought of as
percentage value) is used to influence the travel time. This causes
bicycle designated, low traffic, well paved, easy elevation and
low travel time tracks to be preferred over other paths.
3.3</p>
    </sec>
    <sec id="sec-7">
      <title>Profile based routing</title>
      <p>Riding a bicycle is a very individual task. A hobby
cyclist might take one hour for a track, a professional racer
takes twenty minutes and a person new to cycling takes one
and a half hours. Besides, a router should suggest different
routes for a mountain bike and a racing bike. To support
profile aware routing it is necessary to find a simple
mechanism, that is powerful enough to create a detailed profile
of a cyclist and can be used by the implemented weighting
algorithm.
3.3.1</p>
      <p>Profiles</p>
      <p>Although OSM properties that are of interest are known,
it would be too difficult for a user to define his preferences
based on them. Setting the appropriate speed by hand would
also be a cumbersome task for a person. Manually defining
a profile is no choice for a user–friendly system so a way to
create the profile automatically needed to be found.</p>
      <p>Therefore, a strategy is developed that utilizes tracks which
can be created using a tracking device such as a mobile
phone or a GPS tracker. The big benefit of this approach
is that the cyclist neither needs to specify any preferences
on way types nor has to enter speed values for each way
type and slope. Even better, the profile will evolve with
every added track. Its the algorithms responsibility to extract
the necessary information and model the users preferences
and capabilities. Once a profile has been fed with enough
information the router can propose customized routes with
accurate travel time.</p>
      <p>The basic profile, which is stored on disk, is a simple 16x61
matrix. Every row of the matrix corresponds to a way type
and every column to a slope value ranging from -30% to
+30%. A cell is either null (no data inserted so far) or
contains distance and speed. Once a user uploads a track, the
system extracts slope, speed (directly from the file provided)
and way type (using GraphHoppers Map–Matching library)
and fills the profile matrix with the calculated values.
3.3.2</p>
      <sec id="sec-7-1">
        <title>Profile preparation</title>
        <p>The profiles encoding the history of the cyclists have to be
post–processed so that they can be used during the
weighting process. Doing this, two major problems need to be
addressed:
• The profile will probably have empty spots for certain
way type/slope combinations even if the user uploaded
a lot of different tracks.
• Faulty speed values need to be corrected, especially if
only few samples have been uploaded for specific way
type/slope pairs.</p>
        <p>
          The solution to both of these problems is curve fitting.
By specifying an accurate curve, gaps can be filled
appropriately, outliers can be corrected and the speed value can
be forced to adopt according to the well-known energetics of
cycling that were explored by [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] and [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>
          The researchers showed that cyclists gain speed quickly
once the track goes downhill, but also that the absolute
speed increase diminishes while the downward movement
increased, because a cyclist starts to break and head wind
becomes a factor. With increasing slope the average speed of a
cyclist decreases fast but also - even in this case - the steeper
the track gets the absolute speed decrease minimizes. This
behavior is very similar to an inverted Sigmoid–curve [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
In order to fit this S–shaped curve to the profile samples,
a special version of the Sigmoid–curve, the so called inverse
logistic function, is used:
        </p>
        <p>L
f (x) = 1 − 1 + e−k(x−x0)
(1)
• L = the curves maximal value (the upper bound).
• k = the steepness of the curve (its “growth rate”).
• x0 = the mid-point of the curve (its inflection point) .</p>
        <p>Function 1 is used by the curve fitting process, searching
for the parameters L, k, x0 using a weighted least squares
method for every way type. Profile entries accumulated
from multiple track parts are considered more important so
a weighting factor (distance per way type/speed) is used.
However, this method only works reliable if there is a
certain amount of entries available and if those entries are well
distributed regarding the ways slope. In order to prevent
misleading fittings only those way types that have at least a
total distance of ten kilometers will become part of the
profile. Since this threshold alone does not guarantee a good
fit (because the distribution of the entries itself has an
impact too) artificial values created by GraphHoppers general
speed function are added to the profile as well. These
values are added with a short distance of fifty meters, so they
become less important during the weighting process as soon
as recorded tracks are added to the profile.</p>
        <p>After this preparation the original profile with all the
empty slots and faulty speed values is ready to be used
by the weighting algorithm. The inverted Sigmoid–curve
reflects the relation between slope and speed in terms of
cycling. The threshold on traveled way type distance provides
a reliable result.
3.3.3</p>
      </sec>
      <sec id="sec-7-2">
        <title>Profile aware routing</title>
        <p>The first step of GraphHoppers weighting mechanism asks
the profile manager for the weighted average speed of the
user at a certain way type and slope. If the requested way
type has at least ten kilometers of uploaded track parts
then the speed value will be returned from the curve
fitted dataset. Otherwise the system searches for the way type
with the highest amount of uploaded track parts. If this way
type meets the required ten kilometers, the system takes the
speed from this dataset and modifies it according to the
difference between the base speed of the requested way type
and the way type from the dataset. Only when dealing with
a profile which does not include a single way type matching
the ten kilometers requirement the routing engine uses the
general (not user specific) speed calculation function. In any
case the returned speed is used to calculate the travel time
for this specific edge.</p>
        <p>The second step estimates the preference of an edge. For
this purpose the ratio of each way types distance to the
total cycled distance of the user will be compute. This value
influences the preference of a certain edge, but considering
only the way type is not enough. The ratio of the surface
type is used as well, which causes the routing engine to prefer
also similar way types.
4.</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>EVALUATION</title>
      <p>The main purpose of the presented router is to provide
user specific paths, with accurate travel time taking
elevation into account. The estimated travel times are now
evaluated against actually recorded track times. It is also
examined how the router reacts according to different way
type preferences of cyclists.
4.1</p>
    </sec>
    <sec id="sec-9">
      <title>Travel time</title>
      <p>Getting an accurate personalized travel time estimation is
valuable to cyclists. In order to evaluate these estimations
against real GPS recordings, ten trips have been recorded
with different elevation profile and various difficulties. These
recordings have been used to create three profiles.</p>
      <p>• Profile 1 (P1) is created using two recordings. The
(a) orig. GraphHopper (b) Without profile (c) Moutainbike profile (d) Racing profile
(e) Touring profile
first one is a long trip (about 15 kilometers and eighty
minutes of travel time), with steep inclines as well as
declines. The second track is shorter (approximately
five kilometers) and almost flat.
• Profile 2 (P2) uses information from a track of
approximately ten kilometers that has been recorded in both
directions.
• Profile 3 (P3) consists of multiple short recordings,</p>
      <p>which have inclines, declines as well as flat parts.</p>
      <p>Concerning the profile–awareness, four routes (which are
not part of any of the profiles) have been requested
comparing their results against actual recorded travel times. Table
2 lists the measured travel times and the ones for the
created profiles. Moreover, it also contains the estimated time
by the original, unmodified GraphHopper engine in contrast
to the elevation aware router without profile as described in
Section 3.2.</p>
      <p>The four different kinds of tracks in Table 2 cover uphill,
downhill and flat paths, in and outside settlements. The
third track is a steep uphill track, where routing with
profile information makes a big difference. The bicycle router
comes closer to the original travel time than the unmodified
GraphHopper does for all tracks. This even holds true when
the bicycle router without profiles. However, with only one
exception (P2 on Track one is off by one more minute),
profiles increase the accuracy of the estimated travel times even
more.</p>
      <p>To show that a profile makes a difference across cyclists
two recordings of a very long trip from RideWithGPS5 were
used. Small parts have been extracted from these trips to
become the test data, while the rest of the trips
(excluding the test data) is used to create four profiles. The travel
time estimation of the test data is then evaluated against
the actual recorded time. The results are given in Table 3.</p>
      <p>Rider #1 – uphill track
Rider #1 – downhill track
Rider #2 – up-/dowhill track
1
Rider #2 – up-/dowhill track
2</p>
      <p>One major goal for the presented bicycle router is that it
should find the best path for each individual user. To
evaluate this task, five profiles from different tracks have been
created. They were used to look up routes using the same
start- and end points. The resulting paths are analyzed to
understand how the routing engine reacts to different user
preferences. For this purpose the outcome of the unmodified
GraphHopper, the developed bicycle router without a
profile, with a profile of a racing cyclist and with a profile of a
mountain biker have been compared in Figure 1. The
original GraphHopper router (1(a)) proposes a path on streets
that is very similar to the one of the bicycle router without
profile (1(b)) and with a touring profile (1(e)). Figure 1(c)
presents the suggested path using a MTB profile which is the
only one, that proposes a track with unpaved surfaces. The
last path to consider is the proposal for the racing cyclist
(1(d)) that is a path on the primary roads in this area.</p>
      <p>This shows that the routing engine reacts very flexible and
responses according to a cyclists needs.</p>
    </sec>
    <sec id="sec-10">
      <title>5. SUMMARY AND OUTLOOK</title>
      <p>People rely on online services to plan their trips. A car
routing engine does not really need to consider the
individuality of a person, because travel time and route preference
usually depends on predefined speed limits and real time
traffic information. Most of the currently available routing
engines take the same approach for bicycle routing, which
results in very poorly estimated travel times and route
proposals for different users. This paper showed how a profile
aware routing engine can reflect the physical ability and the
individual preferences of a cyclist. In order to find the best
path for each person it is necessary to reason about the
surface, the type of a way and the elevation profile, as well as
the physical ability of the requesting cyclist.</p>
      <p>OpenStreetMap has a very flexible data structure and
in order to support user profiles it is necessary to include
more than just the main classification of a street. The
proposed approach can distinguish between paved and unpaved
streets, high vs. low traffic streets, cycling ways and
pushing sections. One of sixteen individual classes is assigned
to each way. Combining this information with data about
the ways surface as well as its elevation allows to find the
most suitable route for racing cyclists, mountain bikers or
any other category of cyclists.</p>
      <p>
        With the help of user profiles the presented router is able
to propose different routes according to the requesting
person. The example from Section 4.2 shows that the routing
engine reacts according to the preferred street types a cyclist
drove on in the past. For the small search area (approx. five
kilometers) it suggests five different tracks for five different
profiles. The profile is also able to reflect the physical ability
of a person, by collecting the average speed a user has on
certain slopes and way types. Section 4.1 shows that it can
estimate the travel time of a user with only a small error,
which can further be neglected as a cyclist is not in the same
condition every day or even due to other influences such as
weather conditions. The results show that the system has a
maximum error of five minutes for tracks lasting more than
an hour. Without an accurate elevation profile it would not
be possible to calculate such exact time estimations.
Therefore, the elevation models have been examined in much more
detail and were even improved in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>There are some minor issues that should be addressed in
future works. Even though the router has the functionality
to find the best path for a user, it is not yet suited to be
used by the public, since profiles are created through
command line operations and the user interface is not designed
for daily use. The creation of a mobile application, that
supports tracking, searching, uploading routes and
managing the profile with a user-friendly interface could also be the
next step to make the routing engine accessible to everybody.
Another interesting idea of further improving path
suggestions and the estimated travel time is to include real-time
information, such as weather, traffic jams or the exclusion of
closed roads. Also the fact that a cyclist can get exhausted
over time and therefore is getting slower should be addressed
by using an additional weighting factor related to traveling
duration.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>C.</given-names>
            <surname>Barron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Neis</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Zipf</surname>
          </string-name>
          .
          <article-title>Comprehensive Framework for Intrinsic OpenStreetMap Quality Analysis</article-title>
          .
          <source>Transactions in GIS</source>
          ,
          <volume>18</volume>
          (
          <issue>6</issue>
          ):
          <fpage>877</fpage>
          -
          <lpage>895</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Broach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dill</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Gliebe</surname>
          </string-name>
          .
          <article-title>Where do cyclists ride? a route choice model developed with revealed preference gps data</article-title>
          .
          <source>Transportation Research Part A: Policy and Practice</source>
          ,
          <volume>46</volume>
          (
          <issue>10</issue>
          ):
          <fpage>1730</fpage>
          -
          <lpage>1740</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>P.</given-names>
            <surname>Corcoran</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Mooney</surname>
          </string-name>
          .
          <article-title>Characterising the metric and topological evolution of OpenStreetMap network representations</article-title>
          .
          <source>The European Physical Journal Special Topics</source>
          ,
          <volume>215</volume>
          (
          <issue>1</issue>
          ):
          <fpage>109</fpage>
          -
          <lpage>122</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>E. W.</given-names>
            <surname>Dijkstra</surname>
          </string-name>
          .
          <article-title>A note on two problems in connexion with graphs</article-title>
          .
          <source>Numerische mathematik</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <fpage>269</fpage>
          -
          <lpage>271</lpage>
          ,
          <year>1959</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Han</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Moraga</surname>
          </string-name>
          .
          <article-title>The influence of the sigmoid function parameters on the speed of backpropagation learning</article-title>
          .
          <source>In From Natural to Artificial Neural Computation</source>
          , pages
          <fpage>195</fpage>
          -
          <lpage>201</lpage>
          . Springer,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P. E.</given-names>
            <surname>Hart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. J.</given-names>
            <surname>Nilsson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Raphael</surname>
          </string-name>
          .
          <article-title>A formal basis for the heuristic determination of minimum cost paths</article-title>
          .
          <source>Systems Science and Cybernetics</source>
          , IEEE Transactions on,
          <volume>4</volume>
          (
          <issue>2</issue>
          ):
          <fpage>100</fpage>
          -
          <lpage>107</lpage>
          ,
          <year>1968</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Hood</surname>
          </string-name>
          , E. Sall, and
          <string-name>
            <given-names>B.</given-names>
            <surname>Charlton</surname>
          </string-name>
          .
          <article-title>A GPS-based bicycle route choice model for San Francisco</article-title>
          , California. Transportation letters,
          <volume>3</volume>
          (
          <issue>1</issue>
          ):
          <fpage>63</fpage>
          -
          <lpage>75</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Karich</surname>
          </string-name>
          and S. Schro¨der. GraphHopper. https://graphhopper.com,
          <year>03 2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Loidl</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Zagel</surname>
          </string-name>
          .
          <article-title>Wie sicher ist sicher? - Innovatives Kostenmodell zur Ermittlung des Gefa¨hrdungspotenzials auf Radwegen</article-title>
          .
          <source>In AGIT 2010</source>
          , pages
          <fpage>394</fpage>
          -
          <lpage>403</lpage>
          . Wichmann Verlag,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>S. K. M. Loidl</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Zagel</surname>
            and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Reithofer. Radlkarte Salzburg - Das Radroutingportal</surname>
          </string-name>
          fu
          <article-title>¨r die Stadt Salzburg</article-title>
          .
          <source>In AGIT</source>
          , pages
          <fpage>456</fpage>
          -
          <lpage>461</lpage>
          . AGIT (
          <year>2013</year>
          ),
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>B. Z. u. G. P.</given-names>
            <surname>Martin</surname>
          </string-name>
          <string-name>
            <surname>Loidl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Stefan</given-names>
            <surname>Krampe</surname>
          </string-name>
          .
          <article-title>Aufbereitung von OpenStreetMap-Daten fu¨r GIS-Modellierungen und Analysen</article-title>
          .
          <source>In Angewandte Geoinformatik</source>
          <year>2014</year>
          .
          <article-title>Angewandte Geoinformatik (</article-title>
          <year>2014</year>
          ),
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Nu</surname>
          </string-name>
          <article-title>¨schler. Leistungsfa¨higkeit auf dem Rad am Berg: Vergleich zwischen Marco Pantani und Hobbyfahrern</article-title>
          .
          <source>Schweizerische Zeitschrift fu¨r ”Sportmedizin und Sporttraumatologie”</source>
          ,
          <volume>49</volume>
          (
          <issue>2</issue>
          ):
          <fpage>79</fpage>
          -
          <lpage>81</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>OSM</given-names>
            <surname>Wiki</surname>
          </string-name>
          . Routing/online routers - OpenStreetMap Wiki. http://wiki.openstreetmap.org/wiki/ Routing/online_routers,
          <year>2016</year>
          .
          <volume>03</volume>
          /02/
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>R.</given-names>
            <surname>Priedhorsky</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Terveen</surname>
          </string-name>
          .
          <article-title>The Computational Geowiki: What, Why, and How</article-title>
          .
          <source>In Proceedings of the 2008 ACM Conference on Computer Supported Cooperative Work, CSCW '08</source>
          , pages
          <fpage>267</fpage>
          -
          <lpage>276</lpage>
          , New York, NY, USA,
          <year>2008</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Reddy</surname>
          </string-name>
          , Sasank and Shilton, Katie and Denisov, Gleb and Cenizal, Christian and Estrin, Deborah and Srivastava, Mani. Biketastic:
          <article-title>Sensing and Mapping for Better Biking</article-title>
          .
          <source>In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, CHI '10</source>
          , pages
          <fpage>1817</fpage>
          -
          <lpage>1820</lpage>
          , New York, NY, USA,
          <year>2010</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>H.</given-names>
            <surname>Schlichting</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Nobbe</surname>
          </string-name>
          .
          <article-title>Untersuchungen zur Energetik des Fahrrads</article-title>
          .
          <source>Technic-Didact</source>
          ,
          <volume>8</volume>
          :
          <fpage>225</fpage>
          -
          <lpage>230</lpage>
          ,
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>D.</given-names>
            <surname>Silbernagl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Krismer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Malfertheiner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Specht</surname>
          </string-name>
          .
          <article-title>Optimization of digital elevation models for routing</article-title>
          .
          <source>Tagungsband zum 28</source>
          . GI-Workshop u¨ber
          <source>Grundlagen von Datenbanken (28th GI-Workshop on the Foundations of Databases)</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>R.</given-names>
            <surname>Turverey</surname>
          </string-name>
          , D. Cheng,
          <string-name>
            <given-names>O.</given-names>
            <surname>Blair</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Roth</surname>
          </string-name>
          , G. Lamp, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Cogill</surname>
          </string-name>
          .
          <article-title>Charlottesville bike route planner</article-title>
          .
          <source>In Systems and Information Engineering Design Symposium (SIEDS)</source>
          ,
          <year>2010</year>
          IEEE, pages
          <fpage>68</fpage>
          -
          <lpage>72</lpage>
          ,
          <year>April 2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>