[gnome-maps] routes: Add roundabout support



commit 89ec8fd4f3fafc80d0f3d6c658c165c132eb262e
Author: Prashant Tyagi <prashanttyagi221295 gmail com>
Date:   Mon Jan 11 19:32:50 2016 +0530

    routes: Add roundabout support
    
    Add roundabout support to route service
    
    https://bugzilla.gnome.org/show_bug.cgi?id=745242

 data/icons/Makefile.am                             |    9 ++
 ..._32x32_maps-direction-roundabout-0-symbolic.svg |   82 ++++++++++++++++++++
 ...2x32_maps-direction-roundabout-135-symbolic.svg |   81 +++++++++++++++++++
 ...2x32_maps-direction-roundabout-180-symbolic.svg |   81 +++++++++++++++++++
 ...2x32_maps-direction-roundabout-225-symbolic.svg |   81 +++++++++++++++++++
 ...2x32_maps-direction-roundabout-270-symbolic.svg |   81 +++++++++++++++++++
 ...2x32_maps-direction-roundabout-315-symbolic.svg |   81 +++++++++++++++++++
 ...32x32_maps-direction-roundabout-45-symbolic.svg |   81 +++++++++++++++++++
 ...32x32_maps-direction-roundabout-90-symbolic.svg |   82 ++++++++++++++++++++
 ...ps_32x32_maps-direction-roundabout-symbolic.svg |   20 +++++
 src/route.js                                       |   33 +++++++-
 src/routeService.js                                |   10 ++-
 12 files changed, 715 insertions(+), 7 deletions(-)
---
diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am
index 61f4325..f4fd634 100644
--- a/data/icons/Makefile.am
+++ b/data/icons/Makefile.am
@@ -25,6 +25,15 @@ private_icons =                                                              \
        hicolor_apps_32x32_maps-direction-continue-symbolic.svg         \
        hicolor_apps_32x32_maps-direction-slightright-symbolic.svg      \
        hicolor_apps_32x32_maps-direction-right-symbolic.svg            \
+       hicolor_apps_32x32_maps-direction-roundabout-symbolic.svg       \
+       hicolor_apps_32x32_maps-direction-roundabout-0-symbolic.svg     \
+       hicolor_apps_32x32_maps-direction-roundabout-45-symbolic.svg    \
+       hicolor_apps_32x32_maps-direction-roundabout-90-symbolic.svg    \
+       hicolor_apps_32x32_maps-direction-roundabout-135-symbolic.svg   \
+       hicolor_apps_32x32_maps-direction-roundabout-180-symbolic.svg   \
+       hicolor_apps_32x32_maps-direction-roundabout-225-symbolic.svg   \
+       hicolor_apps_32x32_maps-direction-roundabout-270-symbolic.svg   \
+       hicolor_apps_32x32_maps-direction-roundabout-315-symbolic.svg   \
        hicolor_apps_32x32_maps-direction-sharpright-symbolic.svg       \
        hicolor_apps_16x16_layers-button-symbolic.svg                   \
        hicolor_apps_16x16_route-button-symbolic.svg                    \
diff --git a/data/icons/hicolor_apps_32x32_maps-direction-roundabout-0-symbolic.svg 
b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-0-symbolic.svg
new file mode 100644
index 0000000..1c429d1
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-0-symbolic.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="32px"
+   height="32px"
+   id="svg13790"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="direction-roundabout-360.svg"
+   inkscape:export-filename="/home/andreasn/SparkleShare/gnome-icons/maps-symbolic/direction-roundabout.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs13792" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313708"
+     inkscape:cx="-9.8326586"
+     inkscape:cy="6.8786964"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:snap-global="true"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true"
+     inkscape:bbox-paths="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     showborder="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1016"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:bbox-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid13798" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata13795">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.99999881;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-back
 ground:accumulate"
