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