From cbc129080b94f35d5cbfd498457259393cc762a6 Mon Sep 17 00:00:00 2001 From: tombay Date: Sat, 5 Oct 2024 15:43:55 +1000 Subject: [PATCH 1/8] Describe options for trunk access in bicycle and foot profiles --- docs/profiles.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/profiles.md b/docs/profiles.md index c66eb81c299..d697a42151c 100644 --- a/docs/profiles.md +++ b/docs/profiles.md @@ -375,3 +375,20 @@ There are a few helper functions defined in the global scope that profiles can u - `trimLaneString` - `applyAccessTokens` - `canonicalizeStringList` + +### osrm-extract location dependent data +The creation of the dataset for routing use requires preprocessing of the osm data source. +The first preprocessing step is via osrm-extract. +Certain data (like driving-side or vehicle height) may be different between areas. +The "--location-dependent-data" command option can be used to pass geojson polygon data to support this differentiation. + +### Highway support for Trunk Roads +The default routing profiles foot.lua and bicycle.lua do not allow access on ways with highway="trunk" or highway="trunk_link". +The wiki page outlining access restrictions ("https://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Access_restrictions") outlines seven countries that do not allow such access. +If the setup option uselocationtags includes 'trunk' then access is changed to yes for all countries. +To support routing data that honours different trunk access + +- confirm uselocationtags = 'trunk' is set +- osrm-extract --location-dependent-data data/notrunk.geojson ... + +This geojson sets the notrunk option for the seven countries (Austria, Belgium, Denmark, France, Hungary, Slovakia and Switzerland). From 4b24713d7626bfcd5620963c7998b5ea1e198a48 Mon Sep 17 00:00:00 2001 From: tombay Date: Sat, 5 Oct 2024 16:01:09 +1000 Subject: [PATCH 2/8] Support trunk access for some countries --- data/notrunk.geojson | 7 + features/bicycle/way.feature | 39 +++++- features/bicycle/way_notrunk.feature | 183 ++++++++++++++++++++++++++ features/foot/way.feature | 34 +++++ features/foot/way_notrunk.feature | 186 +++++++++++++++++++++++++++ profiles/bicycle.lua | 67 +++------- profiles/foot.lua | 14 +- profiles/lib/way_handlers.lua | 15 +++ 8 files changed, 494 insertions(+), 51 deletions(-) create mode 100644 data/notrunk.geojson create mode 100644 features/bicycle/way_notrunk.feature create mode 100644 features/foot/way_notrunk.feature diff --git a/data/notrunk.geojson b/data/notrunk.geojson new file mode 100644 index 00000000000..274500d623a --- /dev/null +++ b/data/notrunk.geojson @@ -0,0 +1,7 @@ +{ +"type": "FeatureCollection", +"name": "notrunk", +"features": [ +{ "type": "Feature", "properties": { "trunk": "no", "trunk_link": "no" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 9.328765, 41.32062 ], [ 9.286847, 41.28319 ], [ 8.798805, 41.23866 ], [ 3.176237, 42.43371 ], [ 3.083413, 42.42015 ], [ 3.026463, 42.46648 ], [ 2.837709, 42.4449 ], [ 2.78853, 42.40826 ], [ 2.708677, 42.41289 ], [ 2.663866, 42.37779 ], [ 2.691517, 42.33398 ], [ 2.559084, 42.34963 ], [ 2.548566, 42.32755 ], [ 2.480866, 42.33811 ], [ 2.402161, 42.39066 ], [ 2.25449, 42.42562 ], [ 2.204567, 42.41458 ], [ 2.131985, 42.40938 ], [ 2.103023, 42.35347 ], [ 2.015824, 42.34351 ], [ 1.967745, 42.3693 ], [ 1.930762, 42.44482 ], [ 1.897025, 42.44444 ], [ 1.715368, 42.49186 ], [ 1.721935, 42.51842 ], [ 1.733308, 42.54018 ], [ 1.733994, 42.54989 ], [ 1.73996, 42.5862 ], [ 1.726074, 42.5869 ], [ 1.7051, 42.61127 ], [ 1.596991, 42.62443 ], [ 1.537782, 42.64797 ], [ 1.482483, 42.64068 ], [ 1.48028, 42.60966 ], [ 1.458178, 42.59845 ], [ 1.436179, 42.59784 ], [ 1.333942, 42.71582 ], [ 1.278561, 42.71122 ], [ 1.15799, 42.70307 ], [ 1.063964, 42.77432 ], [ 0.941806, 42.78718 ], [ 0.929862, 42.78272 ], [ 0.851898, 42.82326 ], [ 0.685407, 42.8488 ], [ 0.664481, 42.75647 ], [ 0.68917, 42.71239 ], [ 0.681699, 42.68734 ], [ 0.413077, 42.68797 ], [ 0.355418, 42.71399 ], [ 0.305323, 42.66539 ], [ 0.192003, 42.72941 ], [ 0.009936, 42.67894 ], [ -0.064511, 42.69136 ], [ -0.110437, 42.71887 ], [ -0.204079, 42.7902 ], [ -0.342241, 42.83365 ], [ -0.381432, 42.79723 ], [ -0.44148, 42.79259 ], [ -0.506315, 42.81662 ], [ -0.537093, 42.77334 ], [ -0.56961, 42.7792 ], [ -0.686815, 42.87147 ], [ -0.73235, 42.88842 ], [ -0.756054, 42.96415 ], [ -0.809467, 42.94895 ], [ -0.951265, 42.94996 ], [ -1.120291, 43.01295 ], [ -1.139513, 43.00476 ], [ -1.227202, 43.05215 ], [ -1.250002, 43.03704 ], [ -1.314324, 43.06835 ], [ -1.296915, 43.11313 ], [ -1.328943, 43.10377 ], [ -1.346643, 43.02447 ], [ -1.447267, 43.0455 ], [ -1.479677, 43.08436 ], [ -1.415645, 43.15543 ], [ -1.388447, 43.24896 ], [ -1.547573, 43.28599 ], [ -1.571828, 43.24545 ], [ -1.617394, 43.24945 ], [ -1.634897, 43.28298 ], [ -1.633187, 43.30369 ], [ -1.692238, 43.30744 ], [ -1.731377, 43.28945 ], [ -1.74511, 43.31444 ], [ -1.751805, 43.32992 ], [ -1.774807, 43.34128 ], [ -1.79163, 43.35299 ], [ -1.782704, 43.363 ], [ -1.791115, 43.36756 ], [ -1.792231, 43.37667 ], [ -1.777023, 43.39261 ], [ -6.937207, 48.50183 ], [ -2.790533, 49.40025 ], [ -2.02149, 48.95137 ], [ -1.873172, 49.26781 ], [ -2.191778, 49.4717 ], [ -2.062684, 49.95917 ], [ 1.263308, 50.92504 ], [ 2.338938, 51.4288 ], [ 2.395695545584987, 51.33781754963362 ], [ 3.01078, 51.59839 ], [ 3.330574, 51.43561 ], [ 3.389281, 51.33628 ], [ 3.359222, 51.31491 ], [ 3.378897, 51.30251 ], [ 3.38548, 51.27571 ], [ 3.422413, 51.25826 ], [ 3.43091, 51.24784 ], [ 3.450306, 51.24219 ], [ 3.527004, 51.24651 ], [ 3.514331, 51.28799 ], [ 3.58991, 51.30625 ], [ 3.658204, 51.29056 ], [ 3.752689, 51.27067 ], [ 3.798008, 51.25961 ], [ 3.790026, 51.24572 ], [ 3.788738, 51.22708 ], [ 3.790798, 51.21516 ], [ 3.860321, 51.21339 ], [ 3.888903, 51.22355 ], [ 3.894224, 51.21871 ], [ 3.88607, 51.20086 ], [ 3.926465, 51.22083 ], [ 3.950872, 51.21823 ], [ 4.015511, 51.24825 ], [ 4.055103, 51.24402 ], [ 4.165098, 51.2938 ], [ 4.228344, 51.34384 ], [ 4.216947, 51.37435 ], [ 4.300826, 51.37708 ], [ 4.334836, 51.37783 ], [ 4.340844, 51.36029 ], [ 4.386377, 51.35517 ], [ 4.397964, 51.35688 ], [ 4.424572, 51.36642 ], [ 4.423087, 51.37577 ], [ 4.381465, 51.41805 ], [ 4.395776, 51.44243 ], [ 4.378352, 51.44647 ], [ 4.382343, 51.45165 ], [ 4.476499, 51.4786 ], [ 4.538641, 51.48272 ], [ 4.548855, 51.47336 ], [ 4.530659, 51.44951 ], [ 4.535808, 51.42367 ], [ 4.574346, 51.43352 ], [ 4.639578, 51.42485 ], [ 4.651422, 51.42726 ], [ 4.668846, 51.42677 ], [ 4.665842, 51.44454 ], [ 4.691677, 51.45358 ], [ 4.702578, 51.46727 ], [ 4.728842, 51.48438 ], [ 4.745407, 51.48956 ], [ 4.749452, 51.49905 ], [ 4.758274, 51.50302 ], [ 4.776604, 51.50625 ], [ 4.816658, 51.49552 ], [ 4.82318, 51.48441 ], [ 4.84355, 51.48177 ], [ 4.845286, 51.45817 ], [ 4.83716, 51.44759 ], [ 4.82521, 51.44674 ], [ 4.831035, 51.42488 ], [ 4.876385, 51.41762 ], [ 4.929085, 51.457 ], [ 4.957668, 51.4548 ], [ 4.941342, 51.42928 ], [ 4.937752, 51.40655 ], [ 4.960068, 51.42194 ], [ 4.999545, 51.44324 ], [ 5.008156, 51.47134 ], [ 5.029678, 51.48839 ], [ 5.04093, 51.4876 ], [ 5.047218, 51.47217 ], [ 5.080323, 51.47226 ], [ 5.106434, 51.43135 ], [ 5.072699, 51.39365 ], [ 5.116623, 51.36118 ], [ 5.132251, 51.3472 ], [ 5.135807, 51.31594 ], [ 5.155917, 51.31278 ], [ 5.200394, 51.32325 ], [ 5.243256, 51.3057 ], [ 5.227423, 51.26844 ], [ 5.237997, 51.26255 ], [ 5.262161, 51.26778 ], [ 5.334999, 51.26474 ], [ 5.344928, 51.27681 ], [ 5.415511, 51.2639 ], [ 5.440655, 51.28246 ], [ 5.482146, 51.30064 ], [ 5.516281, 51.29599 ], [ 5.558165, 51.26613 ], [ 5.562835, 51.22287 ], [ 5.652534, 51.19899 ], [ 5.661306, 51.18704 ], [ 5.710316, 51.18623 ], [ 5.746193, 51.19086 ], [ 5.78001, 51.18031 ], [ 5.78104, 51.15825 ], [ 5.825937, 51.16827 ], [ 5.857091, 51.14477 ], [ 5.84168, 51.13078 ], [ 5.81435, 51.11524 ], [ 5.835548, 51.10842 ], [ 5.833797, 51.09577 ], [ 5.822909, 51.09124 ], [ 5.811902, 51.0943 ], [ 5.798156, 51.09023 ], [ 5.806117, 51.07955 ], [ 5.800309, 51.05826 ], [ 5.777309, 51.05804 ], [ 5.760274, 51.03223 ], [ 5.773833, 51.02859 ], [ 5.778288, 51.02399 ], [ 5.767586, 51.00526 ], [ 5.768464, 50.9985 ], [ 5.751171, 50.98253 ], [ 5.721741, 50.96128 ], [ 5.73469, 50.95683 ], [ 5.742597, 50.96113 ], [ 5.74604, 50.96209 ], [ 5.75542, 50.95986 ], [ 5.760698, 50.95259 ], [ 5.732234, 50.9221 ], [ 5.724907, 50.90823 ], [ 5.702848, 50.90563 ], [ 5.697355, 50.89805 ], [ 5.680514, 50.88068 ], [ 5.64516, 50.86533 ], [ 5.643369, 50.84974 ], [ 5.640493, 50.84701 ], [ 5.645764, 50.83961 ], [ 5.644913, 50.83768 ], [ 5.650921, 50.83432 ], [ 5.655682, 50.82591 ], [ 5.702959, 50.80821 ], [ 5.702588, 50.78396 ], [ 5.692037, 50.75629 ], [ 5.721802, 50.76538 ], [ 5.737618, 50.75842 ], [ 5.739122, 50.76522 ], [ 5.764757, 50.7837 ], [ 5.777479, 50.78344 ], [ 5.792696, 50.77138 ], [ 5.80759, 50.75681 ], [ 5.845249, 50.76609 ], [ 5.849009, 50.75975 ], [ 5.886669, 50.77108 ], [ 5.896888, 50.75501 ], [ 5.958963, 50.76308 ], [ 6.020014, 50.75521 ], [ 6.042083, 50.74557 ], [ 6.039528, 50.7295 ], [ 6.116234, 50.72364 ], [ 6.149104, 50.68465 ], [ 6.16312, 50.67169 ], [ 6.166184, 50.66242 ], [ 6.194916, 50.66546 ], [ 6.197576, 50.65787 ], [ 6.187105, 50.65118 ], [ 6.184359, 50.64481 ], [ 6.185796, 50.6414 ], [ 6.191676, 50.64003 ], [ 6.197684, 50.6415 ], [ 6.202426, 50.63977 ], [ 6.223154, 50.64143 ], [ 6.227102, 50.65096 ], [ 6.266499, 50.64285 ], [ 6.273751, 50.63182 ], [ 6.275189, 50.62922 ], [ 6.270018, 50.62537 ], [ 6.270533, 50.61914 ], [ 6.244869, 50.59016 ], [ 6.236737, 50.56567 ], [ 6.225772, 50.55462 ], [ 6.198564, 50.53644 ], [ 6.224098, 50.50142 ], [ 6.288643, 50.50851 ], [ 6.352672, 50.4893 ], [ 6.342716, 50.46308 ], [ 6.374988, 50.45543 ], [ 6.379623, 50.43991 ], [ 6.374255, 50.40746 ], [ 6.3482, 50.38086 ], [ 6.363745, 50.37076 ], [ 6.371298, 50.36003 ], [ 6.382885, 50.35576 ], [ 6.400738, 50.34606 ], [ 6.410265, 50.33593 ], [ 6.407385, 50.32272 ], [ 6.385116, 50.31949 ], [ 6.363487, 50.30332 ], [ 6.330325, 50.31816 ], [ 6.312675, 50.31872 ], [ 6.294222, 50.27744 ], [ 6.280231, 50.26575 ], [ 6.23555, 50.2601 ], [ 6.209593, 50.24956 ], [ 6.201696, 50.23853 ], [ 6.193628, 50.23535 ], [ 6.186333, 50.23634 ], [ 6.17569, 50.22041 ], [ 6.190538, 50.20531 ], [ 6.194229, 50.18146 ], [ 6.185388, 50.17706 ], [ 6.160583, 50.17102 ], [ 6.144104, 50.16832 ], [ 6.148996, 50.16156 ], [ 6.145563, 50.15639 ], [ 6.154661, 50.15034 ], [ 6.156721, 50.13995 ], [ 6.138353, 50.12867 ], [ 6.130457, 50.12872 ], [ 6.110102, 50.1359 ], [ 6.113119, 50.15573 ], [ 6.117926, 50.16293 ], [ 6.085719, 50.17104 ], [ 6.081791, 50.17041 ], [ 6.082306, 50.16211 ], [ 6.079988, 50.15595 ], [ 6.063766, 50.15199 ], [ 6.044025, 50.15634 ], [ 6.027031, 50.16425 ], [ 6.023941, 50.18124 ], [ 6.002998, 50.17497 ], [ 5.96652, 50.17173 ], [ 5.968838, 50.15469 ], [ 5.962231, 50.13077 ], [ 5.8988, 50.11199 ], [ 5.896912, 50.10164 ], [ 5.887206, 50.07697 ], [ 5.861339, 50.06743 ], [ 5.872879, 50.04562 ], [ 5.862064, 50.02875 ], [ 5.856886, 50.02329 ], [ 5.823526, 50.01066 ], [ 5.825243, 49.99985 ], [ 5.841542, 49.98969 ], [ 5.839001, 49.97858 ], [ 5.807457, 49.96171 ], [ 5.788675, 49.95976 ], [ 5.764791, 49.91506 ], [ 5.738983, 49.89767 ], [ 5.776663, 49.88656 ], [ 5.784988, 49.87937 ], [ 5.785932, 49.87168 ], [ 5.775633, 49.86615 ], [ 5.764046, 49.86648 ], [ 5.760269, 49.84651 ], [ 5.744219, 49.83472 ], [ 5.751512, 49.81985 ], [ 5.754734, 49.79514 ], [ 5.7909, 49.79765 ], [ 5.811767, 49.7673 ], [ 5.835444, 49.74713 ], [ 5.827023, 49.72616 ], [ 5.86996, 49.72777 ], [ 5.888166, 49.70952 ], [ 5.863722, 49.68213 ], [ 5.902748, 49.66854 ], [ 5.909314, 49.66593 ], [ 5.911589, 49.66268 ], [ 5.904336, 49.65129 ], [ 5.908763, 49.63876 ], [ 5.898757, 49.63331 ], [ 5.891168, 49.63469 ], [ 5.877771, 49.60771 ], [ 5.84979, 49.59575 ], [ 5.87142, 49.59057 ], [ 5.874939, 49.5839 ], [ 5.873737, 49.57382 ], [ 5.842757, 49.553 ], [ 5.82546297477225, 49.548063755519507 ], [ 5.838375, 49.54381 ], [ 5.867901, 49.50504 ], [ 5.941887, 49.50169 ], [ 5.973558, 49.4923 ], [ 5.976176, 49.47978 ], [ 5.977464, 49.46416 ], [ 5.989265, 49.46394 ], [ 5.988972, 49.45838 ], [ 6.043339, 49.45518 ], [ 6.055183, 49.46723 ], [ 6.09621, 49.46628 ], [ 6.101789, 49.47248 ], [ 6.119814, 49.4756 ], [ 6.126766, 49.49444 ], [ 6.168823, 49.51145 ], [ 6.242466, 49.51585 ], [ 6.26976, 49.50565 ], [ 6.280489, 49.50381 ], [ 6.282334, 49.50074 ], [ 6.28963, 49.49458 ], [ 6.30023, 49.48853 ], [ 6.353059, 49.46768 ], [ 6.364946, 49.46087 ], [ 6.367092, 49.47069 ], [ 6.39121, 49.466 ], [ 6.420994, 49.47794 ], [ 6.430521, 49.47761 ], [ 6.455069, 49.46595 ], [ 6.466141, 49.46818 ], [ 6.486826, 49.45395 ], [ 6.499958, 49.45133 ], [ 6.538238, 49.43654 ], [ 6.562271, 49.41957 ], [ 6.540213, 49.41136 ], [ 6.552915, 49.40025 ], [ 6.565189, 49.39109 ], [ 6.58184, 49.39249 ], [ 6.589565, 49.38416 ], [ 6.587505, 49.37729 ], [ 6.604156, 49.36717 ], [ 6.590595, 49.34923 ], [ 6.573257, 49.34386 ], [ 6.592398, 49.33704 ], [ 6.596861, 49.32982 ], [ 6.591625, 49.32205 ], [ 6.6257, 49.30408 ], [ 6.651449, 49.28925 ], [ 6.671533, 49.28102 ], [ 6.669989, 49.26988 ], [ 6.666298, 49.2645 ], [ 6.694021, 49.24865 ], [ 6.6893, 49.24366 ], [ 6.695652, 49.21709 ], [ 6.720886, 49.22365 ], [ 6.734762, 49.20596 ], [ 6.713848, 49.18799 ], [ 6.724834, 49.17564 ], [ 6.73994, 49.167 ], [ 6.782341, 49.17037 ], [ 6.835384, 49.15398 ], [ 6.844997, 49.15712 ], [ 6.843195, 49.16335 ], [ 6.843023, 49.17323 ], [ 6.859252, 49.17885 ], [ 6.856842, 49.1849 ], [ 6.848688, 49.19309 ], [ 6.847143, 49.20218 ], [ 6.833668, 49.21266 ], [ 6.856204, 49.22345 ], [ 6.939411, 49.22399 ], [ 6.958809, 49.20526 ], [ 6.973743, 49.21143 ], [ 7.014341, 49.19477 ], [ 7.037086, 49.19225 ], [ 7.035284, 49.1803 ], [ 7.029447, 49.17205 ], [ 7.034855, 49.16431 ], [ 7.048931, 49.13719 ], [ 7.045841, 49.1218 ], [ 7.048588, 49.11624 ], [ 7.055712, 49.11326 ], [ 7.065668, 49.11557 ], [ 7.06747, 49.1222 ], [ 7.082062, 49.13175 ], [ 7.078714, 49.14854 ], [ 7.081032, 49.15381 ], [ 7.101116, 49.15684 ], [ 7.107639, 49.15606 ], [ 7.113819, 49.1528 ], [ 7.128067, 49.14314 ], [ 7.137337, 49.12933 ], [ 7.166519, 49.13051 ], [ 7.18317, 49.13231 ], [ 7.206087, 49.12534 ], [ 7.245312, 49.13124 ], [ 7.300157, 49.12355 ], [ 7.312603, 49.13893 ], [ 7.329855, 49.14663 ], [ 7.359896, 49.14522 ], [ 7.360496, 49.17323 ], [ 7.447786, 49.18653 ], [ 7.448387, 49.1835 ], [ 7.439632, 49.17783 ], [ 7.4471, 49.17048 ], [ 7.496624, 49.17082 ], [ 7.510271, 49.15297 ], [ 7.497911, 49.13759 ], [ 7.507439, 49.12529 ], [ 7.518511, 49.12332 ], [ 7.533102, 49.09882 ], [ 7.603397, 49.08466 ], [ 7.629604, 49.07796 ], [ 7.641334, 49.05576 ], [ 7.696609, 49.05992 ], [ 7.762356, 49.05452 ], [ 7.794199, 49.06746 ], [ 7.812567, 49.06189 ], [ 7.863636, 49.03967 ], [ 7.88784, 49.05058 ], [ 7.933797, 49.05955 ], [ 7.946634, 49.05604 ], [ 7.95114, 49.04769 ], [ 7.967405, 49.04338 ], [ 7.979164, 49.02982 ], [ 7.999206, 49.02937 ], [ 8.049717, 49.01536 ], [ 8.064694, 49.00635 ], [ 8.071046, 48.99776 ], [ 8.12366, 48.98712 ], [ 8.135805, 48.98154 ], [ 8.138165, 48.97993 ], [ 8.169966, 48.97968 ], [ 8.184986, 48.97879 ], [ 8.196405, 48.97762 ], [ 8.226226, 48.97706 ], [ 8.235465, 48.96555 ], [ 8.195738, 48.94824 ], [ 8.137092, 48.88063 ], [ 8.124046, 48.81851 ], [ 8.074952, 48.7889 ], [ 8.017317, 48.75802 ], [ 7.977616, 48.73705 ], [ 7.966976, 48.71237 ], [ 7.907307, 48.6582 ], [ 7.860343, 48.64026 ], [ 7.805786, 48.57558 ], [ 7.813511, 48.52479 ], [ 7.808018, 48.50762 ], [ 7.783813, 48.48601 ], [ 7.780554, 48.47652 ], [ 7.746219, 48.38795 ], [ 7.752914, 48.32179 ], [ 7.730419, 48.30298 ], [ 7.699444, 48.23911 ], [ 7.609234, 48.15406 ], [ 7.602402, 48.13405 ], [ 7.581696, 48.11462 ], [ 7.595516, 48.09649 ], [ 7.575647, 48.03242 ], [ 7.616648, 47.99853 ], [ 7.628959, 47.97058 ], [ 7.584643, 47.89773 ], [ 7.567523, 47.84391 ], [ 7.533792, 47.77697 ], [ 7.55191, 47.74231 ], [ 7.554834, 47.72587 ], [ 7.522382, 47.70202 ], [ 7.522266, 47.67038 ], [ 7.568069, 47.63648 ], [ 7.599707, 47.60269 ], [ 7.594291892345152, 47.59087660539759 ], [ 7.606011, 47.58756 ], [ 7.608103, 47.58101 ], [ 7.619034, 47.58006 ], [ 7.645154, 47.59991 ], [ 7.67322, 47.59499 ], [ 7.682228, 47.60141 ], [ 7.69642, 47.60188 ], [ 7.676445, 47.58697 ], [ 7.692257, 47.57247 ], [ 7.6876, 47.56321 ], [ 7.680727, 47.56702 ], [ 7.678301, 47.56088 ], [ 7.644473, 47.55798 ], [ 7.652004, 47.54999 ], [ 7.663277, 47.5471 ], [ 7.669405, 47.53845 ], [ 7.682803, 47.53563 ], [ 7.787527, 47.55747 ], [ 7.808246, 47.57071 ], [ 7.814569, 47.58656 ], [ 7.82247, 47.59099 ], [ 7.841144, 47.58511 ], [ 7.868143, 47.59166 ], [ 7.893106, 47.59021 ], [ 7.913181, 47.57267 ], [ 7.910239, 47.56019 ], [ 7.913579, 47.5532 ], [ 7.944479, 47.54678 ], [ 7.950228, 47.55666 ], [ 7.959477, 47.56133 ], [ 8.000778, 47.5594 ], [ 8.020791, 47.55341 ], [ 8.067327, 47.56755 ], [ 8.088844, 47.56059 ], [ 8.097, 47.56457 ], [ 8.100325, 47.57746 ], [ 8.107862, 47.5849 ], [ 8.134885, 47.58656 ], [ 8.136336, 47.59292 ], [ 8.148009, 47.59824 ], [ 8.163824, 47.59707 ], [ 8.183367, 47.60758 ], [ 8.195591, 47.62129 ], [ 8.205614, 47.62399 ], [ 8.221653, 47.61973 ], [ 8.226951, 47.60802 ], [ 8.236711, 47.61548 ], [ 8.256675, 47.61831 ], [ 8.265254, 47.6124 ], [ 8.292972, 47.61181 ], [ 8.300381, 47.60662 ], [ 8.300212, 47.59099 ], [ 8.330303, 47.57383 ], [ 8.383185, 47.56834 ], [ 8.397391, 47.58003 ], [ 8.429895, 47.56986 ], [ 8.463733, 47.57496 ], [ 8.489591, 47.5827 ], [ 8.465493, 47.58146 ], [ 8.457894, 47.58725 ], [ 8.454357, 47.60406 ], [ 8.465361, 47.60577 ], [ 8.478085, 47.61789 ], [ 8.504915, 47.62032 ], [ 8.514705, 47.6365 ], [ 8.559196, 47.62702 ], [ 8.577223, 47.61306 ], [ 8.565886, 47.60078 ], [ 8.580761, 47.5992 ], [ 8.601976, 47.6144 ], [ 8.594148, 47.62936 ], [ 8.593545, 47.64513 ], [ 8.607825, 47.65539 ], [ 8.616219, 47.64926 ], [ 8.614782, 47.64055 ], [ 8.6259, 47.651 ], [ 8.60713, 47.66082 ], [ 8.603, 47.66951 ], [ 8.577565, 47.65853 ], [ 8.560561, 47.66734 ], [ 8.542707, 47.66247 ], [ 8.542879, 47.65418 ], [ 8.53296, 47.65674 ], [ 8.537651, 47.64941 ], [ 8.53223, 47.64273 ], [ 8.502519, 47.64431 ], [ 8.494093, 47.63904 ], [ 8.479966, 47.64277 ], [ 8.479778, 47.63741 ], [ 8.471397, 47.63557 ], [ 8.463946, 47.64084 ], [ 8.461767, 47.65134 ], [ 8.444808, 47.65088 ], [ 8.422649, 47.66378 ], [ 8.410209, 47.66423 ], [ 8.402874, 47.67545 ], [ 8.416313, 47.68483 ], [ 8.402089, 47.69658 ], [ 8.405663, 47.70385 ], [ 8.415339, 47.71261 ], [ 8.451649, 47.72566 ], [ 8.446894, 47.7384 ], [ 8.454332, 47.75095 ], [ 8.48755, 47.77598 ], [ 8.495249, 47.77381 ], [ 8.510394, 47.77911 ], [ 8.518954, 47.7747 ], [ 8.525074, 47.7808 ], [ 8.552392, 47.78744 ], [ 8.56591, 47.78131 ], [ 8.573011, 47.78322 ], [ 8.558858, 47.79185 ], [ 8.560621, 47.80601 ], [ 8.567121, 47.81126 ], [ 8.5782, 47.80297 ], [ 8.601162, 47.8058 ], [ 8.620555, 47.80042 ], [ 8.624955, 47.79426 ], [ 8.618013, 47.78427 ], [ 8.625764, 47.77843 ], [ 8.622474, 47.76904 ], [ 8.630785, 47.76156 ], [ 8.64576, 47.77193 ], [ 8.643778, 47.79474 ], [ 8.647696, 47.80113 ], [ 8.656287, 47.80343 ], [ 8.668912, 47.79046 ], [ 8.683488, 47.78827 ], [ 8.691276, 47.77443 ], [ 8.687982, 47.76943 ], [ 8.693044, 47.75946 ], [ 8.714367, 47.76834 ], [ 8.728896, 47.76504 ], [ 8.743734, 47.75346 ], [ 8.741151, 47.74401 ], [ 8.724533, 47.74231 ], [ 8.715409, 47.73273 ], [ 8.719476, 47.72447 ], [ 8.73904, 47.71748 ], [ 8.729687, 47.69584 ], [ 8.756724, 47.69266 ], [ 8.789409, 47.67835 ], [ 8.797828, 47.69402 ], [ 8.795525, 47.69954 ], [ 8.767599, 47.70423 ], [ 8.766891, 47.7189 ], [ 8.78367, 47.73016 ], [ 8.794664, 47.73111 ], [ 8.794615, 47.73693 ], [ 8.806812, 47.74141 ], [ 8.81485, 47.73157 ], [ 8.813509, 47.72668 ], [ 8.828524, 47.71962 ], [ 8.826649, 47.71449 ], [ 8.833917, 47.71751 ], [ 8.847201, 47.7136 ], [ 8.849737, 47.70693 ], [ 8.874967, 47.70606 ], [ 8.876641, 47.69262 ], [ 8.860249, 47.69134 ], [ 8.855085, 47.68385 ], [ 8.868667, 47.67898 ], [ 8.876461, 47.67105 ], [ 8.878493, 47.65755 ], [ 8.89318, 47.65173 ], [ 8.937964, 47.65899 ], [ 9.004153, 47.68538 ], [ 9.042228, 47.69188 ], [ 9.06643, 47.68411 ], [ 9.103928, 47.67986 ], [ 9.138474, 47.66749 ], [ 9.154223, 47.67086 ], [ 9.171585, 47.65832 ], [ 9.26225, 47.66597 ], [ 9.568245, 47.54237 ], [ 9.567980290072637, 47.538237854576266 ], [ 9.733247, 47.53553 ], [ 9.734075, 47.54719 ], [ 9.740522, 47.55778 ], [ 9.747315, 47.57102 ], [ 9.761369, 47.58736 ], [ 9.775602, 47.59688 ], [ 9.788018, 47.59533 ], [ 9.806501, 47.59848 ], [ 9.827778, 47.58678 ], [ 9.828852, 47.57692 ], [ 9.828637, 47.56039 ], [ 9.823188, 47.5504 ], [ 9.852278, 47.54241 ], [ 9.871835, 47.5324 ], [ 9.874199, 47.54415 ], [ 9.879787, 47.54966 ], [ 9.906651, 47.54603 ], [ 9.92191, 47.53356 ], [ 9.969675, 47.5492 ], [ 10.00798, 47.48769 ], [ 10.04269, 47.49132 ], [ 10.09487, 47.46272 ], [ 10.11286, 47.42786 ], [ 10.08323, 47.40833 ], [ 10.09866, 47.37182 ], [ 10.17924, 47.39571 ], [ 10.22584, 47.39201 ], [ 10.24739, 47.38713 ], [ 10.20708, 47.27987 ], [ 10.33014, 47.31402 ], [ 10.41269, 47.39916 ], [ 10.46696, 47.43529 ], [ 10.4619, 47.47773 ], [ 10.44007, 47.48312 ], [ 10.42832, 47.5024 ], [ 10.45098, 47.55427 ], [ 10.43042, 47.56758 ], [ 10.42781, 47.57908 ], [ 10.43387, 47.5853 ], [ 10.47398, 47.58865 ], [ 10.48562, 47.58565 ], [ 10.47616, 47.5693 ], [ 10.45848, 47.55557 ], [ 10.56881, 47.53863 ], [ 10.57848, 47.55658 ], [ 10.59567, 47.57126 ], [ 10.69507, 47.55821 ], [ 10.7934, 47.52393 ], [ 10.85277, 47.53572 ], [ 10.89233, 47.53786 ], [ 10.92111, 47.51998 ], [ 10.92153, 47.51119 ], [ 10.87536, 47.48709 ], [ 10.91397, 47.49077 ], [ 10.94126, 47.48226 ], [ 10.9379, 47.46921 ], [ 10.99183, 47.42552 ], [ 10.9754, 47.40061 ], [ 11.10775, 47.40086 ], [ 11.11877, 47.41293 ], [ 11.2043, 47.43636 ], [ 11.25152, 47.43601 ], [ 11.26071, 47.43081 ], [ 11.23473, 47.40335 ], [ 11.27503, 47.40022 ], [ 11.28848, 47.42908 ], [ 11.33281, 47.4502 ], [ 11.40736, 47.45225 ], [ 11.37881, 47.47245 ], [ 11.40568, 47.49878 ], [ 11.44462, 47.52157 ], [ 11.53158, 47.5124 ], [ 11.57358, 47.52168 ], [ 11.58029, 47.55048 ], [ 11.60514, 47.58288 ], [ 11.63478, 47.59578 ], [ 11.8439, 47.59035 ], [ 11.85498, 47.60462 ], [ 11.91106, 47.61458 ], [ 12.00811, 47.62635 ], [ 12.02423, 47.6182 ], [ 12.06318, 47.62046 ], [ 12.13068, 47.60915 ], [ 12.18062, 47.61739 ], [ 12.18371, 47.60597 ], [ 12.20403, 47.60835 ], [ 12.20249, 47.62557 ], [ 12.18809, 47.65337 ], [ 12.16617, 47.68102 ], [ 12.15913, 47.70162 ], [ 12.25269, 47.74609 ], [ 12.27644, 47.74362 ], [ 12.25773, 47.69616 ], [ 12.44206, 47.70194 ], [ 12.51121, 47.6268 ], [ 12.62362, 47.68957 ], [ 12.78759, 47.68198 ], [ 12.83877, 47.6183 ], [ 12.82647, 47.55859 ], [ 13.00502, 47.48139 ], [ 13.03279, 47.55524 ], [ 13.03136, 47.58101 ], [ 13.08234, 47.63644 ], [ 13.06733, 47.68431 ], [ 13.03764, 47.70612 ], [ 12.99187, 47.70445 ], [ 12.92438, 47.70807 ], [ 12.901, 47.72516 ], [ 12.91707, 47.7445 ], [ 12.93233, 47.75013 ], [ 12.94136, 47.76415 ], [ 12.9405, 47.76935 ], [ 12.92481, 47.76906 ], [ 12.9362, 47.78495 ], [ 12.96049, 47.79924 ], [ 12.98176, 47.8271 ], [ 13.0023, 47.84879 ], [ 12.96608, 47.89415 ], [ 12.93078, 47.93129 ], [ 12.87254, 47.9594 ], [ 12.84473, 48.01138 ], [ 12.75554, 48.07242 ], [ 12.74356, 48.0972 ], [ 12.74938, 48.12599 ], [ 12.82794, 48.16035 ], [ 12.8652, 48.20303 ], [ 12.9523, 48.21282 ], [ 13.01211, 48.2586 ], [ 13.07298, 48.27816 ], [ 13.17529, 48.29771 ], [ 13.27341, 48.30225 ], [ 13.33952, 48.33784 ], [ 13.41322, 48.39928 ], [ 13.43693, 48.43378 ], [ 13.4251, 48.45659 ], [ 13.43527, 48.47611 ], [ 13.45398, 48.5112 ], [ 13.44325, 48.52296 ], [ 13.44009, 48.54407 ], [ 13.43569, 48.55155 ], [ 13.43651, 48.55811 ], [ 13.45109, 48.56503 ], [ 13.46416, 48.55574 ], [ 13.47214, 48.55729 ], [ 13.47269, 48.56284 ], [ 13.47888, 48.56575 ], [ 13.4874, 48.56412 ], [ 13.48988, 48.56976 ], [ 13.50542, 48.57604 ], [ 13.4991, 48.58359 ], [ 13.51053, 48.59392 ], [ 13.52759, 48.58871 ], [ 13.57561, 48.56161 ], [ 13.58535, 48.57094 ], [ 13.60348, 48.57072 ], [ 13.62631, 48.5565 ], [ 13.65049, 48.55138 ], [ 13.72544, 48.51595 ], [ 13.73176, 48.52604 ], [ 13.74552, 48.53382 ], [ 13.74116, 48.54183 ], [ 13.74385, 48.55583 ], [ 13.75761, 48.56828 ], [ 13.7697, 48.55827 ], [ 13.79933, 48.57673 ], [ 13.79791, 48.59782 ], [ 13.8194, 48.6218 ], [ 13.81, 48.64954 ], [ 13.81403, 48.67327 ], [ 13.79246, 48.71483 ], [ 13.8147, 48.73577 ], [ 13.81772, 48.75569 ], [ 13.83754, 48.77495 ], [ 13.86474, 48.77473 ], [ 13.89081, 48.7612 ], [ 14.00913, 48.70763 ], [ 14.06286, 48.67505 ], [ 14.05969, 48.65359 ], [ 14.01788, 48.63921 ], [ 14.05749, 48.62535 ], [ 14.11155, 48.59316 ], [ 14.12834, 48.60049 ], [ 14.19248, 48.59471 ], [ 14.2724, 48.58272 ], [ 14.32815, 48.56516 ], [ 14.33285, 48.55472 ], [ 14.35626, 48.57654 ], [ 14.3902, 48.57679 ], [ 14.38147, 48.59588 ], [ 14.42922, 48.59427 ], [ 14.44911, 48.62737 ], [ 14.43659, 48.64515 ], [ 14.4697, 48.65237 ], [ 14.56203, 48.61427 ], [ 14.6104, 48.63486 ], [ 14.69151, 48.58724 ], [ 14.70828, 48.651 ], [ 14.72246, 48.69528 ], [ 14.75577, 48.71117 ], [ 14.79295, 48.73173 ], [ 14.80595, 48.78141 ], [ 14.83099, 48.78769 ], [ 14.87763, 48.78344 ], [ 14.9565, 48.76347 ], [ 14.97563, 48.77254 ], [ 14.97477, 48.77976 ], [ 14.94724, 48.79161 ], [ 14.96848, 48.84614 ], [ 14.97335, 48.96965 ], [ 14.99015, 49.02403 ], [ 15.05992, 49.01914 ], [ 15.16145, 48.99495 ], [ 15.18257, 48.95889 ], [ 15.25275, 48.96449 ], [ 15.27767, 48.99806 ], [ 15.3708, 48.98343 ], [ 15.46918, 48.95501 ], [ 15.5774, 48.90072 ], [ 15.61741, 48.90201 ], [ 15.74858, 48.85715 ], [ 15.76957, 48.87743 ], [ 15.84434, 48.87959 ], [ 15.96303, 48.82584 ], [ 15.96205, 48.802 ], [ 16.0949, 48.75043 ], [ 16.34018, 48.74916 ], [ 16.39895, 48.74517 ], [ 16.45823, 48.81096 ], [ 16.51004, 48.80534 ], [ 16.54021, 48.81873 ], [ 16.61968, 48.7888 ], [ 16.66113, 48.78688 ], [ 16.73632, 48.74051 ], [ 16.77557, 48.71796 ], [ 16.91582, 48.72533 ], [ 16.94161, 48.62055 ], [ 16.94200582886165, 48.618817585168784 ], [ 16.96456, 48.64713 ], [ 16.96342, 48.67083 ], [ 16.99363, 48.69517 ], [ 16.99342, 48.71127 ], [ 17.00838, 48.7212 ], [ 17.04055, 48.76856 ], [ 17.08531, 48.78927 ], [ 17.08752, 48.80022 ], [ 17.10105, 48.8091 ], [ 17.10045, 48.82528 ], [ 17.10884, 48.83586 ], [ 17.15162, 48.84916 ], [ 17.20235, 48.88314 ], [ 17.27921, 48.86515 ], [ 17.30701, 48.84891 ], [ 17.32308, 48.8501 ], [ 17.36321, 48.81857 ], [ 17.3782, 48.82418 ], [ 17.39593, 48.81878 ], [ 17.45272, 48.85172 ], [ 17.47912, 48.84609 ], [ 17.50847, 48.82611 ], [ 17.52099, 48.83391 ], [ 17.52656, 48.81732 ], [ 17.54712, 48.82227 ], [ 17.54386, 48.82982 ], [ 17.55316, 48.83636 ], [ 17.58771, 48.83042 ], [ 17.59946, 48.84529 ], [ 17.61556, 48.84674 ], [ 17.63172, 48.85972 ], [ 17.70179, 48.86575 ], [ 17.77809, 48.91962 ], [ 17.77938, 48.92988 ], [ 17.88137, 48.93208 ], [ 17.90924, 48.99709 ], [ 17.90929, 49.01299 ], [ 17.92206, 49.02444 ], [ 17.99106, 49.03349 ], [ 18.02264, 49.02622 ], [ 18.06609, 49.04103 ], [ 18.08632, 49.06014 ], [ 18.08819, 49.07117 ], [ 18.11054, 49.09254 ], [ 18.10527, 49.11375 ], [ 18.11174, 49.12305 ], [ 18.1019, 49.13538 ], [ 18.12827, 49.16289 ], [ 18.12615, 49.19052 ], [ 18.14925, 49.22436 ], [ 18.13948, 49.22837 ], [ 18.14254, 49.25026 ], [ 18.17959, 49.27333 ], [ 18.18069, 49.29064 ], [ 18.29616, 49.30935 ], [ 18.37568, 49.33463 ], [ 18.40956, 49.36989 ], [ 18.40034, 49.40044 ], [ 18.44448, 49.3983 ], [ 18.47261, 49.41283 ], [ 18.48656, 49.43684 ], [ 18.53965, 49.46979 ], [ 18.53065, 49.49318 ], [ 18.56326, 49.51155 ], [ 18.5979, 49.51519 ], [ 18.60747, 49.50149 ], [ 18.61792, 49.50015 ], [ 18.67857, 49.51257 ], [ 18.74441, 49.49369 ], [ 18.81109, 49.52121 ], [ 18.94251, 49.52383 ], [ 18.97758, 49.50397 ], [ 18.96823, 49.48511 ], [ 18.9752, 49.47689 ], [ 18.96799, 49.45779 ], [ 18.99402, 49.43147 ], [ 18.98926, 49.41832 ], [ 18.97614, 49.41095 ], [ 18.98031, 49.40163 ], [ 19.03426, 49.40068 ], [ 19.051, 49.41921 ], [ 19.07231, 49.42295 ], [ 19.09358, 49.42051 ], [ 19.11002, 49.40895 ], [ 19.13742, 49.41495 ], [ 19.1521, 49.40872 ], [ 19.17486, 49.41869 ], [ 19.18917, 49.41561 ], [ 19.18129, 49.43702 ], [ 19.19649, 49.4527 ], [ 19.22106, 49.45739 ], [ 19.21549, 49.47394 ], [ 19.23094, 49.49885 ], [ 19.22876, 49.51258 ], [ 19.25824, 49.53557 ], [ 19.36044, 49.5408 ], [ 19.36863, 49.57163 ], [ 19.39806, 49.579 ], [ 19.40793, 49.59673 ], [ 19.43756, 49.60235 ], [ 19.44441, 49.61796 ], [ 19.46846, 49.6186 ], [ 19.48168, 49.59196 ], [ 19.53309, 49.57624 ], [ 19.53422, 49.5397 ], [ 19.57778, 49.46858 ], [ 19.61367, 49.45243 ], [ 19.64488, 49.46085 ], [ 19.64357, 49.44378 ], [ 19.65359, 49.43546 ], [ 19.64178, 49.41572 ], [ 19.7013, 49.40444 ], [ 19.72092, 49.39351 ], [ 19.74464, 49.41266 ], [ 19.79462, 49.41364 ], [ 19.79724, 49.3812 ], [ 19.80865, 49.36662 ], [ 19.80062, 49.34647 ], [ 19.80996, 49.32305 ], [ 19.79749, 49.30102 ], [ 19.81319, 49.29914 ], [ 19.82773, 49.27593 ], [ 19.79707, 49.2644 ], [ 19.76663, 49.21176 ], [ 19.78518, 49.20439 ], [ 19.8077, 49.21065 ], [ 19.84313, 49.19979 ], [ 19.86625, 49.20141 ], [ 19.89684, 49.21708 ], [ 19.90077, 49.23525 ], [ 19.93302, 49.24139 ], [ 19.98306, 49.23655 ], [ 20.01128, 49.22429 ], [ 20.02261, 49.20634 ], [ 20.07708, 49.18359 ], [ 20.08244, 49.20922 ], [ 20.09561, 49.22512 ], [ 20.09646, 49.25262 ], [ 20.12064, 49.27438 ], [ 20.12963, 49.30795 ], [ 20.14226, 49.32132 ], [ 20.15393, 49.32314 ], [ 20.16193, 49.31123 ], [ 20.16721, 49.33142 ], [ 20.22043, 49.35677 ], [ 20.23225, 49.35165 ], [ 20.29333, 49.35653 ], [ 20.31271, 49.3484 ], [ 20.32067, 49.36649 ], [ 20.31249, 49.3916 ], [ 20.32375, 49.40785 ], [ 20.3616, 49.40323 ], [ 20.37619, 49.41283 ], [ 20.39233, 49.39554 ], [ 20.42383, 49.40919 ], [ 20.43102, 49.42242 ], [ 20.47235, 49.42042 ], [ 20.50693, 49.40785 ], [ 20.51283, 49.39834 ], [ 20.57304, 49.38201 ], [ 20.59642, 49.39203 ], [ 20.61374, 49.4227 ], [ 20.64684, 49.40578 ], [ 20.69076, 49.42468 ], [ 20.72412, 49.42451 ], [ 20.7456, 49.41948 ], [ 20.74913, 49.40714 ], [ 20.76177, 49.40371 ], [ 20.75523, 49.39167 ], [ 20.76582, 49.38654 ], [ 20.76393, 49.37597 ], [ 20.7883, 49.37858 ], [ 20.79121, 49.3674 ], [ 20.81258, 49.36316 ], [ 20.82783, 49.33961 ], [ 20.86792, 49.35189 ], [ 20.88695, 49.32792 ], [ 20.90811, 49.32687 ], [ 20.91528, 49.31008 ], [ 20.92943, 49.30176 ], [ 20.96194, 49.31355 ], [ 20.98718, 49.31349 ], [ 20.98538, 49.33183 ], [ 21.04017, 49.36928 ], [ 21.09179, 49.37009 ], [ 21.0963, 49.37587 ], [ 21.05079, 49.40068 ], [ 21.04318, 49.42079 ], [ 21.0953, 49.4344 ], [ 21.11051, 49.42948 ], [ 21.12338, 49.44154 ], [ 21.154, 49.43164 ], [ 21.19082, 49.4063 ], [ 21.20602, 49.40841 ], [ 21.22119, 49.41947 ], [ 21.21901, 49.42792 ], [ 21.22968, 49.44049 ], [ 21.24027, 49.43992 ], [ 21.27732, 49.46594 ], [ 21.3074, 49.45346 ], [ 21.34597, 49.45526 ], [ 21.37525, 49.43792 ], [ 21.40208, 49.43862 ], [ 21.43429, 49.41759 ], [ 21.47256, 49.4187 ], [ 21.49205, 49.43445 ], [ 21.51355, 49.42432 ], [ 21.52897, 49.43991 ], [ 21.55028, 49.43823 ], [ 21.56429, 49.44625 ], [ 21.58968, 49.4388 ], [ 21.63125, 49.4523 ], [ 21.66159, 49.42137 ], [ 21.6817, 49.4159 ], [ 21.69995, 49.42348 ], [ 21.72446, 49.41645 ], [ 21.72996, 49.40361 ], [ 21.76716, 49.38675 ], [ 21.77969, 49.36088 ], [ 21.8008, 49.38667 ], [ 21.83841, 49.39667 ], [ 21.86019, 49.37381 ], [ 21.8776, 49.37815 ], [ 21.90422, 49.35722 ], [ 21.96431, 49.35296 ], [ 21.9875, 49.31387 ], [ 22.03858, 49.2806 ], [ 22.0383, 49.26477 ], [ 22.04685, 49.25773 ], [ 22.0402, 49.22584 ], [ 22.14568, 49.20515 ], [ 22.14835, 49.19609 ], [ 22.19133, 49.17935 ], [ 22.20988, 49.19042 ], [ 22.22442, 49.18906 ], [ 22.24009, 49.17456 ], [ 22.23196, 49.15893 ], [ 22.2831, 49.14717 ], [ 22.31817, 49.141 ], [ 22.33404, 49.15144 ], [ 22.36872, 49.15138 ], [ 22.42422, 49.10434 ], [ 22.45691, 49.10869 ], [ 22.4975, 49.09117 ], [ 22.53921, 49.09969 ], [ 22.57051, 49.08936 ], [ 22.56852, 49.0794 ], [ 22.55768, 49.07484 ], [ 22.55594, 49.02901 ], [ 22.54485, 49.01811 ], [ 22.54964, 49.00396 ], [ 22.52219, 48.99194 ], [ 22.48233, 48.98795 ], [ 22.47932, 48.97292 ], [ 22.43092, 48.92733 ], [ 22.43653, 48.91881 ], [ 22.42493, 48.88135 ], [ 22.38819, 48.86298 ], [ 22.38191, 48.8342 ], [ 22.39241, 48.79852 ], [ 22.37642, 48.77849 ], [ 22.35117, 48.76441 ], [ 22.34972, 48.75421 ], [ 22.36617, 48.74307 ], [ 22.36679, 48.72991 ], [ 22.34373, 48.68106 ], [ 22.31193, 48.67416 ], [ 22.25466, 48.64311 ], [ 22.24378, 48.62393 ], [ 22.19363, 48.60431 ], [ 22.17557, 48.58475 ], [ 22.1659, 48.56596 ], [ 22.14294, 48.43346 ], [ 22.14271, 48.41727 ], [ 22.14998141960038, 48.412500195380254 ], [ 22.15306, 48.41445 ], [ 22.16675, 48.41825 ], [ 22.19997, 48.4279 ], [ 22.21498, 48.42844 ], [ 22.26944, 48.41112 ], [ 22.3192, 48.35829 ], [ 22.37176, 48.26106 ], [ 22.40239, 48.2581 ], [ 22.47082, 48.25385 ], [ 22.48865, 48.25681 ], [ 22.50904, 48.25194 ], [ 22.52114, 48.24048 ], [ 22.57625, 48.19613 ], [ 22.58426, 48.16116 ], [ 22.77458, 48.12441 ], [ 22.80915, 48.12375 ], [ 22.82856, 48.11864 ], [ 22.86664, 48.07665 ], [ 22.88702, 48.05513 ], [ 22.89793, 47.96563 ], [ 22.90201, 47.94993 ], [ 22.86531, 47.91835 ], [ 22.85104, 47.90742 ], [ 22.84697, 47.90468 ], [ 22.83282, 47.9062 ], [ 22.81387, 47.89769 ], [ 22.794, 47.88918 ], [ 22.76218, 47.89069 ], [ 22.76269, 47.88587 ], [ 22.77354, 47.87747 ], [ 22.76853, 47.86689 ], [ 22.7788, 47.86543 ], [ 22.78328, 47.83862 ], [ 22.76977, 47.83725 ], [ 22.75117, 47.83023 ], [ 22.724, 47.83382 ], [ 22.68543, 47.78437 ], [ 22.60568, 47.76622 ], [ 22.53688, 47.76776 ], [ 22.48642, 47.80097 ], [ 22.45024, 47.79481 ], [ 22.43674, 47.7448 ], [ 22.43852, 47.73229 ], [ 22.33659, 47.74892 ], [ 22.18396, 47.5871 ], [ 22.12332, 47.5761 ], [ 22.10752, 47.56871 ], [ 22.10064, 47.55787 ], [ 22.09045, 47.55306 ], [ 22.07822, 47.55667 ], [ 22.06522, 47.54979 ], [ 22.08331, 47.53655 ], [ 22.0591, 47.5233 ], [ 22.0405, 47.45064 ], [ 22.03948, 47.4153 ], [ 22.02929, 47.38874 ], [ 22.01655, 47.3689 ], [ 21.94393, 47.36441 ], [ 21.86468, 47.22304 ], [ 21.86366, 47.1827 ], [ 21.82035, 47.16833 ], [ 21.79359, 47.10159 ], [ 21.75163, 47.09753 ], [ 21.67969, 47.04033 ], [ 21.66007, 47.03494 ], [ 21.66899, 47.02452 ], [ 21.68147, 47.02226 ], [ 21.6937, 47.00246 ], [ 21.67357, 46.97413 ], [ 21.68631, 46.96821 ], [ 21.67154, 46.94856 ], [ 21.66109, 46.95082 ], [ 21.61242, 46.9054 ], [ 21.62134, 46.88312 ], [ 21.60732, 46.86221 ], [ 21.52935, 46.8291 ], [ 21.52757, 46.81288 ], [ 21.52043, 46.78829 ], [ 21.49826, 46.77049 ], [ 21.50056, 46.75792 ], [ 21.53343, 46.74169 ], [ 21.53062, 46.71025 ], [ 21.49826, 46.68351 ], [ 21.46055, 46.65815 ], [ 21.41214, 46.61669 ], [ 21.3548, 46.62631 ], [ 21.3306, 46.62579 ], [ 21.31047, 46.59533 ], [ 21.32856, 46.58342 ], [ 21.30257, 46.47894 ], [ 21.32423, 46.45016 ], [ 21.29875, 46.40203 ], [ 21.27785, 46.39676 ], [ 21.20778, 46.34472 ], [ 21.18866, 46.29746 ], [ 21.10381, 46.25071 ], [ 21.06254, 46.23485 ], [ 21.02941, 46.24313 ], [ 21.01998, 46.2574 ], [ 20.96698, 46.256 ], [ 20.77791, 46.26921 ], [ 20.75905, 46.24965 ], [ 20.77129, 46.20223 ], [ 20.74275, 46.20206 ], [ 20.69866, 46.14206 ], [ 20.64159, 46.12193 ], [ 20.61738, 46.12529 ], [ 20.54061, 46.16907 ], [ 20.46118, 46.13853 ], [ 20.25444, 46.1093 ], [ 20.0652, 46.13659 ], [ 20.05297, 46.14224 ], [ 20.03233, 46.13853 ], [ 20.01806, 46.16713 ], [ 20.0094, 46.17207 ], [ 19.92658, 46.16571 ], [ 19.85473, 46.14347 ], [ 19.81676, 46.12405 ], [ 19.76274, 46.14135 ], [ 19.69649, 46.18318 ], [ 19.68146, 46.17401 ], [ 19.6626, 46.18371 ], [ 19.62998, 46.16271 ], [ 19.5701, 46.17489 ], [ 19.56628, 46.16077 ], [ 19.51506, 46.13871 ], [ 19.53494, 46.11822 ], [ 19.49111, 46.09861 ], [ 19.47175, 46.0919 ], [ 19.47404, 46.08059 ], [ 19.41925, 46.04133 ], [ 19.37619, 46.02913 ], [ 19.31376, 45.99019 ], [ 19.28981, 45.97868 ], [ 19.09386, 45.96133 ], [ 19.01767, 45.9204 ], [ 18.98811, 45.91916 ], [ 18.98276, 45.9266 ], [ 18.95091, 45.91916 ], [ 18.9104, 45.92784 ], [ 18.86478, 45.90409 ], [ 18.82121, 45.90125 ], [ 18.81459, 45.87429 ], [ 18.77993, 45.87429 ], [ 18.75241, 45.88919 ], [ 18.67138, 45.90781 ], [ 18.66756, 45.89504 ], [ 18.65023, 45.88795 ], [ 18.66552, 45.86968 ], [ 18.63488, 45.86455 ], [ 18.63163, 45.83986 ], [ 18.57649, 45.79768 ], [ 18.52181, 45.77805 ], [ 18.49429, 45.78782 ], [ 18.48945, 45.77841 ], [ 18.48792, 45.76045 ], [ 18.45734, 45.76152 ], [ 18.4497, 45.73218 ], [ 18.41045, 45.73556 ], [ 18.39109, 45.74392 ], [ 18.38752, 45.75654 ], [ 18.36077, 45.76205 ], [ 18.34624, 45.74605 ], [ 18.33299, 45.7425 ], [ 18.26954, 45.75139 ], [ 18.23591, 45.75868 ], [ 18.22368, 45.77432 ], [ 18.18698, 45.78143 ], [ 18.17195, 45.77076 ], [ 18.1452, 45.77947 ], [ 18.12201, 45.77912 ], [ 18.11105, 45.76579 ], [ 18.0843, 45.76116 ], [ 18.01065, 45.77734 ], [ 17.99639, 45.78658 ], [ 17.98288, 45.78782 ], [ 17.96785, 45.78445 ], [ 17.93013, 45.78018 ], [ 17.91306, 45.78303 ], [ 17.87739, 45.77005 ], [ 17.86618, 45.76063 ], [ 17.85063, 45.76348 ], [ 17.84554, 45.77663 ], [ 17.82311, 45.78605 ], [ 17.82694, 45.80115 ], [ 17.80298, 45.796 ], [ 17.75941, 45.80772 ], [ 17.72909, 45.82655 ], [ 17.66768, 45.83098 ], [ 17.64959, 45.84217 ], [ 17.64194, 45.85584 ], [ 17.64041, 45.86666 ], [ 17.61085, 45.90409 ], [ 17.56856, 45.93174 ], [ 17.52422, 45.92944 ], [ 17.4409, 45.94786 ], [ 17.43835, 45.94592 ], [ 17.44191, 45.92518 ], [ 17.43121, 45.92128 ], [ 17.41159, 45.92447 ], [ 17.34967, 45.93652 ], [ 17.33642, 45.94521 ], [ 17.30228, 45.96629 ], [ 17.248, 46.01462 ], [ 17.248, 46.05018 ], [ 17.20392, 46.06804 ], [ 17.16697, 46.11222 ], [ 17.16723, 46.15124 ], [ 17.06989, 46.186 ], [ 17.04466, 46.20329 ], [ 16.97484, 46.21881 ], [ 16.90299, 46.25934 ], [ 16.87904, 46.27678 ], [ 16.8668, 46.31411 ], [ 16.86324, 46.33593 ], [ 16.84515, 46.35422 ], [ 16.75087, 46.37532 ], [ 16.71927, 46.38516 ], [ 16.70908, 46.39149 ], [ 16.6655, 46.44156 ], [ 16.60358, 46.46455 ], [ 16.51338, 46.50561 ], [ 16.52332, 46.52963 ], [ 16.51058, 46.53454 ], [ 16.50523, 46.55925 ], [ 16.47924, 46.55978 ], [ 16.47363, 46.5822 ], [ 16.46497, 46.58097 ], [ 16.42547, 46.60916 ], [ 16.38801, 46.63069 ], [ 16.37935, 46.65238 ], [ 16.38954, 46.66777 ], [ 16.41273, 46.6662 ], [ 16.41834, 46.69102 ], [ 16.37833, 46.69487 ], [ 16.35081, 46.71287 ], [ 16.31131, 46.75356 ], [ 16.31972, 46.77171 ], [ 16.30418, 46.77311 ], [ 16.30545, 46.80224 ], [ 16.33501, 46.81184 ], [ 16.33985, 46.8359 ], [ 16.29628, 46.85699 ], [ 16.28889, 46.86779 ], [ 16.24685, 46.87058 ], [ 16.2336, 46.87162 ], [ 16.20276, 46.86517 ], [ 16.17956, 46.85617 ], [ 16.16325, 46.85698 ], [ 16.15568, 46.85002 ], [ 16.12672, 46.85528 ], [ 16.12402, 46.85749 ], [ 16.1162, 46.86292 ], [ 16.115280238324473, 46.864536005848905 ], [ 16.06073, 46.83529 ], [ 16.00043, 46.8256 ], [ 15.9965, 46.73613 ], [ 16.0326, 46.71484 ], [ 16.04729, 46.68893 ], [ 16.04347, 46.65197 ], [ 15.84539, 46.71858 ], [ 15.77307, 46.69654 ], [ 15.70939, 46.69411 ], [ 15.6565, 46.70419 ], [ 15.65818, 46.69008 ], [ 15.63048, 46.67741 ], [ 15.59438, 46.68144 ], [ 15.56297, 46.6699 ], [ 15.54569, 46.62641 ], [ 15.50707, 46.612 ], [ 15.47504, 46.60907 ], [ 15.4122, 46.64976 ], [ 15.22835, 46.63708 ], [ 15.15615, 46.65235 ], [ 15.08186, 46.64313 ], [ 15.0403, 46.64659 ], [ 14.98064, 46.59783 ], [ 14.95597, 46.62892 ], [ 14.93074, 46.60017 ], [ 14.8754, 46.60386 ], [ 14.84469, 46.56699 ], [ 14.81998, 46.50874 ], [ 14.78677, 46.49769 ], [ 14.72632, 46.48873 ], [ 14.71667, 46.49249 ], [ 14.70534, 46.46561 ], [ 14.6663, 46.44363 ], [ 14.59022, 46.42758 ], [ 14.59284, 46.39936 ], [ 14.58067, 46.37272 ], [ 14.56271, 46.36851 ], [ 14.52904, 46.41528 ], [ 14.48874, 46.40949 ], [ 14.30825, 46.42974 ], [ 14.2825, 46.43865 ], [ 14.23815, 46.42859 ], [ 14.15407, 46.42856 ], [ 14.00138, 46.4794 ], [ 13.74518, 46.51044 ], [ 13.68029, 46.51936 ], [ 13.62425, 46.5323 ], [ 13.4956, 46.5465 ], [ 13.38185, 46.56036 ], [ 13.32098, 46.55025 ], [ 13.27649, 46.55718 ], [ 13.23278, 46.5471 ], [ 12.53678, 46.65018 ], [ 12.37941, 46.71289 ], [ 12.3497, 46.77174 ], [ 12.27869, 46.78018 ], [ 12.27914, 46.81664 ], [ 12.29428, 46.8401 ], [ 12.2613, 46.88123 ], [ 12.21461, 46.87155 ], [ 12.19257, 46.88984 ], [ 12.18995, 46.90222 ], [ 12.138, 46.91242 ], [ 12.11847, 47.01369 ], [ 12.23347, 47.0735 ], [ 12.1868, 47.08527 ], [ 11.74395, 46.96545 ], [ 11.67574, 46.98907 ], [ 11.62118, 47.00267 ], [ 11.53932, 46.98191 ], [ 11.50469, 47.00339 ], [ 11.48161, 47.00589 ], [ 11.46482, 46.97869 ], [ 11.40395, 46.96151 ], [ 11.31843, 46.98227 ], [ 11.17309, 46.94142 ], [ 11.10435, 46.90095 ], [ 11.08809, 46.82023 ], [ 11.0277, 46.76278 ], [ 10.88618, 46.76019 ], [ 10.72762, 46.78539 ], [ 10.7208, 46.79832 ], [ 10.74861, 46.82526 ], [ 10.70401, 46.84069 ], [ 10.66931, 46.86781 ], [ 10.55132, 46.83351 ], [ 10.472717326625444, 46.850411564258749 ], [ 10.47255, 46.84745 ], [ 10.46187, 46.82918 ], [ 10.46179, 46.81594 ], [ 10.45114, 46.79986 ], [ 10.43267, 46.79491 ], [ 10.42946, 46.7901 ], [ 10.44563, 46.77341 ], [ 10.44651, 46.75394 ], [ 10.40636, 46.73328 ], [ 10.42164, 46.72056 ], [ 10.42138, 46.71411 ], [ 10.41622, 46.70557 ], [ 10.40559, 46.70317 ], [ 10.39032, 46.68178 ], [ 10.40549, 46.6399 ], [ 10.44758, 46.64491 ], [ 10.49584, 46.61746 ], [ 10.48832, 46.60473 ], [ 10.48952, 46.58571 ], [ 10.47879, 46.56629 ], [ 10.48134, 46.55724 ], [ 10.47478, 46.54132 ], [ 10.46362, 46.539 ], [ 10.45263, 46.52713 ], [ 10.41792, 46.54817 ], [ 10.39682, 46.54102 ], [ 10.35344, 46.55247 ], [ 10.33852, 46.5399 ], [ 10.32572, 46.5484 ], [ 10.31211, 46.54387 ], [ 10.29548, 46.54713 ], [ 10.28514, 46.56782 ], [ 10.26869, 46.57435 ], [ 10.25404, 46.56851 ], [ 10.24398, 46.57336 ], [ 10.23746, 46.59292 ], [ 10.25406, 46.61086 ], [ 10.23711, 46.63135 ], [ 10.22607, 46.62663 ], [ 10.21568, 46.61448 ], [ 10.18916, 46.62247 ], [ 10.12817, 46.60229 ], [ 10.10428, 46.60773 ], [ 10.1003, 46.59453 ], [ 10.10306, 46.58087 ], [ 10.09672, 46.57456 ], [ 10.08425, 46.57249 ], [ 10.08787, 46.56562 ], [ 10.07421, 46.55703 ], [ 10.07015, 46.54818 ], [ 10.04691, 46.53911 ], [ 10.05612, 46.53297 ], [ 10.05679, 46.51879 ], [ 10.05391, 46.51153 ], [ 10.04582, 46.50749 ], [ 10.05178, 46.49968 ], [ 10.04579, 46.47977 ], [ 10.05386, 46.47383 ], [ 10.05715, 46.4642 ], [ 10.04389, 46.44501 ], [ 10.05792, 46.44331 ], [ 10.06339, 46.42981 ], [ 10.07762, 46.43119 ], [ 10.08316, 46.42464 ], [ 10.09853, 46.42442 ], [ 10.10689, 46.43118 ], [ 10.11559, 46.42884 ], [ 10.12922, 46.43484 ], [ 10.14446, 46.43101 ], [ 10.15135, 46.41673 ], [ 10.16197, 46.41813 ], [ 10.16856, 46.4087 ], [ 10.16418, 46.38567 ], [ 10.1428, 46.38299 ], [ 10.13077, 46.37618 ], [ 10.13179, 46.35943 ], [ 10.11175, 46.34952 ], [ 10.10817, 46.33705 ], [ 10.11902, 46.3161 ], [ 10.13999, 46.3075 ], [ 10.14242, 46.30096 ], [ 10.15699, 46.29407 ], [ 10.17941, 46.25899 ], [ 10.14773, 46.22838 ], [ 10.13325, 46.2222 ], [ 10.09469, 46.2256 ], [ 10.07031, 46.21418 ], [ 10.04204, 46.22736 ], [ 10.04199, 46.23264 ], [ 10.05124, 46.23772 ], [ 10.05715, 46.24997 ], [ 10.05323, 46.26388 ], [ 9.993526, 46.283 ], [ 9.988696, 46.29607 ], [ 9.996499, 46.3025 ], [ 9.996337, 46.3109 ], [ 9.977296, 46.32287 ], [ 9.992149, 46.34932 ], [ 9.98391, 46.34908 ], [ 9.962863, 46.36131 ], [ 9.952891, 46.37625 ], [ 9.935632, 46.37203 ], [ 9.932814, 46.36561 ], [ 9.925194, 46.363 ], [ 9.906541, 46.37753 ], [ 9.869326, 46.35955 ], [ 9.834166, 46.35794 ], [ 9.821065, 46.3478 ], [ 9.777525, 46.3319 ], [ 9.737432, 46.34756 ], [ 9.727196, 46.34089 ], [ 9.729796, 46.33139 ], [ 9.720634, 46.32408 ], [ 9.728976, 46.32017 ], [ 9.727222, 46.30883 ], [ 9.715754, 46.29086 ], [ 9.710104, 46.28905 ], [ 9.688016, 46.29064 ], [ 9.675687, 46.29948 ], [ 9.670548, 46.29348 ], [ 9.634027, 46.28322 ], [ 9.617791, 46.28462 ], [ 9.608367, 46.29133 ], [ 9.578475, 46.29228 ], [ 9.557763, 46.30348 ], [ 9.548402, 46.29966 ], [ 9.516129, 46.32519 ], [ 9.494331, 46.36207 ], [ 9.458488, 46.37477 ], [ 9.463587, 46.39664 ], [ 9.45144, 46.42054 ], [ 9.457177, 46.44301 ], [ 9.456353, 46.46422 ], [ 9.462119, 46.46902 ], [ 9.460635, 46.47741 ], [ 9.448212, 46.47736 ], [ 9.446125, 46.48434 ], [ 9.458001, 46.4876 ], [ 9.45818, 46.50447 ], [ 9.436941, 46.49582 ], [ 9.428244, 46.48815 ], [ 9.426506, 46.47422 ], [ 9.409544, 46.46382 ], [ 9.388385, 46.47051 ], [ 9.382465, 46.47981 ], [ 9.374412, 46.48244 ], [ 9.365526, 46.49326 ], [ 9.370222, 46.50165 ], [ 9.363269, 46.50613 ], [ 9.355661, 46.5013 ], [ 9.311349, 46.50104 ], [ 9.284334, 46.49389 ], [ 9.277932, 46.48275 ], [ 9.276819, 46.46671 ], [ 9.280879, 46.46019 ], [ 9.267423, 46.44879 ], [ 9.252829, 46.4464 ], [ 9.250948, 46.4356 ], [ 9.283557, 46.41444 ], [ 9.285434, 46.40438 ], [ 9.27962, 46.39443 ], [ 9.287417, 46.3854 ], [ 9.280019, 46.36952 ], [ 9.284388, 46.3607 ], [ 9.298813, 46.35713 ], [ 9.302889, 46.34309 ], [ 9.295225, 46.33606 ], [ 9.302878, 46.32617 ], [ 9.297138, 46.31558 ], [ 9.285381, 46.30909 ], [ 9.287026, 46.29508 ], [ 9.262438, 46.27683 ], [ 9.255164, 46.26546 ], [ 9.251019, 46.23241 ], [ 9.224499, 46.22661 ], [ 9.221, 46.21232 ], [ 9.204479, 46.20606 ], [ 9.197359, 46.17826 ], [ 9.185391, 46.16798 ], [ 9.162664, 46.16803 ], [ 9.158572, 46.15975 ], [ 9.136728, 46.15092 ], [ 9.122415, 46.13204 ], [ 9.07627, 46.11663 ], [ 9.092628, 46.08737 ], [ 9.081595, 46.07398 ], [ 9.078476, 46.06164 ], [ 9.050129, 46.05945 ], [ 9.021443, 46.04873 ], [ 9.012299, 46.0357 ], [ 9.012167, 46.02862 ], [ 9.0252, 46.01803 ], [ 9.031479, 45.99247 ], [ 9.014172, 45.98492 ], [ 9.009438, 45.97767 ], [ 8.998826, 45.97716 ], [ 8.996138, 45.96899 ], [ 9.016357, 45.9622 ], [ 9.020121, 45.94896 ], [ 9.016799, 45.94369 ], [ 9.024888, 45.93935 ], [ 9.023447, 45.93206 ], [ 9.061309, 45.92347 ], [ 9.06245, 45.91818 ], [ 9.078418, 45.91356 ], [ 9.079428, 45.90312 ], [ 9.087617, 45.905 ], [ 9.091767, 45.90036 ], [ 9.079135, 45.88206 ], [ 9.067754, 45.87289 ], [ 9.058507, 45.87215 ], [ 9.053107, 45.86113 ], [ 9.054634, 45.85283 ], [ 9.038956, 45.83903 ], [ 9.036713, 45.82114 ], [ 9.011446, 45.81617 ], [ 8.990709, 45.82011 ], [ 8.993226, 45.83136 ], [ 8.986985, 45.83533 ], [ 8.969631, 45.82938 ], [ 8.949377, 45.84038 ], [ 8.910245, 45.82821 ], [ 8.912056, 45.84451 ], [ 8.934444, 45.86567 ], [ 8.927082, 45.88968 ], [ 8.920383, 45.89525 ], [ 8.923326, 45.90487 ], [ 8.891443, 45.93094 ], [ 8.896774, 45.94652 ], [ 8.893829, 45.95609 ], [ 8.879787, 45.95395 ], [ 8.866793, 45.95842 ], [ 8.830543, 45.98497 ], [ 8.78402, 45.98766 ], [ 8.790281, 46.00796 ], [ 8.805162, 46.0249 ], [ 8.824876, 46.03403 ], [ 8.833667, 46.05464 ], [ 8.844282, 46.05293 ], [ 8.85252, 46.06349 ], [ 8.850854, 46.07359 ], [ 8.808122, 46.09843 ], [ 8.801815, 46.09266 ], [ 8.784613, 46.09187 ], [ 8.758843, 46.099 ], [ 8.743103, 46.11908 ], [ 8.715844, 46.09596 ], [ 8.658566, 46.1106 ], [ 8.647466, 46.121 ], [ 8.611036, 46.12254 ], [ 8.608668, 46.13139 ], [ 8.593218, 46.14196 ], [ 8.598892, 46.15335 ], [ 8.572699, 46.16316 ], [ 8.562708, 46.18269 ], [ 8.539598, 46.19653 ], [ 8.53127, 46.21437 ], [ 8.469289, 46.23104 ], [ 8.463768, 46.24284 ], [ 8.442086, 46.24898 ], [ 8.440966, 46.25602 ], [ 8.452715, 46.26615 ], [ 8.425775, 46.29967 ], [ 8.438715, 46.30798 ], [ 8.443082, 46.32278 ], [ 8.453303, 46.32495 ], [ 8.462462, 46.33492 ], [ 8.460117, 46.35435 ], [ 8.466568, 46.36594 ], [ 8.463409, 46.38336 ], [ 8.466404, 46.41158 ], [ 8.455761, 46.42318 ], [ 8.455861, 46.43679 ], [ 8.463871, 46.44409 ], [ 8.446124, 46.46165 ], [ 8.409321, 46.45664 ], [ 8.39498, 46.45022 ], [ 8.366422, 46.44917 ], [ 8.339306, 46.42978 ], [ 8.303225, 46.41784 ], [ 8.295392, 46.4099 ], [ 8.311829, 46.40725 ], [ 8.320847, 46.3991 ], [ 8.318913, 46.39129 ], [ 8.322723, 46.38665 ], [ 8.315171, 46.3753 ], [ 8.287062, 46.36402 ], [ 8.266316, 46.36215 ], [ 8.269609, 46.35362 ], [ 8.264953, 46.34402 ], [ 8.226986, 46.33238 ], [ 8.215202, 46.30828 ], [ 8.205724, 46.30257 ], [ 8.162665, 46.29414 ], [ 8.139924, 46.29972 ], [ 8.085318, 46.26056 ], [ 8.112681, 46.25286 ], [ 8.118654, 46.24021 ], [ 8.142656, 46.22856 ], [ 8.157184, 46.19413 ], [ 8.169682, 46.1828 ], [ 8.168449, 46.17613 ], [ 8.154069, 46.16256 ], [ 8.157028, 46.14516 ], [ 8.145518, 46.13486 ], [ 8.119127, 46.12958 ], [ 8.117639, 46.11757 ], [ 8.110427, 46.10981 ], [ 8.036897, 46.09853 ], [ 8.026487, 46.07073 ], [ 8.038624, 46.04368 ], [ 8.017889, 46.03223 ], [ 8.020875, 46.02554 ], [ 8.01539, 46.01072 ], [ 8.003547, 46.01008 ], [ 7.989476, 45.99424 ], [ 7.97887, 45.99741 ], [ 7.911238, 45.99526 ], [ 7.898117, 45.98061 ], [ 7.881856, 45.97256 ], [ 7.881936, 45.95347 ], [ 7.871763, 45.93744 ], [ 7.87983, 45.92597 ], [ 7.863667, 45.91372 ], [ 7.858067, 45.9189 ], [ 7.836518, 45.91878 ], [ 7.82232, 45.92479 ], [ 7.799129, 45.91421 ], [ 7.768693, 45.93399 ], [ 7.749536, 45.93763 ], [ 7.736803, 45.92079 ], [ 7.720654, 45.92168 ], [ 7.704959, 45.93312 ], [ 7.707889, 45.94787 ], [ 7.681002, 45.95544 ], [ 7.664172, 45.97348 ], [ 7.640698, 45.96828 ], [ 7.589627, 45.96869 ], [ 7.582477, 45.97171 ], [ 7.577377, 45.9847 ], [ 7.571208, 45.9857 ], [ 7.549411, 45.98323 ], [ 7.545746, 45.97709 ], [ 7.550099, 45.9626 ], [ 7.543381, 45.95458 ], [ 7.503514, 45.95966 ], [ 7.48053, 45.95085 ], [ 7.475733, 45.94714 ], [ 7.476746, 45.93392 ], [ 7.446415, 45.92959 ], [ 7.425852, 45.91153 ], [ 7.408454, 45.90563 ], [ 7.401819, 45.90775 ], [ 7.387613, 45.89465 ], [ 7.359999, 45.90042 ], [ 7.343523, 45.91153 ], [ 7.323472, 45.90724 ], [ 7.295368, 45.91957 ], [ 7.278246, 45.89816 ], [ 7.269726, 45.8974 ], [ 7.260875, 45.88678 ], [ 7.21893, 45.88623 ], [ 7.202454, 45.87293 ], [ 7.203583, 45.86203 ], [ 7.192356, 45.8567 ], [ 7.165681, 45.86152 ], [ 7.160571, 45.87542 ], [ 7.155891, 45.87623 ], [ 7.137706, 45.87037 ], [ 7.118827, 45.85658 ], [ 7.101359, 45.85733 ], [ 7.092742, 45.87432 ], [ 7.06286, 45.89953 ], [ 7.062623738829019, 45.902131342509755 ], [ 6.940965, 45.83551 ], [ 6.82003, 45.81591 ], [ 6.829337, 45.71123 ], [ 7.012493, 45.64465 ], [ 7.009821, 45.52013 ], [ 7.110975, 45.47131 ], [ 7.19206, 45.40674 ], [ 7.139578, 45.30455 ], [ 7.144923, 45.25531 ], [ 7.080046, 45.20884 ], [ 6.980034, 45.20287 ], [ 6.951246, 45.16805 ], [ 6.895852, 45.13346 ], [ 6.847371, 45.1246 ], [ 6.78635, 45.15017 ], [ 6.639546, 45.09804 ], [ 6.664861, 45.07298 ], [ 6.681253, 45.02691 ], [ 6.753322, 45.02224 ], [ 6.787871, 44.89831 ], [ 6.90921, 44.85059 ], [ 6.930832, 44.86853 ], [ 7.027325, 44.83719 ], [ 7.043637, 44.72277 ], [ 7.069489, 44.71579 ], [ 7.082193, 44.67768 ], [ 6.984578, 44.68155 ], [ 6.954428, 44.65258 ], [ 6.976129, 44.62322 ], [ 6.929081, 44.56146 ], [ 6.859932, 44.5298 ], [ 6.954603, 44.4281 ], [ 6.901817, 44.37246 ], [ 7.001151, 44.28406 ], [ 7.00962, 44.24643 ], [ 7.100105, 44.22949 ], [ 7.188148, 44.20436 ], [ 7.296657, 44.14937 ], [ 7.347362, 44.14755 ], [ 7.360254, 44.12652 ], [ 7.623408, 44.16728 ], [ 7.628561, 44.17919 ], [ 7.689757, 44.18558 ], [ 7.680372, 44.1235 ], [ 7.731295, 44.07925 ], [ 7.651235, 43.96522 ], [ 7.580754, 43.94251 ], [ 7.565829, 43.89753 ], [ 7.503786, 43.8704 ], [ 7.534675, 43.77821 ], [ 9.810986, 43.20419 ], [ 9.9, 42.43788 ], [ 9.9, 41.41346 ], [ 9.328765, 41.32062 ] ], [ [ 9.532795, 47.26121 ], [ 9.504446, 47.21901 ], [ 9.488935, 47.1825 ], [ 9.494312, 47.16387 ], [ 9.514632, 47.13311 ], [ 9.522277, 47.09611 ], [ 9.515156, 47.08312 ], [ 9.474704, 47.06309 ], [ 9.476499, 47.05781 ], [ 9.484286, 47.05834 ], [ 9.485192, 47.05347 ], [ 9.49083, 47.05921 ], [ 9.511608, 47.0598 ], [ 9.539792, 47.06815 ], [ 9.553406, 47.06125 ], [ 9.558734, 47.05144 ], [ 9.602887, 47.06472 ], [ 9.604584779740156, 47.06417071501221 ], [ 9.60736, 47.08034 ], [ 9.630754, 47.08638 ], [ 9.601922, 47.14683 ], [ 9.561625, 47.1704 ], [ 9.577475, 47.20636 ], [ 9.54873, 47.22297 ], [ 9.563506, 47.24139 ], [ 9.533146138119909, 47.26540443085598 ], [ 9.532795, 47.26121 ] ] ], [ [ [ 8.443226, 55.05734 ], [ 8.406276, 55.06306 ], [ 8.322812, 55.05485 ], [ 8.008442, 55.08922 ], [ 8.033032, 55.23671 ], [ 7.7011, 55.48043 ], [ 7.711231, 56.78479 ], [ 7.732708, 57.27693 ], [ 8.724302, 57.49394 ], [ 10.73552, 58.06239 ], [ 11.10578, 57.69656 ], [ 12.00898, 56.72149 ], [ 12.04222, 56.28617 ], [ 12.35927, 56.22882 ], [ 12.65451, 56.05396 ], [ 12.67291, 55.99475 ], [ 12.66399, 55.91373 ], [ 12.80482, 55.79932 ], [ 12.91768, 55.6381 ], [ 12.73642, 55.48176 ], [ 12.79505, 55.23748 ], [ 12.94945, 55.10333 ], [ 14.26342, 55.13914 ], [ 15.04271, 55.65064 ], [ 15.65449, 55.41461 ], [ 15.47857, 54.76336 ], [ 13.77246, 54.76936 ], [ 13.19691, 54.80719 ], [ 12.59162, 54.7455 ], [ 12.27286, 54.59759 ], [ 12.1581, 54.45784 ], [ 11.77816, 54.44065 ], [ 11.28491, 54.5936 ], [ 11.03705, 54.64079 ], [ 10.60224, 54.53408 ], [ 10.05842, 54.7617 ], [ 9.878565, 54.83668 ], [ 9.74148, 54.82108 ], [ 9.600163, 54.8514 ], [ 9.625646, 54.87845 ], [ 9.588001, 54.88581 ], [ 9.520418, 54.84574 ], [ 9.462877, 54.83096 ], [ 9.45039, 54.82938 ], [ 9.431217, 54.82503 ], [ 9.416375, 54.83167 ], [ 9.411613, 54.84093 ], [ 9.404013, 54.83777 ], [ 9.392486, 54.83724 ], [ 9.377424, 54.83202 ], [ 9.375214, 54.82041 ], [ 9.356369, 54.8136 ], [ 9.343557, 54.79935 ], [ 9.329375, 54.80434 ], [ 9.297394, 54.80705 ], [ 9.296897, 54.80219 ], [ 9.287462, 54.80051 ], [ 9.282771, 54.80874 ], [ 9.249527, 54.8092 ], [ 9.233419, 54.83333 ], [ 9.239191, 54.84889 ], [ 9.189305, 54.85936 ], [ 9.145391, 54.8722 ], [ 9.09125, 54.86927 ], [ 9.038281, 54.87124 ], [ 9.021206, 54.8824 ], [ 8.977741, 54.89178 ], [ 8.954456, 54.89981 ], [ 8.892364, 54.9007 ], [ 8.84657, 54.89312 ], [ 8.831047, 54.90472 ], [ 8.808539, 54.90293 ], [ 8.777492, 54.89222 ], [ 8.725954, 54.89088 ], [ 8.689011, 54.906 ], [ 8.662621, 54.90702 ], [ 8.552884, 54.91803 ], [ 8.465686, 55.02678 ], [ 8.471047, 55.04837 ], [ 8.443226, 55.05734 ] ] ] ] } } +] +} diff --git a/features/bicycle/way.feature b/features/bicycle/way.feature index b9beb5f0f58..36fce890d41 100644 --- a/features/bicycle/way.feature +++ b/features/bicycle/way.feature @@ -4,7 +4,7 @@ Feature: Bike - Accessability of different way types Background: Given the profile "bicycle" - Scenario: Bike - Routability of way types + Scenario: Bike - Routability of way types trunk not supported # Bikes are allowed on footways etc because you can pull your bike at a lower speed. # Pier is not allowed, since it's tagged using man_made=pier. @@ -40,3 +40,40 @@ Feature: Bike - Accessability of different way types | highway | man_made | bothw | | (nil) | (nil) | | | (nil) | pier | x | + + Scenario: Bike - Routability of way types trunk supported + # Bikes are allowed on footways etc because you can pull your bike at a lower speed. + # Pier is not allowed, since it's tagged using man_made=pier. + + Given the profile file "bicycle" initialized with + """ + profile.uselocationtags.trunk = true + """ + + Then routability should be + | highway | bothw | + | (nil) | | + | motorway | | + | motorway_link | | + | trunk | x | + | trunk_link | x | + | primary | x | + | primary_link | x | + | secondary | x | + | secondary_link | x | + | tertiary | x | + | tertiary_link | x | + | residential | x | + | service | x | + | unclassified | x | + | living_street | x | + | road | x | + | track | x | + | path | x | + | footway | x | + | pedestrian | x | + | steps | x | + | cycleway | x | + | bridleway | | + | pier | | + diff --git a/features/bicycle/way_notrunk.feature b/features/bicycle/way_notrunk.feature new file mode 100644 index 00000000000..903e413f356 --- /dev/null +++ b/features/bicycle/way_notrunk.feature @@ -0,0 +1,183 @@ +@testbot @way @notrunk +Feature: Testbot - notrunk allowed + + # Check that Nodes need to be in the geojson file to support trunk access. + # Use the default geopoint around 0.0. + # This covers both trunk allowed notrunk allowed and no motorroad + + Scenario: bicycle trunk allowed - notrunk failure original behavior + + Given the profile "bicycle" + And the extract extra arguments "--threads 1" + And the partition extra arguments "--threads 1" + And the customize extra arguments "--threads 1" + + And the node locations + # f through o should all fail + + | node | lat | lon | + | a | 48.65729 | 22.26471 | + | b | 48.65648 | 22.26486 | + | c | 48.65503 | 22.26521 | + | d | 48.65489 | 22.26520 | + | e | 48.65426 | 22.26533 | + | f | 48.65277 | 22.26556 | + | g | 48.65026 | 22.26606 | + | h | 48.64937 | 22.26618 | + | i | 48.64858 | 22.26634 | + | j | 48.64763 | 22.26652 | + | k | 48.64730 | 22.26658 | + | l | 48.64616 | 22.26681 | + | m | 48.64599 | 22.26685 | + | n | 48.64568 | 22.26690 | + + + And the ways + | nodes | highway | motorroad | + | ab | primary | | + | bc | primary | | + | cd | primary | yes | + | de | primary | | + | ef | primary | | + | fg | trunk | | + | gh | trunk | | + | hi | trunk | | + | ij | trunk | | + | jk | trunk | | + | kl | trunk | | + | lm | trunk | yes | + | mn | primary | | + + When I route I should get + | from | to | route | status| message | # | + | a | c | ab,bc,bc | 200 | | | + | a | f | | 400 | Impossible route between points | | + | d | f | de,ef,ef | 200 | | | + | d | g | de,ef,ef | 200 | | | + | d | n | | 400 | Impossible route between points | | + + Scenario: bicycle trunk allowed - trunk ok with no geojson + + Given the extract extra arguments "--threads 1" + And the partition extra arguments "--threads 1" + And the customize extra arguments "--threads 1" + + And the profile file "bicycle" initialized with + """ + profile.uselocationtags.trunk = true + """ + + And the node locations + # a through g are in Slovakia - in the no trunk allowed set + # h is on the edge (i.e. in Ukraine) + # i through n are in Ukraine + + | node | lat | lon | + | a | 48.65729 | 22.26471 | + | b | 48.65648 | 22.26486 | + | c | 48.65503 | 22.26521 | + | d | 48.65489 | 22.26520 | + | e | 48.65426 | 22.26533 | + | f | 48.65277 | 22.26556 | + | g | 48.65026 | 22.26606 | + | h | 48.64937 | 22.26618 | + | i | 48.64858 | 22.26634 | + | j | 48.64763 | 22.26652 | + | k | 48.64730 | 22.26658 | + | l | 48.64616 | 22.26681 | + | m | 48.64599 | 22.26685 | + | n | 48.64568 | 22.26690 | + + + And the ways + | nodes | highway | motorroad | + | ab | primary | | + | bc | primary | | + | cd | primary | yes | + | de | primary | | + | ef | primary | | + | fg | trunk | | + | gh | trunk | | + | hi | trunk | | + | ij | trunk | | + | jk | trunk | | + | kl | trunk | | + | lm | trunk | yes | + | mn | primary | | + + When I route I should get + | from | to | route | status| message | # | + | a | c | ab,bc,bc | 200 | | | + | a | d | | 400 | Impossible route between points | | + | d | f | de,ef,ef | 200 | | | + | d | g | de,ef,fg,fg | 200 | | | + | e | n | | 400 | Impossible route between points | | + | f | h | fg,gh | 200 | | | + | g | l | gh,ij,kl,kl | 200 | | | + | h | l | hi,ij,kl,kl | 200 | | | + | i | l | ij,kl,kl | 200 | | | + | i | m | | 400 | Impossible route between points | | + + Scenario: bicycle trunk allowed - notrunk failure with geojson + + Given the extract extra arguments "--threads 1 --location-dependent-data data/notrunk.geojson" + And the partition extra arguments "--threads 1" + And the customize extra arguments "--threads 1" + + And the profile file "bicycle" initialized with + """ + profile.uselocationtags.trunk = true + """ + + And the node locations + # a through g are in Slovakia - in the no trunk allowed set + # h is on the edge (i.e. in Ukraine) + # i through n are in Ukraine + + | node | lat | lon | + | a | 48.65729 | 22.26471 | + | b | 48.65648 | 22.26486 | + | c | 48.65503 | 22.26521 | + | d | 48.65489 | 22.26520 | + | e | 48.65426 | 22.26533 | + | f | 48.65277 | 22.26556 | + | g | 48.65026 | 22.26606 | + | h | 48.64937 | 22.26618 | + | i | 48.64858 | 22.26634 | + | j | 48.64763 | 22.26652 | + | k | 48.64730 | 22.26658 | + | l | 48.64616 | 22.26681 | + | m | 48.64599 | 22.26685 | + | n | 48.64568 | 22.26690 | + + + And the ways + | nodes | highway | motorroad | + | ab | primary | | + | bc | primary | | + | cd | primary | yes | + | de | primary | | + | ef | primary | | + | fg | trunk | | + | gh | trunk | | + | hi | trunk | | + | ij | trunk | | + | jk | trunk | | + | kl | trunk | | + | lm | trunk | yes | + | mn | primary | | + + When I route I should get + | from | to | route | status| message | # | + | a | c | ab,bc,bc | 200 | | | + | a | d | | 400 | Impossible route between points | | + | a | f | | 400 | Impossible route between points | | + | d | f | de,ef,ef | 200 | | | + | d | g | | 400 | Impossible route between points | | + | e | n | | 400 | Impossible route between points | | + | f | h | | 400 | Impossible route between points | | + | g | l | hi,ij,kl,kl | 200 | | | + | h | l | hi,ij,kl,kl | 200 | | | + | i | l | ij,kl,kl | 200 | | | + | i | m | | 400 | Impossible route between points | | + diff --git a/features/foot/way.feature b/features/foot/way.feature index 6916adece43..e1c3f8c8894 100644 --- a/features/foot/way.feature +++ b/features/foot/way.feature @@ -42,3 +42,37 @@ Feature: Foot - Accessability of different way types | footway | | | x | | proposed | | | | | proposed | yes | yes | | + + Scenario: Foot - Basic access with profile.uselocationtags.trunk = true + + Given the profile file "foot" initialized with + """ + profile.uselocationtags.trunk = true + """ + + Then routability should be + | highway | forw | + | motorway | | + | motorway_link | | + | trunk | x | + | trunk_link | x | + | primary | x | + | primary_link | x | + | secondary | x | + | secondary_link | x | + | tertiary | x | + | tertiary_link | x | + | residential | x | + | service | x | + | unclassified | x | + | living_street | x | + | road | x | + | track | x | + | path | x | + | footway | x | + | pedestrian | x | + | steps | x | + | pier | x | + | cycleway | | + | bridleway | | + diff --git a/features/foot/way_notrunk.feature b/features/foot/way_notrunk.feature new file mode 100644 index 00000000000..678bae7ee0b --- /dev/null +++ b/features/foot/way_notrunk.feature @@ -0,0 +1,186 @@ +@testbot @way @notrunk +Feature: Testbot - notrunk allowed + + # Check that Nodes need to be in the geojson file to support trunk access. + # Use the default geopoint around 0.0. + # This covers both trunk allowed notrunk allowed and no motorroad + + Scenario: foot trunk allowed - notrunk failure original behavior + + Given the profile "foot" + And the extract extra arguments "--threads 1" + And the partition extra arguments "--threads 1" + And the customize extra arguments "--threads 1" + + And the node locations + # f through o should all fail + + | node | lat | lon | + | a | 48.65729 | 22.26471 | + | b | 48.65648 | 22.26486 | + | c | 48.65503 | 22.26521 | + | d | 48.65489 | 22.26520 | + | e | 48.65426 | 22.26533 | + | f | 48.65277 | 22.26556 | + | g | 48.65026 | 22.26606 | + | h | 48.64937 | 22.26618 | + | i | 48.64858 | 22.26634 | + | j | 48.64763 | 22.26652 | + | k | 48.64730 | 22.26658 | + | l | 48.64616 | 22.26681 | + | m | 48.64599 | 22.26685 | + | n | 48.64568 | 22.26690 | + + + And the ways + | nodes | highway | motorroad | + | ab | primary | | + | bc | primary | | + | cd | primary | yes | + | de | primary | | + | ef | primary | | + | fg | trunk | | + | gh | trunk | | + | hi | trunk | | + | ij | trunk | | + | jk | trunk | | + | kl | trunk | | + | lm | trunk | yes | + | mn | primary | | + + When I route I should get + | from | to | route | status| message | # | + | a | c | ab,bc,bc | 200 | | | + | a | f | | 400 | Impossible route between points | | + | a | f | | 400 | Impossible route between points | | + | d | f | de,ef,ef | 200 | | | + | d | g | de,ef,ef | 200 | | | + | d | n | | 400 | Impossible route between points | | + + # + + Scenario: foot trunk allowed - trunk ok with no geojson + + Given the extract extra arguments "--threads 1" + And the partition extra arguments "--threads 1" + And the customize extra arguments "--threads 1" + + And the profile file "foot" initialized with + """ + profile.uselocationtags.trunk = true + """ + + And the node locations + # a through g are in Slovakia - in the no trunk allowed set + # h is on the edge (i.e. in Ukraine) + # i through n are in Ukraine + + | node | lat | lon | + | a | 48.65729 | 22.26471 | + | b | 48.65648 | 22.26486 | + | c | 48.65503 | 22.26521 | + | d | 48.65489 | 22.26520 | + | e | 48.65426 | 22.26533 | + | f | 48.65277 | 22.26556 | + | g | 48.65026 | 22.26606 | + | h | 48.64937 | 22.26618 | + | i | 48.64858 | 22.26634 | + | j | 48.64763 | 22.26652 | + | k | 48.64730 | 22.26658 | + | l | 48.64616 | 22.26681 | + | m | 48.64599 | 22.26685 | + | n | 48.64568 | 22.26690 | + + + And the ways + | nodes | highway | motorroad | + | ab | primary | | + | bc | primary | | + | cd | primary | yes | + | de | primary | | + | ef | primary | | + | fg | trunk | | + | gh | trunk | | + | hi | trunk | | + | ij | trunk | | + | jk | trunk | | + | kl | trunk | | + | lm | trunk | yes | + | mn | primary | | + + When I route I should get + | from | to | route | status| message | # | + | a | c | ab,bc,bc | 200 | | | + | a | f | | 400 | Impossible route between points | | + | d | f | de,ef,ef | 200 | | | + | d | g | de,ef,fg,fg | 200 | | | + | e | n | | 400 | Impossible route between points | | + | f | h | fg,gh | 200 | | | + | g | l | gh,ij,kl,kl | 200 | | | + | h | l | hi,ij,kl,kl | 200 | | | + | i | l | ij,kl,kl | 200 | | | + | i | m | | 400 | Impossible route between points | | + + Scenario: foot trunk allowed - notrunk failure with geojson + + Given the extract extra arguments "--threads 1 --location-dependent-data data/notrunk.geojson" + And the partition extra arguments "--threads 1" + And the customize extra arguments "--threads 1" + + And the profile file "foot" initialized with + """ + profile.uselocationtags.trunk = true + """ + + And the node locations + # a through g are in Slovakia - in the no trunk allowed set + # h is on the edge (i.e. in Ukraine) + # i through n are in Ukraine + + | node | lat | lon | + | a | 48.65729 | 22.26471 | + | b | 48.65648 | 22.26486 | + | c | 48.65503 | 22.26521 | + | d | 48.65489 | 22.26520 | + | e | 48.65426 | 22.26533 | + | f | 48.65277 | 22.26556 | + | g | 48.65026 | 22.26606 | + | h | 48.64937 | 22.26618 | + | i | 48.64858 | 22.26634 | + | j | 48.64763 | 22.26652 | + | k | 48.64730 | 22.26658 | + | l | 48.64616 | 22.26681 | + | m | 48.64599 | 22.26685 | + | n | 48.64568 | 22.26690 | + + + And the ways + | nodes | highway | motorroad | + | ab | primary | | + | bc | primary | | + | cd | primary | yes | + | de | primary | | + | ef | primary | | + | fg | trunk | | + | gh | trunk | | + | hi | trunk | | + | ij | trunk | | + | jk | trunk | | + | kl | trunk | | + | lm | trunk | yes | + | mn | primary | | + + When I route I should get + | from | to | route | status| message | # | + | a | c | ab,bc,bc | 200 | | | + | a | f | | 400 | Impossible route between points | | + | a | f | | 400 | Impossible route between points | | + | d | f | de,ef,ef | 200 | | | + | d | g | | 400 | Impossible route between points | | + | e | n | | 400 | Impossible route between points | | + | f | h | | 400 | Impossible route between points | | + | g | l | hi,ij,kl,kl | 200 | | | + | h | l | hi,ij,kl,kl | 200 | | | + | i | l | ij,kl,kl | 200 | | | + | i | m | | 400 | Impossible route between points | | + diff --git a/profiles/bicycle.lua b/profiles/bicycle.lua index 2c701e218b3..bf37d9d0f66 100644 --- a/profiles/bicycle.lua +++ b/profiles/bicycle.lua @@ -27,6 +27,7 @@ function setup() mode_change_penalty = 30, }, + profile = 'bicycle', default_mode = mode.cycling, default_speed = default_speed, walking_speed = walking_speed, @@ -35,10 +36,6 @@ function setup() turn_bias = 1.4, use_public_transport = true, - -- Exclude narrow ways, in particular to route with cargo bike - width = nil, -- Cargo bike could 0.5 width, in meters - exclude_cargo_bike = false, - allowed_start_modes = Set { mode.cycling, mode.pushing_bike @@ -140,6 +137,11 @@ function setup() path = 13 }, + trunk_speeds = { + trunk = default_speed, + trunk_link = default_speed, + }, + pedestrian_speeds = { footway = walking_speed, pedestrian = walking_speed, @@ -220,9 +222,15 @@ function setup() avoid = Set { 'impassable', + 'motorroad', 'construction', 'proposed' + }, + + uselocationtags = Set { + -- 'trunk' } + } end @@ -247,27 +255,6 @@ function process_node(profile, node, result) end end - if profile.exclude_cargo_bike then - local cargo_bike = node:get_value_by_key("cargo_bike") - if cargo_bike and cargo_bike == "no" then - result.barrier = true - end - end - - -- width - if profile.width then - -- From barrier=cycle_barrier or other barriers - local maxwidth_physical = node:get_value_by_key("maxwidth:physical") - local maxwidth_physical_meter = maxwidth_physical and Measure.parse_value_meters(maxwidth_physical) or 99 - local opening = node:get_value_by_key("opening") - local opening_meter = opening and Measure.parse_value_meters(opening) or 99 - local width_meter = math.min(maxwidth_physical_meter, opening_meter) - - if width_meter and width_meter < profile.width then - result.barrier = true - end - end - -- check if node is a traffic light result.traffic_lights = TrafficSignal.get_value(node) end @@ -324,8 +311,6 @@ function handle_bicycle_tags(profile,way,result,data) bike_push_handler(profile,way,result,data) - -- width should be after bike_push - width_handler(profile,way,result,data) -- maxspeed limit( result, data.maxspeed, data.maxspeed_forward, data.maxspeed_backward ) @@ -391,9 +376,16 @@ function speed_handler(profile,way,result,data) data.way_type_allows_pushing = true elseif profile.bicycle_speeds[data.highway] then -- regular ways + -- check trunk result.forward_speed = profile.bicycle_speeds[data.highway] result.backward_speed = profile.bicycle_speeds[data.highway] data.way_type_allows_pushing = true + elseif profile.trunk_speeds[data.highway] and profile.uselocationtags and profile.uselocationtags.trunk then + if not way:get_location_tag(data.highway) or way:get_location_tag(data.highway) ~= "no" then + result.forward_speed = profile.trunk_speeds[data.highway] + result.backward_speed = profile.trunk_speeds[data.highway] + data.way_type_allows_pushing = true + end elseif data.access and profile.access_tag_whitelist[data.access] then -- unknown way, but valid access tag result.forward_speed = profile.default_speed @@ -480,27 +472,6 @@ function cycleway_handler(profile,way,result,data) end end -function width_handler(profile,way,result,data) - if profile.exclude_cargo_bike then - local cargo_bike = way:get_value_by_key("cargo_bike") - if cargo_bike and cargo_bike == "no" then - result.forward_mode = mode.inaccessible - result.backward_mode = mode.inaccessible - end - end - - if profile.width then - local width = way:get_value_by_key("width") - if width then - local width_meter = Measure.parse_value_meters(width) - if width_meter and width_meter < profile.width then - result.forward_mode = mode.inaccessible - result.backward_mode = mode.inaccessible - end - end - end -end - function bike_push_handler(profile,way,result,data) -- pushing bikes - if no other mode found if result.forward_mode == mode.inaccessible or result.backward_mode == mode.inaccessible or diff --git a/profiles/foot.lua b/profiles/foot.lua index fa5f8b6634f..2b2808ec7fa 100644 --- a/profiles/foot.lua +++ b/profiles/foot.lua @@ -20,6 +20,7 @@ function setup() use_turn_restrictions = false, }, + profile = 'foot', default_mode = mode.walking, default_speed = walking_speed, oneway_handling = 'specific', -- respect 'oneway:foot' but not 'oneway' @@ -70,9 +71,15 @@ function setup() avoid = Set { 'impassable', - 'proposed' + 'proposed', + 'motorroad' }, + trunk_speeds = { + trunk = walking_speed, + trunk_link = walking_speed + }, + speeds = Sequence { highway = { primary = walking_speed, @@ -132,6 +139,10 @@ function setup() }, smoothness_speeds = { + }, + + uselocationtags = Set { + -- 'trunk' } } end @@ -190,7 +201,6 @@ function process_way(profile, way, result) amenity = way:get_value_by_key('amenity'), public_transport = way:get_value_by_key('public_transport') } - -- perform an quick initial check and abort if the way is -- obviously not routable. here we require at least one -- of the prefetched tags to be present, ie. the data table diff --git a/profiles/lib/way_handlers.lua b/profiles/lib/way_handlers.lua index b1341023509..e3c41924f2a 100644 --- a/profiles/lib/way_handlers.lua +++ b/profiles/lib/way_handlers.lua @@ -276,6 +276,16 @@ function WayHandlers.speed(profile,way,result,data) local key,value,speed = Tags.get_constant_by_key_value(way,profile.speeds) + -- if the highway is trunk or trunk_link and locationtag disables it + -- then noroute available + + if not speed and data.highway and profile.uselocationtags and profile.uselocationtags.trunk then + if profile.trunk_speeds[data.highway] and + (not way:get_location_tag(data.highway) or way:get_location_tag(data.highway) ~= "no") then + speed = profile.trunk_speeds[data.highway] + end + end + if speed then -- set speed by way type result.forward_speed = speed @@ -634,6 +644,11 @@ function WayHandlers.blocked_ways(profile,way,result,data) return false end + -- motorroad + if profile.avoid.motorroad and way:get_value_by_key("motorroad") == "yes" then + return false + end + -- In addition to the highway=construction tag above handle the construction=* tag -- http://wiki.openstreetmap.org/wiki/Key:construction -- https://taginfo.openstreetmap.org/keys/construction#values From 7be2fac524f506ae4e1f00d495e537cb9ebe7fa6 Mon Sep 17 00:00:00 2001 From: tombay Date: Sat, 5 Oct 2024 16:35:24 +1000 Subject: [PATCH 3/8] CHANGELOG for PR 7049 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 954dcc62785..f492339b458 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -80,6 +80,7 @@ - Profiles: - FIXED: Bicycle and foot profiles now don't route on proposed ways [#6615](https://github.com/Project-OSRM/osrm-backend/pull/6615) - ADDED: Add optional support of cargo bike exclusion and width to bicyle profile [#7044](https://github.com/Project-OSRM/osrm-backend/pull/7044) + - FIXED: foot and bicycle profiles should support trunk access for some countries. [#6710][https://github.com/Project-OSRM/osrm-backend/pulls/7049) - Routing: - FIXED: Fix adding traffic signal penalties during compression [#6419](https://github.com/Project-OSRM/osrm-backend/pull/6419) - FIXED: Correctly handle compressed traffic signals. [#6724](https://github.com/Project-OSRM/osrm-backend/pull/6724) From fe4f2a815da0e0b6b3e218f3d9f81cfb83590879 Mon Sep 17 00:00:00 2001 From: tombay Date: Sun, 6 Oct 2024 08:03:03 +1100 Subject: [PATCH 4/8] Also addresses #6008 and #6697 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f492339b458..9990ea8c1de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -80,7 +80,7 @@ - Profiles: - FIXED: Bicycle and foot profiles now don't route on proposed ways [#6615](https://github.com/Project-OSRM/osrm-backend/pull/6615) - ADDED: Add optional support of cargo bike exclusion and width to bicyle profile [#7044](https://github.com/Project-OSRM/osrm-backend/pull/7044) - - FIXED: foot and bicycle profiles should support trunk access for some countries. [#6710][https://github.com/Project-OSRM/osrm-backend/pulls/7049) + - FIXED: foot and bicycle profiles should support trunk access for some countries.[#6710 #6008 #6697](https://github.com/Project-OSRM/osrm-backend/pulls/7049) - Routing: - FIXED: Fix adding traffic signal penalties during compression [#6419](https://github.com/Project-OSRM/osrm-backend/pull/6419) - FIXED: Correctly handle compressed traffic signals. [#6724](https://github.com/Project-OSRM/osrm-backend/pull/6724) From 041bb2b6084de749de36138b17923d4523e3de59 Mon Sep 17 00:00:00 2001 From: tombay Date: Sun, 6 Oct 2024 19:09:39 +1100 Subject: [PATCH 5/8] setup support of uselocationtags --- docs/profiles.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/profiles.md b/docs/profiles.md index d697a42151c..5137186a576 100644 --- a/docs/profiles.md +++ b/docs/profiles.md @@ -114,6 +114,7 @@ classes | Sequence | Determines the allowed restrictions | Sequence | Determines which turn restrictions will be used for this profile. suffix_list | Set | List of name suffixes needed for determining if "Highway 101 NW" the same road as "Highway 101 ES". relation_types | Sequence | Determines which relations should be cached for processing in this profile. It contains relations types +uselocationtags | Set | Defines optional attributes that rely on location tags .e.g. 'trunk' will enable highway="trunk" support for the profile ### process_node(profile, node, result, relations) Process an OSM node to determine whether this node is a barrier or can be passed and whether passing it incurs a delay. From 6c7fb2a1b69943e153695bfa4a4e31aac449d106 Mon Sep 17 00:00:00 2001 From: tombay Date: Mon, 7 Oct 2024 10:27:22 +1100 Subject: [PATCH 6/8] restore cargo bike exclusion pull/7044 --- profiles/bicycle.lua | 51 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/profiles/bicycle.lua b/profiles/bicycle.lua index bf37d9d0f66..4b3622eff55 100644 --- a/profiles/bicycle.lua +++ b/profiles/bicycle.lua @@ -36,6 +36,10 @@ function setup() turn_bias = 1.4, use_public_transport = true, + -- Exclude narrow ways, in particular to route with cargo bike + width = nil, -- Cargo bike could 0.5 width, in meters + exclude_cargo_bike = false, + allowed_start_modes = Set { mode.cycling, mode.pushing_bike @@ -230,7 +234,6 @@ function setup() uselocationtags = Set { -- 'trunk' } - } end @@ -255,6 +258,27 @@ function process_node(profile, node, result) end end + if profile.exclude_cargo_bike then + local cargo_bike = node:get_value_by_key("cargo_bike") + if cargo_bike and cargo_bike == "no" then + result.barrier = true + end + end + + -- width + if profile.width then + -- From barrier=cycle_barrier or other barriers + local maxwidth_physical = node:get_value_by_key("maxwidth:physical") + local maxwidth_physical_meter = maxwidth_physical and Measure.parse_value_meters(maxwidth_physical) or 99 + local opening = node:get_value_by_key("opening") + local opening_meter = opening and Measure.parse_value_meters(opening) or 99 + local width_meter = math.min(maxwidth_physical_meter, opening_meter) + + if width_meter and width_meter < profile.width then + result.barrier = true + end + end + -- check if node is a traffic light result.traffic_lights = TrafficSignal.get_value(node) end @@ -311,6 +335,8 @@ function handle_bicycle_tags(profile,way,result,data) bike_push_handler(profile,way,result,data) + -- width should be after bike_push + width_handler(profile,way,result,data) -- maxspeed limit( result, data.maxspeed, data.maxspeed_forward, data.maxspeed_backward ) @@ -376,10 +402,10 @@ function speed_handler(profile,way,result,data) data.way_type_allows_pushing = true elseif profile.bicycle_speeds[data.highway] then -- regular ways - -- check trunk result.forward_speed = profile.bicycle_speeds[data.highway] result.backward_speed = profile.bicycle_speeds[data.highway] data.way_type_allows_pushing = true + -- check trunk elseif profile.trunk_speeds[data.highway] and profile.uselocationtags and profile.uselocationtags.trunk then if not way:get_location_tag(data.highway) or way:get_location_tag(data.highway) ~= "no" then result.forward_speed = profile.trunk_speeds[data.highway] @@ -472,6 +498,27 @@ function cycleway_handler(profile,way,result,data) end end +function width_handler(profile,way,result,data) + if profile.exclude_cargo_bike then + local cargo_bike = way:get_value_by_key("cargo_bike") + if cargo_bike and cargo_bike == "no" then + result.forward_mode = mode.inaccessible + result.backward_mode = mode.inaccessible + end + end + + if profile.width then + local width = way:get_value_by_key("width") + if width then + local width_meter = Measure.parse_value_meters(width) + if width_meter and width_meter < profile.width then + result.forward_mode = mode.inaccessible + result.backward_mode = mode.inaccessible + end + end + end +end + function bike_push_handler(profile,way,result,data) -- pushing bikes - if no other mode found if result.forward_mode == mode.inaccessible or result.backward_mode == mode.inaccessible or From 91f2713542c4a9b495c83fd9a3f70b8ae780f668 Mon Sep 17 00:00:00 2001 From: tombay Date: Thu, 10 Oct 2024 12:47:59 +1100 Subject: [PATCH 7/8] Fix entry for PR 7049 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9990ea8c1de..0ce50906523 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -80,7 +80,7 @@ - Profiles: - FIXED: Bicycle and foot profiles now don't route on proposed ways [#6615](https://github.com/Project-OSRM/osrm-backend/pull/6615) - ADDED: Add optional support of cargo bike exclusion and width to bicyle profile [#7044](https://github.com/Project-OSRM/osrm-backend/pull/7044) - - FIXED: foot and bicycle profiles should support trunk access for some countries.[#6710 #6008 #6697](https://github.com/Project-OSRM/osrm-backend/pulls/7049) + - FIXED: Support country trunk access in bicycle and foot profiles [#7049](https://github.com/Project-OSRM/osrm-backend/pull/7049) - Routing: - FIXED: Fix adding traffic signal penalties during compression [#6419](https://github.com/Project-OSRM/osrm-backend/pull/6419) - FIXED: Correctly handle compressed traffic signals. [#6724](https://github.com/Project-OSRM/osrm-backend/pull/6724) From d61344990b167ed647ea1d701a37b4a3e9734fb8 Mon Sep 17 00:00:00 2001 From: tombay Date: Wed, 30 Oct 2024 08:29:44 +1100 Subject: [PATCH 8/8] based on PR 7039 - remove road access --- profiles/bicycle.lua | 1 - profiles/foot.lua | 1 - 2 files changed, 2 deletions(-) diff --git a/profiles/bicycle.lua b/profiles/bicycle.lua index 4b3622eff55..136f5d2d97b 100644 --- a/profiles/bicycle.lua +++ b/profiles/bicycle.lua @@ -135,7 +135,6 @@ function setup() residential = default_speed, unclassified = default_speed, living_street = default_speed, - road = default_speed, service = default_speed, track = 12, path = 13 diff --git a/profiles/foot.lua b/profiles/foot.lua index 2b2808ec7fa..8d5bc8aa255 100644 --- a/profiles/foot.lua +++ b/profiles/foot.lua @@ -90,7 +90,6 @@ function setup() tertiary_link = walking_speed, unclassified = walking_speed, residential = walking_speed, - road = walking_speed, living_street = walking_speed, service = walking_speed, track = walking_speed,