+       d="m 16.154297,8 c 4.394589,0 8,3.60541 8,8 0,4.39459 -3.605411,8 -8,8 -4.394589,0 
-8.0000001,-3.60541 -8.0000001,-8 0,-4.39459 3.6054111,-8 8.0000001,-8 z m 0,4 c -2.232829,0 -4,1.76717 -4,4 
0,2.23283 1.767171,4 4,4 2.232829,0 4,-1.76717 4,-4 0,-2.23283 -1.767171,-4 -4,-4 z"
+       id="path4136-5-4-9-7-7-3"
+       inkscape:connector-curvature="0" />
+    <path
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+       d="m 15.99414,32 -5.01562,-6.99609 3.00195,0 0,-2.51563 4.00391,1.20899 0,1.30664 3.02734,0 z"
+       id="rect13805-3-4-8-8-8-7-2-9-0"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccc" />
+  </g>
+</svg>
diff --git a/data/icons/hicolor_apps_32x32_maps-direction-roundabout-135-symbolic.svg 
b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-135-symbolic.svg
new file mode 100644
index 0000000..3f4f0ea
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-135-symbolic.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="32px"
+   height="32px"
+   id="svg13790"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="roundabout-135.svg"
+   inkscape:export-filename="/home/andreasn/SparkleShare/gnome-icons/maps-symbolic/direction-roundabout.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs13792" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8284271"
+     inkscape:cx="-73.447909"
+     inkscape:cy="36.618372"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:snap-global="true"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true"
+     inkscape:bbox-paths="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     showborder="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1016"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:bbox-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid13798" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata13795">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.3;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.99999881;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-ba
 ckground:accumulate"
+       d="m 16.060547,9.02539 c -4.394589,0 -8,3.60541 -8,8 0,4.39459 3.605411,8 8,8 4.394589,0 8,-3.60541 
8,-8 0,-4.39459 -3.605411,-8 -8,-8 z m 0,4 c 2.232829,0 4,1.76717 4,4 0,2.23283 -1.767171,4 -4,4 -2.232829,0 
-4,-1.76717 -4,-4 0,-2.23283 1.767171,-4 4,-4 z"
+       id="path4136-5-4-9-7"
+       inkscape:connector-curvature="0" />
+    <path
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+       d="m 28,5 -8.494141,1.40039 2.128907,2.12891 -2.550782,2.53711 a 2.0002,2.0002 0 0 0 
-0.232422,3.09375 c 1.176924,1.14627 1.5347,2.87854 0.90625,4.39648 -0.628449,1.51794 -2.105289,2.48986 
-3.748046,2.46875 a 2.0002,2.0002 0 0 0 -2.027344,2.1875 l 0,4.82227 4.003906,0 0,-3.26368 c 
2.423278,-0.60481 4.48292,-2.30911 5.466797,-4.68554 0.982287,-2.3726 0.73062,-5.02905 -0.550781,-7.16797 l 
1.554687,-1.56641 2.142578,2.14258 L 28,5 Z"
+       id="rect13805-3-4-8-8-8-7-2-9-98-8-5"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/data/icons/hicolor_apps_32x32_maps-direction-roundabout-180-symbolic.svg 
b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-180-symbolic.svg
new file mode 100644
index 0000000..03c5744
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-180-symbolic.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="32px"
+   height="32px"
+   id="svg13790"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="direction-roundabout-180.svg"
+   inkscape:export-filename="/home/andreasn/SparkleShare/gnome-icons/maps-symbolic/direction-roundabout.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs13792" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7.9999999"
+     inkscape:cx="-8.9119311"
+     inkscape:cy="26.304937"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:snap-global="true"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true"
+     inkscape:bbox-paths="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     showborder="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1016"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:bbox-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid13798" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata13795">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.3;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.99999881;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-ba
 ckground:accumulate"
+       d="m 15.93945,9.02539 c -4.39459,0 -8,3.60541 -8,8 0,4.39459 3.60541,8 8,8 4.39459,0 8,-3.60541 8,-8 
0,-4.39459 -3.60541,-8 -8,-8 z m 0,4 c 2.23283,0 4,1.76717 4,4 0,2.23283 -1.76717,4 -4,4 -2.23283,0 
-4,-1.76717 -4,-4 0,-2.23283 1.76717,-4 4,-4 z"
+       id="path4136-5"
+       inkscape:connector-curvature="0" />
+    <path
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+       d="m 15.99414,1 -5.01562,6.99609 3.00195,0 0,2.51563 a 2.0002,2.0002 0 0 0 1.95898,2.51367 c 
2.22225,0 3.98561,1.75241 4,3.97461 0.0144,2.2222 -1.72716,3.99661 -3.94922,4.02539 a 2.0002,2.0002 0 0 0 
-1.97656,2.14063 l 0,4.86914 4.00391,0 0,-3.29493 c 3.41751,-0.92897 5.94579,-4.07401 5.92187,-7.76562 
-0.0237,-3.6678 -2.55911,-6.76404 -5.95507,-7.67188 l 0,-1.30664 3.02734,0 L 15.99414,1 Z"
+       id="rect13805-3-4-8-8-8-7-2-9"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/data/icons/hicolor_apps_32x32_maps-direction-roundabout-225-symbolic.svg 
b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-225-symbolic.svg
new file mode 100644
index 0000000..3cfcbaa
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-225-symbolic.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="32px"
+   height="32px"
+   id="svg13790"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="direction-roundabout-225.svg"
+   inkscape:export-filename="/home/andreasn/SparkleShare/gnome-icons/maps-symbolic/direction-roundabout.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs13792" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8284271"
+     inkscape:cx="-36.077693"
+     inkscape:cy="36.618372"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:snap-global="true"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true"
+     inkscape:bbox-paths="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     showborder="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1016"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:bbox-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid13798" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata13795">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.3;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.99999881;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-ba
 ckground:accumulate"
+       d="m 15.93945,9.02539 c -4.39459,0 -8,3.60541 -8,8 0,4.39459 3.60541,8 8,8 4.394592,0 
8.000003,-3.60541 8.000003,-8 0,-4.39459 -3.605411,-8 -8.000003,-8 z m 0,4 c 2.23283,0 4,1.76717 4,4 
0,2.23283 -1.76717,4 -4,4 -2.23283,0 -4,-1.76717 -4,-4 0,-2.23283 1.76717,-4 4,-4 z"
+       id="path4136-5-4-9"
+       inkscape:connector-curvature="0" />
+    <path
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+       d="m 4,5 1.40039,8.49414 2.14063,-2.14062 2.5996,2.61523 a 2.000528,2.000528 0 0 0 2.99024,0.20898 c 
1.28895,-1.27051 3.2436,-1.52092 4.81055,-0.61523 1.56694,0.90569 2.324714,2.72353 1.86718,4.47461 
-0.45751,1.75108 -2.00865,2.96484 -3.81836,2.98828 a 2.0002,2.0002 0 0 0 -1.97656,2.14063 l 0,4.86914 
4.00391,0 0,-3.28516 c 2.72255,-0.73556 4.925689,-2.88265 5.662108,-5.70117 0.907891,-3.47481 
-0.62887,-7.15199 -3.738278,-8.94922 -1.55472,-0.89862 -3.3192,-1.22257 -5.01563,-1.00586 -1.04227,0.13314 
-2.05685,0.47331 -2.98242,1.00586 L 10.36523,8.5293 12.49414,6.40039 4,5 Z"
+       id="rect13805-3-4-8-8-8-7-2-9-98-8"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/data/icons/hicolor_apps_32x32_maps-direction-roundabout-270-symbolic.svg 
b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-270-symbolic.svg
new file mode 100644
index 0000000..c5bcbf6
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-270-symbolic.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="32px"
+   height="32px"
+   id="svg13790"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="direction-roundabout-270.svg"
+   inkscape:export-filename="/home/andreasn/SparkleShare/gnome-icons/maps-symbolic/direction-roundabout.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs13792" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8284271"
+     inkscape:cx="-2.7372306"
+     inkscape:cy="36.618372"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:snap-global="true"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true"
+     inkscape:bbox-paths="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     showborder="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1016"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:bbox-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid13798" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata13795">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.3;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.99999881;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-ba
 ckground:accumulate"
+       d="m 15.93945,9.02539 c -4.39459,0 -8,3.60541 -8,8 0,4.39459 3.60541,8 8,8 4.39459,0 8,-3.60541 8,-8 
0,-4.39459 -3.60541,-8 -8,-8 z m 0,4 c 2.23283,0 4,1.76717 4,4 0,2.23283 -1.76717,4 -4,4 -2.23283,0 
-4,-1.76717 -4,-4 0,-2.23283 1.76717,-4 4,-4 z"
+       id="path4136-5-4"
+       inkscape:connector-curvature="0" />
+    <path
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+       d="m 15.9043,9.02539 c -3.69969,0.016 -6.82237,2.58831 -7.70703,6.02539 l -1.24024,0 0,-3.04492 
-6.99609,5.01562 6.99609,5.01758 0,-2.98242 3.04297,0 0,-0.006 a 2.0002,2.0002 0 0 0 1.93945,-2.02539 c 
0,-2.22577 1.75668,-3.99039 3.98243,-4 2.22574,-0.01 3.99835,1.73916 4.01757,3.96484 0.0192,2.22569 
-1.72363,4.00633 -3.94922,4.03516 a 2.0002,2.0002 0 0 0 -1.97656,2.14063 l 0,4.86914 4.00391,0 0,-3.29493 c 
3.42389,-0.93026 5.95382,-4.08469 5.92187,-7.7832 -0.0378,-4.38126 -3.65377,-7.95056 -8.03515,-7.93164 z"
+       id="rect13805-3-4-8-8-8-7-2-9-98"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/data/icons/hicolor_apps_32x32_maps-direction-roundabout-315-symbolic.svg 
b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-315-symbolic.svg
new file mode 100644
index 0000000..73fa4e1
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-315-symbolic.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="32px"
+   height="32px"
+   id="svg13790"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="roundabout-315.svg"
+   inkscape:export-filename="/home/andreasn/SparkleShare/gnome-icons/maps-symbolic/direction-roundabout.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs13792" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8284271"
+     inkscape:cx="-115.87432"
+     inkscape:cy="36.618372"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:snap-global="true"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true"
+     inkscape:bbox-paths="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     showborder="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1016"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:bbox-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid13798" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata13795">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.3;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.99999881;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-ba
 ckground:accumulate"
+       d="m 15.939453,9.02539 c -4.394589,0 -8,3.60541 -8,8 0,4.39459 3.605411,8 8,8 4.394589,0 8,-3.60541 
8,-8 0,-4.39459 -3.605411,-8 -8,-8 z m 0,4 c 2.232829,0 4,1.76717 4,4 0,2.23283 -1.767171,4 -4,4 -2.232829,0 
-4,-1.76717 -4,-4 0,-2.23283 1.767171,-4 4,-4 z"
+       id="path4136-5-4-9-7-7"
+       inkscape:connector-curvature="0" />
+    <path
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+       d="m 16.140625,9.03125 c -2.672801,-0.002 -4.548389,1.05205 -5.876953,2.35547 -2.205805,2.22014 
-2.881302,5.50381 -1.839844,8.37305 L 7.541016,20.64648 5.400391,18.50586 4,27 l 8.494141,-1.40039 
-2.185547,-2.18555 1.833984,-1.96094 -0.002,-0.002 c 0.651051,-0.63804 0.788389,-1.63555 0.333984,-2.42579 
-0.907577,-1.57197 -0.65239,-3.5307 0.626953,-4.81836 1.279348,-1.28765 3.236638,-1.55558 4.814454,-0.6582 
1.577815,0.89738 2.349227,2.71682 1.896484,4.47461 -0.452743,1.75779 -2.007262,2.97844 -3.822266,3.00195 
-1.375351,0.0111 -2.026131,1.07696 -1.976562,2.10547 l 0,4.9043 4.003906,0 0,-3.28711 C 20.74825,24.00941 
22.956499,21.85179 23.6855,19.02143 24.583842,15.53359 23.025221,11.85281 19.894484,10.07221 
18.720458,9.40448 17.429288,9.06236 16.140578,9.03119 Z"
+       id="rect13805-3-4-8-8-8-7-2-9-98-8-5-9"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/data/icons/hicolor_apps_32x32_maps-direction-roundabout-45-symbolic.svg 
b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-45-symbolic.svg
new file mode 100644
index 0000000..b92d3e6
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-45-symbolic.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="32px"
+   height="32px"
+   id="svg13790"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="roundabout-45.svg"
+   inkscape:export-filename="/home/andreasn/SparkleShare/gnome-icons/maps-symbolic/direction-roundabout.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs13792" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8284271"
+     inkscape:cx="-125.58813"
+     inkscape:cy="34.345249"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:snap-global="true"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true"
+     inkscape:bbox-paths="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     showborder="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1016"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:bbox-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid13798" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata13795">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.3;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.99999881;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-ba
 ckground:accumulate"
+       d="m 16.154297,9.02539 c 4.394589,0 8,3.60541 8,8 0,4.39459 -3.605411,8 -8,8 -4.394589,0 
-8.0000001,-3.60541 -8.0000001,-8 0,-4.39459 3.6054111,-8 8.0000001,-8 z m 0,4 c -2.232829,0 -4,1.76717 -4,4 
0,2.23283 1.767171,4 4,4 2.232829,0 4,-1.76717 4,-4 0,-2.23283 -1.767171,-4 -4,-4 z"
+       id="path4136-5-4-9-7-7-3"
+       inkscape:connector-curvature="0" />
+    <path
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+       d="M 21.212891,18.14453 A 2.0002,2.0002 0 0 0 19.5625,19.11914 c -0.738995,1.20259 -2.047602,1.92463 
-3.458984,1.90625 a 2.0002,2.0002 0 0 0 -2.027344,2.17383 l 0,4.83594 4.003906,0 0,-3.2461 c 
1.241341,-0.30851 2.389795,-0.91289 3.34961,-1.7539 l 0.355468,0.3789 -2.185547,2.18555 L 28.09375,27 l 
-1.400391,-8.49414 -2.140625,2.14062 -1.625,-1.63476 a 2.0002,2.0002 0 0 0 -1.714843,-0.86719 z"
+       id="rect13805-3-4-8-8-8-7-2-9-98-8-5-9-0"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/data/icons/hicolor_apps_32x32_maps-direction-roundabout-90-symbolic.svg 
b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-90-symbolic.svg
new file mode 100644
index 0000000..eb93b7b
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-90-symbolic.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="32px"
+   height="32px"
+   id="svg13790"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="direction-roundabout-90.svg"
+   inkscape:export-filename="/home/andreasn/SparkleShare/gnome-icons/maps-symbolic/direction-roundabout.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs13792" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7.9999999"
+     inkscape:cx="20.126651"
+     inkscape:cy="20.713054"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:snap-global="true"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true"
+     inkscape:bbox-paths="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     showborder="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1016"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:bbox-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid13798" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata13795">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.3;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.99999881;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-ba
 ckground:accumulate"
+       d="m 15.93945,9.02539 c -4.39459,0 -8,3.60541 -8,8 0,4.39459 3.60541,8 8,8 4.39459,0 8,-3.60541 8,-8 
0,-4.39459 -3.60541,-8 -8,-8 z m 0,4 c 2.23283,0 4,1.76717 4,4 0,2.23283 -1.76717,4 -4,4 -2.23283,0 
-4,-1.76717 -4,-4 0,-2.23283 1.76717,-4 4,-4 z"
+       id="path4136-5-6"
+       inkscape:connector-curvature="0" />
+    <path
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+       d="m 24.99609,11.99023 0,3.04493 -2.67382,0 c -1.43712,0 -2.36664,1.01862 -2.38282,1.99023 0,2.21168 
-1.73772,3.97135 -3.94922,4 -1.15255,0.0108 -2.05753,0.99087 -1.97656,2.14063 l 0,4.86914 4.00391,0 
0,-3.28711 C 20.7862,23.99533 22.96613,21.7804 23.68164,19 l 1.31445,0 0,3.02344 6.99805,-5.01758 z"
+       id="rect13805-3-4-8-8-8-7-2-9-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+  </g>
+</svg>
diff --git a/data/icons/hicolor_apps_32x32_maps-direction-roundabout-symbolic.svg 
b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-symbolic.svg
new file mode 100644
index 0000000..1178640
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_maps-direction-roundabout-symbolic.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/"; xmlns:cc="http://creativecommons.org/ns#"; 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"; xmlns:svg="http://www.w3.org/2000/svg"; 
xmlns="http://www.w3.org/2000/svg"; xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"; 
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"; width="32px" height="32px" id="svg13790" 
version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="direction-roundabout-generic.svg" 
inkscape:export-filename="/home/andreasn/SparkleShare/gnome-icons/maps-symbolic/direction-roundabout.png" 
inkscape:export-xdpi="90" inkscape:export-ydpi="90">
+  <defs id="defs13792"/>
+  <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" 
inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="16" inkscape:cx="17.723175" 
inkscape:cy="19.451697" inkscape:current-layer="layer1" showgrid="false" inkscape:grid-bbox="true" 
inkscape:document-units="px" inkscape:snap-global="true" inkscape:snap-nodes="false" 
inkscape:snap-bbox="true" inkscape:bbox-paths="true" showguides="true" inkscape:guide-bbox="true" 
showborder="true" inkscape:window-width="1920" inkscape:window-height="1016" inkscape:window-x="0" 
inkscape:window-y="27" inkscape:window-maximized="1" inkscape:bbox-nodes="true">
+    <inkscape:grid type="xygrid" id="grid13798"/>
+  </sodipodi:namedview>
+  <metadata id="metadata13795">
+    <rdf:RDF>
+      <cc:Work rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <dc:title/>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer">
+    <path 
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.99999881;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-b
 ackground:accumulate" d="M 14 4 L 14 8.2578125 C 11.206553 8.9876483 8.995202 11.204465 8.265625 14 L 4 14 L 
4 18 L 8.2578125 18 C 8.9876483 20.793448 11.204465 23.004798 14 23.734375 L 14 28 L 18 28 L 18 23.734375 C 
20.795535 23.004798 23.012352 20.793448 23.742188 18 L 28 18 L 28 14 L 23.742188 14 C 23.012352 11.206552 
20.795535 8.9952018 18 8.265625 L 18 4 L 14 4 z M 16 12 C 18.232829 12 20 13.76717 20 16 C 20 18.23283 
18.232829 20 16 20 C 13.767171 20 12 18.23283 12 16 C 12 13.76717 13.767171 12 16 12 z " 
id="path4136-5-4-9-7-7-3"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/src/route.js b/src/route.js
index 50a36a5..61df3ae 100644
--- a/src/route.js
+++ b/src/route.js
@@ -34,6 +34,7 @@ const TurnPointType = {
     SHARP_RIGHT:   6,
     END:           7,
     VIA:           8,
+    ROUNDABOUT:    9,
 
     // This one is not in GraphHopper, so choose
     // a reasonably unlikely number for this
@@ -79,12 +80,12 @@ Utils.addSignalMethods(Route.prototype);
 const TurnPoint = new Lang.Class({
     Name: 'TurnPoint',
 
-    _init: function({ coordinate, type, distance, instruction }) {
+    _init: function({ coordinate, type, distance, instruction, turnAngle }) {
         this.coordinate = coordinate;
         this._type = type;
         this.distance = distance;
         this.instruction = instruction;
-        this.iconName = this._getIconName();
+        this.iconName = this._getIconName(turnAngle);
     },
 
     get type() {
@@ -97,7 +98,7 @@ const TurnPoint = new Lang.Class({
             || this._type === TurnPointType.END;
     },
 
-    _getIconName: function() {
+    _getIconName: function(turnAngle) {
         switch(this._type) {
         case TurnPointType.SHARP_LEFT:   return 'maps-direction-sharpleft-symbolic';
         case TurnPointType.LEFT:         return 'maps-direction-left-symbolic';
@@ -109,7 +110,33 @@ const TurnPoint = new Lang.Class({
         case TurnPointType.START:        return 'maps-point-start-symbolic';
         case TurnPointType.VIA:          return 'maps-point-end-symbolic';
         case TurnPointType.END:          return 'maps-point-end-symbolic';
+        case TurnPointType.ROUNDABOUT:   return this._getRoundaboutIconName(turnAngle);
         default:                         return '';
         }
+    },
+
+    _getRoundaboutIconName: function(turnAngle) {
+        /*
+         * To map turnAngle with closest roundabout
+         * turning angle symbol available. The Algorithm
+         * calculates the minimum of absolute difference
+         * between turnAngle and the angle of which map
+         * has turning symbols.
+         */
+        let minDiff = 2 * Math.PI;
+        let angle = 0;
+        if (turnAngle === null)
+            return 'maps-direction-roundabout-symbolic';
+
+        if (turnAngle < 0)
+            turnAngle += 2 * Math.PI;
+
+        for (let x = 0; x < 360; x += 45) {
+            if (Math.abs(turnAngle - (x / 180) * Math.PI) < minDiff) {
+                minDiff = Math.abs(turnAngle - (x / 180) * Math.PI);
+                angle = x;
+            }
+        }
+        return 'maps-direction-roundabout-' + angle + '-symbolic';
     }
 });
diff --git a/src/routeService.js b/src/routeService.js
index c1d2880..8424c5e 100644
--- a/src/routeService.js
+++ b/src/routeService.js
@@ -166,24 +166,26 @@ const GraphHopper = new Lang.Class({
                                                type:        Route.TurnPointType.START,
                                                distance:    0,
                                                instruction: _("Start!"),
-                                               time:        0
+                                               time:        0,
+                                               turnAngle:   0
                                              });
         let rest = instructions.map(this._createTurnPoint.bind(this, path));
         return [startPoint].concat(rest);
     },
 
-    _createTurnPoint: function(path, { text, distance, time, interval, sign }) {
+    _createTurnPoint: function(path, { text, distance, time, interval, sign, turn_angle }) {
         return new Route.TurnPoint({ coordinate:  path[interval[0]],
                                      type:        this._createTurnPointType(sign),
                                      distance:    distance,
                                      instruction: text,
-                                     time:        time });
+                                     time:        time,
+                                     turnAngle:   turn_angle});
     },
 
     _createTurnPointType: function(sign) {
         let type = sign + 3;
         let min  = Route.TurnPointType.SHARP_LEFT;
-        let max  = Route.TurnPointType.VIA;
+        let max  = Route.TurnPointType.ROUNDABOUT;
         if (min <= type && type <= max)
             return type;
         else



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]