Browse Source

Merge branch 'feature/feature-gl' into dev

# Conflicts:
#	package-lock.json
#	src/views/workManagement/manualRunProjectDetail.vue
#	vue.config.js
guolei 1 year ago
parent
commit
7e240a67bb

+ 1 - 1
package.json

@@ -90,4 +90,4 @@
     "> 1%",
     "last 2 versions"
   ]
-}
+}

File diff suppressed because it is too large
+ 3 - 0
public/css/font-awesome.min.css


File diff suppressed because it is too large
+ 0 - 0
public/css/notyf.min.css


BIN
public/glb/car.glb


File diff suppressed because it is too large
+ 5 - 0
public/hdr/050.hdr


File diff suppressed because it is too large
+ 5 - 0
public/hdr/christmas-sky.hdr


File diff suppressed because it is too large
+ 5 - 0
public/hdr/index8.hdr


BIN
public/hdr/robot_background.hdr


+ 58 - 0
public/index.html

@@ -5,14 +5,72 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+	<link rel="stylesheet" href="./css/notyf.min.css">
+	<link rel="stylesheet" href="./css/font-awesome.min.css">
     <!-- <title><%= htmlWebpackPlugin.options.title %></title> -->
     <title>云仿真测试系统</title>
+	<script src="./js/dat.gui.min.js"></script>
+	<script src="./js/libOpenDrive.js"></script>
+	<script src="./js/notyf.min.js"></script>
+	<script id="idVertexShader" type="x-shader/x-vertex">
+	    attribute vec4 id;
+	    varying vec4 vId;
+	
+	    void main() { 
+	        vId = id;
+	        gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
+	    }
+	</script>
+	
+	<script id="idFragmentShader" type="x-shader/x-vertex">
+	    varying vec4 vId;
+	    
+	    void main() {
+	        gl_FragColor = vId;
+	    }
+	</script>
+	
+	<script id="xyzVertexShader" type="x-shader/x-vertex">
+	    varying vec3 vXYZ;
+	
+	    void main() { 
+	        vXYZ = position;
+	        gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
+	    }
+	</script>
+	
+	<script id="xyzFragmentShader" type="x-shader/x-vertex">
+	    varying vec3 vXYZ;
+	    
+	    void main() {
+	        gl_FragColor = vec4(vXYZ, 1.0);
+	    }
+	</script>
+	
+	<script id="stVertexShader" type="x-shader/x-vertex">
+	    attribute vec2 st;
+	    varying vec2 vST;
+	
+	    void main() { 
+	        vST = st;
+	        gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
+	    }
+	</script>
+	
+	<script id="stFragmentShader" type="x-shader/x-vertex">
+	    varying vec2 vST;
+	    
+	    void main() {
+	        gl_FragColor = vec4(vST.x, vST.y, 0.0, 1.0);
+	    }
+	</script>
   </head>
   <body>
     <noscript>
       <strong>We're sorry but 仿真云平台 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
     </noscript>
     <div id="app"></div>
+	<script src="./js/controls.js"></script>
     <!-- built files will be auto injected -->
   </body>
 </html>

+ 236 - 0
public/js/InfiniteGridHelper.js

@@ -0,0 +1,236 @@
+// Author: Fyrestar https://mevedia.com (https://github.com/Fyrestar/THREE.InfiniteGridHelper)
+
+THREE.InfiniteGridHelper = function InfiniteGridHelper( size1, size2, color, distance, axes = 'xzy' ) {
+
+	color = color || new THREE.Color( 'white' );
+	size1 = size1 || 10;
+	size2 = size2 || 100;
+
+	distance = distance || 8000;
+
+
+
+	const planeAxes = axes.substr( 0, 2 );
+
+	const geometry = new THREE.PlaneBufferGeometry( 2, 2, 1, 1 );
+
+	const material = new THREE.ShaderMaterial( {
+
+		side: THREE.DoubleSide,
+
+		uniforms: {
+			uSize1: {
+				value: size1
+			},
+			uSize2: {
+				value: size2
+			},
+			uColor: {
+				value: color
+			},
+			uDistance: {
+				value: distance
+			}
+		},
+		transparent: true,
+		vertexShader: `
+           
+           varying vec3 worldPosition;
+		   
+           uniform float uDistance;
+           
+           void main() {
+           
+                vec3 pos = position.${axes} * uDistance;
+                pos.${planeAxes} += cameraPosition.${planeAxes};
+                
+                worldPosition = pos;
+                
+                gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0);
+           
+           }
+           `,
+
+
+		fragmentShader: `
+           
+           varying vec3 worldPosition;
+           
+           uniform float uSize1;
+           uniform float uSize2;
+           uniform vec3 uColor;
+           uniform float uDistance;
+            
+            
+            
+            float getGrid(float size) {
+            
+                vec2 r = worldPosition.${planeAxes} / size;
+                
+                
+                vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);
+                float line = min(grid.x, grid.y);
+                
+            
+                return 1.0 - min(line, 1.0);
+            }
+            
+           void main() {
+           
+                
+                  float d = 1.0 - min(distance(cameraPosition.${planeAxes}, worldPosition.${planeAxes}) / uDistance, 1.0);
+                
+                  float g1 = getGrid(uSize1);
+                  float g2 = getGrid(uSize2);
+                  
+                  
+                  gl_FragColor = vec4(uColor.rgb, mix(g2, g1, g1) * pow(d, 3.0));
+                  gl_FragColor.a = mix(0.5 * gl_FragColor.a, gl_FragColor.a, g2);
+                
+                  if ( gl_FragColor.a <= 0.0 ) discard;
+                
+           
+           }
+           
+           `,
+
+		extensions: {
+			derivatives: true
+		}
+
+	} );
+
+
+	THREE.Mesh.call( this, geometry, material );
+
+	this.frustumCulled = false;
+
+};
+
+THREE.InfiniteGridHelper.prototype = {
+	...THREE.Mesh.prototype,
+	...THREE.Object3D.prototype,
+	...THREE.EventDispatcher.prototype
+};
+
+if ( parseInt( THREE.REVISION ) > 126 ) {
+
+	class InfiniteGridHelper extends THREE.Mesh {
+
+		constructor ( size1, size2, color, distance, axes = 'xzy' ) {
+
+
+			color = color || new THREE.Color( 'white' );
+			size1 = size1 || 10;
+			size2 = size2 || 100;
+
+			distance = distance || 8000;
+
+
+
+			const planeAxes = axes.substr( 0, 2 );
+
+			const geometry = new THREE.PlaneBufferGeometry( 2, 2, 1, 1 );
+
+			const material = new THREE.ShaderMaterial( {
+
+				side: THREE.DoubleSide,
+
+				uniforms: {
+					uSize1: {
+						value: size1
+					},
+					uSize2: {
+						value: size2
+					},
+					uColor: {
+						value: color
+					},
+					uDistance: {
+						value: distance
+					}
+				},
+				transparent: true,
+				vertexShader: `
+           
+           varying vec3 worldPosition;
+		   
+           uniform float uDistance;
+           
+           void main() {
+           
+                vec3 pos = position.${axes} * uDistance;
+                pos.${planeAxes} += cameraPosition.${planeAxes};
+                
+                worldPosition = pos;
+                
+                gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0);
+           
+           }
+           `,
+
+
+				fragmentShader: `
+           
+           varying vec3 worldPosition;
+           
+           uniform float uSize1;
+           uniform float uSize2;
+           uniform vec3 uColor;
+           uniform float uDistance;
+            
+            
+            
+            float getGrid(float size) {
+            
+                vec2 r = worldPosition.${planeAxes} / size;
+                
+                
+                vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);
+                float line = min(grid.x, grid.y);
+                
+            
+                return 1.0 - min(line, 1.0);
+            }
+            
+           void main() {
+           
+                
+                  float d = 1.0 - min(distance(cameraPosition.${planeAxes}, worldPosition.${planeAxes}) / uDistance, 1.0);
+                
+                  float g1 = getGrid(uSize1);
+                  float g2 = getGrid(uSize2);
+                  
+                  
+                  gl_FragColor = vec4(uColor.rgb, mix(g2, g1, g1) * pow(d, 3.0));
+                  gl_FragColor.a = mix(0.5 * gl_FragColor.a, gl_FragColor.a, g2);
+                
+                  if ( gl_FragColor.a <= 0.0 ) discard;
+                
+           
+           }
+           
+           `,
+
+				extensions: {
+					derivatives: true
+				}
+
+			} );
+
+			super( geometry, material );
+
+			this.frustumCulled = false;
+
+		}
+
+	}
+	
+	Object.assign( InfiniteGridHelper.prototype, THREE.InfiniteGridHelper.prototype );
+
+	THREE.InfiniteGridHelper = InfiniteGridHelper;
+
+}
+
+module.exports.InfiniteGridHelper = THREE.InfiniteGridHelper
+// module.exports.InfiniteGridHelper  =THREE.InfiniteGridHelper;

+ 47 - 0
public/js/controls.js

@@ -0,0 +1,47 @@
+var PARAMS = {
+    load_file : () => { document.getElementById('xodr_file_input').click(); },
+    resolution : 0.02,
+    ref_line : true,
+    roadmarks : true,
+    wireframe : false,
+    spotlight : true,
+    fitView : () => { fitViewToObj(refline_lines); },
+    lateralProfile : true,
+    laneHeight : true,
+    reload_map : () => { reloadOdrMap(); },
+    view_mode : 'Default',
+};
+
+// const gui = new dat.GUI();
+// gui.add(PARAMS, 'load_file').name('📁 打开.xodr');
+// gui.add(PARAMS, 'resolution', { 低 : 1.0, 中等 : 0.3, 高 : 0.02 }).name('📏  细节级别').onChange((val) => {
+//     loadOdrMap(true, false);
+// });
+// gui.add(PARAMS, 'spotlight').name("🔦 开启聚光灯");
+// gui.add(PARAMS, 'fitView').name("⟲ 复位摄像机");
+
+// var gui_view_folder = gui.addFolder('查看');
+// gui_view_folder.add(PARAMS, 'view_mode', { '默认' : 'Default', '轮廓' : 'Outlines' }).name("查看模式").onChange((val) => {
+//     if (val == 'Default') {
+//         road_network_mesh.visible = true;
+//         roadmarks_mesh.visible = PARAMS.roadmarks;
+//     } else if (val == 'Outlines') {
+//         road_network_mesh.visible = false;
+//         roadmarks_mesh.visible = false;
+//     }
+// });
+// gui_view_folder.add(PARAMS, 'ref_line').name("参考线").onChange((val) => {
+//     refline_lines.visible = val;
+// });
+// gui_view_folder.add(PARAMS, 'roadmarks').name("路面标线").onChange((val) => {
+//     roadmarks_mesh.visible = val;
+//     roadmark_outline_lines.visible = val;
+// });
+// gui_view_folder.add(PARAMS, 'wireframe').name("显示线框").onChange((val) => {
+//     road_network_material.wireframe = val;
+// });
+
+// var gui_attributes_folder = gui.addFolder('加载属性');
+// gui_attributes_folder.add(PARAMS, 'lateralProfile').name("横向分布");
+// gui_attributes_folder.add(PARAMS, 'laneHeight').name("车道高度");
+// gui_attributes_folder.add(PARAMS, 'reload_map').name("重新加载地图");

File diff suppressed because it is too large
+ 12 - 0
public/js/dat.gui.min.js


File diff suppressed because it is too large
+ 2555 - 0
public/js/libOpenDrive.js


BIN
public/js/libOpenDrive.wasm


File diff suppressed because it is too large
+ 0 - 0
public/js/notyf.min.js


File diff suppressed because it is too large
+ 6 - 0
public/js/orbitcontrols.min.js


File diff suppressed because it is too large
+ 1 - 0
public/js/three.min.js


+ 2784 - 0
public/map/mine3.xodr

@@ -0,0 +1,2784 @@
+<?xml version="1.0" standalone="yes"?>
+<OpenDRIVE>
+    <header revMajor="1" revMinor="4" name="" version="1.00" date="Wed Mar 27 14:06:10 2024" north="0.0000000000000000e+00" south="0.0000000000000000e+00" east="0.0000000000000000e+00" west="0.0000000000000000e+00">
+    </header>
+    <road name="" length="1.0000000000000000e+01" id="7" junction="-1">
+        <link>
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="-2.0000000000000000e+01" y="2.0000000000000000e+01" hdg="-1.5707963267998624e+00" length="1.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.1197787143782139e+03" id="131" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="2" />
+            <successor elementType="junction" elementId="5" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="2.8000000000000000e+02" y="2.0000000000000000e+02" hdg="0.0000000000000000e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="2.0000000000000000e+01" x="2.9999999781449264e+02" y="2.0000000000000000e+02" hdg="-1.2414513861358500e-12" length="7.8539816339744831e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="9.8539816339744831e+01" x="3.4999999781443057e+02" y="1.4999999999993793e+02" hdg="-1.5707963267998650e+00" length="5.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4853981633974485e+02" x="3.4999999781418217e+02" y="1.0000000437151138e+02" hdg="-1.5707963267986234e+00" length="1.5707963267948966e+02">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="3.0561944901923448e+02" x="4.4999999781418217e+02" y="1.0000000437064206e+02" hdg="1.5707963267948948e+00" length="1.5000000000000000e+02">
+                <line/>
+            </geometry>
+            <geometry s="4.5561944901923448e+02" x="4.4999999781492738e+02" y="2.5000000437076622e+02" hdg="1.5707963267936531e+00" length="1.5707963267948966e+02">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="6.1269908169872417e+02" x="5.4999999781492738e+02" y="2.5000000437014523e+02" hdg="-1.5707963268048326e+00" length="1.5000000000000000e+02">
+                <line/>
+            </geometry>
+            <geometry s="7.6269908169872417e+02" x="5.4999999781343695e+02" y="1.0000000874196708e+02" hdg="-1.5707963268035909e+00" length="1.5707963267948966e+02">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="9.1977871437821386e+02" x="6.4999999781343695e+02" y="1.0000000874060109e+02" hdg="1.5707963267849603e+00" length="1.9999999999999997e+02">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.9325957145940458e+02" id="132" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="3" />
+            <successor elementType="road" elementId="133" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.0100000000000000e+03" y="2.0000000000000000e+02" hdg="3.1415926535897931e+00" length="1.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.0000000000000000e+01" x="9.9999999781436850e+02" y="2.0000000000000000e+02" hdg="3.1415926535885514e+00" length="5.2359877559829883e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="6.2359877559829883e+01" x="9.5669872840232767e+02" y="2.2500000000010752e+02" hdg="2.0943951023944365e+00" length="5.2359877559829883e+01">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="1.1471975511965977e+02" x="9.1339746039858210e+02" y="2.5000000000005377e+02" hdg="3.1415926535897931e+00" length="7.8539816339744831e+01">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.9325957145940458e+02" id="133" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="3" />
+            <successor elementType="road" elementId="132" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.0100000000000000e+03" y="2.0000000000000000e+02" hdg="3.1415926535897931e+00" length="1.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.0000000000000000e+01" x="1.0000000021855074e+03" y="2.0000000000000000e+02" hdg="-3.1415926535885514e+00" length="5.2359877559829883e+01">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="6.2359877559829883e+01" x="9.5669873277346665e+02" y="1.7500000298012475e+02" hdg="-2.0943951023944365e+00" length="5.2359877559829883e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="1.1471975511965977e+02" x="9.1339746039858221e+02" y="1.5000000298017849e+02" hdg="-3.1415926535897922e+00" length="7.8539816339744831e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.0570796326794898e+03" id="140" junction="-1">
+        <link>
+            <successor elementType="junction" elementId="5" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="3.0000000000000000e+02" y="5.0000000000000000e+01" hdg="3.1415926535897931e+00" length="2.0000000000000000e+02">
+                <line/>
+            </geometry>
+            <geometry s="2.0000000000000000e+02" x="9.9999997814368498e+01" y="5.0000000000000000e+01" hdg="3.1415926535885514e+00" length="7.8539816339744831e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="2.7853981633974485e+02" x="4.9999997814430586e+01" y="1.0000000000006212e+02" hdg="1.5707963267948959e+00" length="2.0000000000000000e+02">
+                <line/>
+            </geometry>
+            <geometry s="4.7853981633974485e+02" x="4.9999997814430728e+01" y="3.0000000000018628e+02" hdg="1.5707963267936544e+00" length="7.8539816339744831e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="5.5707963267948969e+02" x="9.9999997814492858e+01" y="3.5000000000012415e+02" hdg="-9.9342756243459007e-12" length="5.0000000000000000e+02">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.9325957145940458e+02" id="141" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="2" />
+            <successor elementType="road" elementId="142" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="2.6000000000000000e+02" y="2.0000000000000000e+02" hdg="3.1415926535897931e+00" length="1.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.0000000000000000e+01" x="2.4999999781436847e+02" y="2.0000000000000000e+02" hdg="3.1415926535885514e+00" length="5.2359877559829883e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="6.2359877559829883e+01" x="2.0669872840232779e+02" y="2.2500000000010752e+02" hdg="2.0943951023944365e+00" length="5.2359877559829883e+01">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="1.1471975511965977e+02" x="1.6339746039858215e+02" y="2.5000000000005377e+02" hdg="3.1415926535897931e+00" length="7.8539816339744831e+01">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.9325957145940458e+02" id="142" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="2" />
+            <successor elementType="road" elementId="141" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="2.6000000000000000e+02" y="2.0000000000000000e+02" hdg="3.1415926535897931e+00" length="1.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.0000000000000000e+01" x="2.5000000218550736e+02" y="2.0000000000000000e+02" hdg="-3.1415926535885514e+00" length="5.2359877559829883e+01">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="6.2359877559829883e+01" x="2.0669873277346665e+02" y="1.7500000298012475e+02" hdg="-2.0943951023944365e+00" length="5.2359877559829883e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="1.1471975511965977e+02" x="1.6339746039858224e+02" y="1.5000000298017849e+02" hdg="-3.1415926535897922e+00" length="7.8539816339744831e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.9325957145940458e+02" id="151" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="1" />
+            <successor elementType="road" elementId="152" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.0400000000000000e+03" y="5.5000000000000000e+02" hdg="0.0000000000000000e+00" length="1.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.0000000000000000e+01" x="1.0500000021856315e+03" y="5.5000000000000000e+02" hdg="1.2414513861358500e-12" length="5.2359877559829883e+01">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="6.2359877559829883e+01" x="1.0933012715976722e+03" y="5.7500000000010755e+02" hdg="1.0471975511965976e+00" length="1.3089969389957471e+02">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.9325957145940458e+02" id="152" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="1" />
+            <successor elementType="road" elementId="151" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.0400000000000000e+03" y="5.5000000000000000e+02" hdg="0.0000000000000000e+00" length="1.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.0000000000000000e+01" x="1.0499999978144926e+03" y="5.5000000000000000e+02" hdg="-1.2414513861358500e-12" length="5.2359877559829883e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="6.2359877559829883e+01" x="1.0933012672264092e+03" y="5.2499999850999131e+02" hdg="-1.0471975512015632e+00" length="1.3089969389957471e+02">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.0841593462708120e+03" id="159" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="1" />
+            <successor elementType="junction" elementId="6" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.0200000000000000e+03" y="5.5000000000000000e+02" hdg="3.1415926535897931e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="2.0000000000000000e+01" x="1.0000000000000000e+03" y="5.5000000000000000e+02" hdg="3.1415926535897931e+00" length="1.5000000000000000e+02">
+                <line/>
+            </geometry>
+            <geometry s="1.7000000000000000e+02" x="8.5000000218550849e+02" y="5.5000000000000000e+02" hdg="-3.1415926535885514e+00" length="1.5707971359132225e+02">
+                <arc curvature="1.9999989697990817e-02"/>
+            </geometry>
+            <geometry s="3.2707971359132227e+02" x="8.5000000218563264e+02" y="4.4999994848992753e+02" hdg="4.9681148084346208e-12" length="3.0000000000000000e+02">
+                <line/>
+            </geometry>
+            <geometry s="6.2707971359132227e+02" x="1.1499999999998770e+03" y="4.4999994849141797e+02" hdg="3.7265746044568004e-12" length="1.5707963267948966e+02">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="7.8415934627081197e+02" x="1.1500000000002494e+03" y="3.4999994849141797e+02" hdg="3.1415926535897931e+00" length="3.0000000000000000e+02">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="2.0000000000000000e+01" id="162" junction="1">
+        <link>
+            <predecessor elementType="road" elementId="151" contactPoint="start" />
+            <successor elementType="road" elementId="159" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.0400000000000000e+03" y="5.5000000000000000e+02" hdg="3.1415926535897931e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="2.0000000000000000e+01" id="165" junction="1">
+        <link>
+            <predecessor elementType="road" elementId="159" contactPoint="start" />
+            <successor elementType="road" elementId="152" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.0200000000000000e+03" y="5.5000000000000000e+02" hdg="0.0000000000000000e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.0556194490192347e+03" id="166" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="4" />
+            <successor elementType="junction" elementId="5" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="2.7000000000000000e+02" y="5.0000000000000000e+02" hdg="3.1415926535897931e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="2.0000000000000000e+01" x="2.5000000000000000e+02" y="5.0000000000000000e+02" hdg="3.1415926535897931e+00" length="1.5000000000000000e+02">
+                <line/>
+            </geometry>
+            <geometry s="1.7000000000000000e+02" x="9.9999997814368498e+01" y="5.0000000000000000e+02" hdg="3.1415926535885514e+00" length="1.5707963267948966e+02">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="3.2707963267948969e+02" x="9.9999997814492716e+01" y="6.0000000000000000e+02" hdg="-9.9342756243459007e-12" length="5.0000000000000006e+02">
+                <line/>
+            </geometry>
+            <geometry s="8.2707963267948981e+02" x="5.9999999841129568e+02" y="5.9999999999751594e+02" hdg="-1.1175060876666976e-11" length="7.8539816339744831e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="9.0561944901923459e+02" x="6.4999999841073691e+02" y="5.4999999999695717e+02" hdg="-1.5707963268097984e+00" length="1.5000000000000000e+02">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.9325957145940458e+02" id="167" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="4" />
+            <successor elementType="road" elementId="168" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="2.9000000000000000e+02" y="5.0000000000000000e+02" hdg="0.0000000000000000e+00" length="1.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.0000000000000000e+01" x="3.0000000218563150e+02" y="5.0000000000000000e+02" hdg="1.2414513861358500e-12" length="5.2359877559829883e+01">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="6.2359877559829883e+01" x="3.4330127159767221e+02" y="5.2500000000010755e+02" hdg="1.0471975511965976e+00" length="1.3089969389957471e+02">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.9325957145940458e+02" id="168" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="4" />
+            <successor elementType="road" elementId="167" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="2.9000000000000000e+02" y="5.0000000000000000e+02" hdg="0.0000000000000000e+00" length="1.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.0000000000000000e+01" x="2.9999999781449264e+02" y="5.0000000000000000e+02" hdg="-1.2414513861358500e-12" length="5.2359877559829883e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="6.2359877559829883e+01" x="3.4330126722640921e+02" y="4.7499999850999137e+02" hdg="-1.0471975512015632e+00" length="1.3089969389957471e+02">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="2.0000000000000000e+01" id="171" junction="4">
+        <link>
+            <predecessor elementType="road" elementId="166" contactPoint="start" />
+            <successor elementType="road" elementId="168" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="2.7000000000000000e+02" y="5.0000000000000000e+02" hdg="0.0000000000000000e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="2.0000000000000000e+01" id="174" junction="4">
+        <link>
+            <predecessor elementType="road" elementId="167" contactPoint="start" />
+            <successor elementType="road" elementId="166" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="2.9000000000000000e+02" y="5.0000000000000000e+02" hdg="3.1415926535897931e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="5.0000000000000000e+01" id="175" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="5" />
+            <successor elementType="junction" elementId="6" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="7.0000000000000000e+02" y="3.5000000000000000e+02" hdg="0.0000000000000000e+00" length="5.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092354309025481e+01" id="178" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="131" contactPoint="end" />
+            <successor elementType="road" elementId="175" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="6.4999999781542419e+02" y="3.0000000874060106e+02" hdg="1.5707963267948966e+00" length="1.4593745713159024e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593745713159024e+01" x="6.4999999781542419e+02" y="3.1459375445376008e+02" hdg="1.5707963267948966e+00" length="1.9634950652510192e+01">
+                <spiral curvStart="-0.0000000000000000e+00" curvEnd="-4.0000006992482080e-02"/>
+            </geometry>
+            <geometry s="3.4228696365669215e+01" x="6.5254203406506997e+02" y="3.3392806361188894e+02" hdg="1.1780972450974139e+00" length="1.9634950652510184e+01">
+                <arc curvature="-4.0000006992482080e-02"/>
+            </geometry>
+            <geometry s="5.3863647018179400e+01" x="6.6607193420353531e+02" y="3.4745796375035422e+02" hdg="3.9269908169996537e-01" length="1.9634950652510192e+01">
+                 <spiral curvStart="-4.0000006992482080e-02" curvEnd="-0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498597670689591e+01" x="6.8540624336166411e+02" y="3.5000000000000000e+02" hdg="0.0000000000000000e+00" length="1.4593756638335890e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="9.9999991256356111e+01" id="181" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="131" contactPoint="end" />
+            <successor elementType="road" elementId="166" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="6.4999999781542419e+02" y="3.0000000874060106e+02" hdg="1.5707963208566733e+00" length="9.9999991256356111e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092352123361451e+01" id="184" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="131" contactPoint="end" />
+            <successor elementType="road" elementId="140" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="6.4999999781542419e+02" y="3.0000000874060106e+02" hdg="1.5707963267948966e+00" length="1.4593745712297277e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593745712297277e+01" x="6.4999999781542419e+02" y="3.1459375445289834e+02" hdg="1.5707963267948966e+00" length="1.9634950651459260e+01">
+                <spiral curvStart="0.0000000000000000e+00" curvEnd="4.0000006994369987e-02"/>
+            </geometry>
+            <geometry s="3.4228696363756541e+01" x="6.4745796156593019e+02" y="3.3392806360999617e+02" hdg="1.9634954084898952e+00" length="1.9634950651459267e+01">
+                <arc curvature="4.0000006994369987e-02"/>
+            </geometry>
+            <geometry s="5.3863647015215804e+01" x="6.3392806142825191e+02" y="3.4745796374780900e+02" hdg="2.7488935718823755e+00" length="1.9634950651459260e+01">
+                 <spiral curvStart="4.0000006994369987e-02" curvEnd="0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498597666675067e+01" x="6.1459375227117926e+02" y="3.4999999999749508e+02" hdg="3.1415926535798571e+00" length="1.4593754456686383e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092352123701517e+01" id="187" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="140" contactPoint="end" />
+            <successor elementType="road" elementId="131" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="5.9999999781449287e+02" y="3.4999999999764009e+02" hdg="-1.4901857525728701e-11" length="1.4593754457211162e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593754457211162e+01" x="6.1459375227170403e+02" y="3.4999999999749508e+02" hdg="-1.4901857525728701e-11" length="1.9634950651388365e+01">
+                <spiral curvStart="-0.0000000000000000e+00" curvEnd="-4.0000006994767440e-02"/>
+            </geometry>
+            <geometry s="3.4228705108599527e+01" x="6.3392806142870290e+02" y="3.4745796374780241e+02" hdg="-3.9269908171238477e-01" length="1.9634950651388372e+01">
+                <arc curvature="-4.0000006994767440e-02"/>
+            </geometry>
+            <geometry s="5.3863655759987900e+01" x="6.4745796156626079e+02" y="3.3392806360997565e+02" hdg="-1.1780972451098330e+00" length="1.9634950651388365e+01">
+                 <spiral curvStart="-4.0000006994767440e-02" curvEnd="-0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498606411376272e+01" x="6.4999999781556915e+02" y="3.1459375445292631e+02" hdg="-1.5707963268097949e+00" length="1.4593745712325244e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.0000000218550713e+02" id="190" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="140" contactPoint="end" />
+            <successor elementType="road" elementId="175" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="5.9999999781449287e+02" y="3.4999999999764009e+02" hdg="2.3599113258492752e-11" length="1.0000000218550713e+02">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092359377591166e+01" id="193" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="140" contactPoint="end" />
+            <successor elementType="road" elementId="166" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="5.9999999781449287e+02" y="3.4999999999764009e+02" hdg="-1.4901857525728701e-11" length="1.4593748858545382e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593748858545382e+01" x="6.1459374667303825e+02" y="3.4999999999749508e+02" hdg="-1.4901857525728701e-11" length="1.9634954084898489e+01">
+                <spiral curvStart="0.0000000000000000e+00" curvEnd="3.9999999999950617e-02"/>
+            </geometry>
+            <geometry s="3.4228702943443871e+01" x="6.3392805921103991e+02" y="3.5254203669121858e+02" hdg="3.9269908168134116e-01" length="1.9634954084898482e+01">
+                <arc curvature="3.9999999999950617e-02"/>
+            </geometry>
+            <geometry s="5.3863657028342352e+01" x="6.4745796171490622e+02" y="3.6607193919461457e+02" hdg="1.1780972450763114e+00" length="1.9634954084898489e+01">
+                 <spiral curvStart="3.9999999999950617e-02" curvEnd="0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498611113240841e+01" x="6.4999999840902910e+02" y="3.8540625173260685e+02" hdg="1.5707963267800020e+00" length="1.4593748264350324e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092359377906490e+01" id="196" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="166" contactPoint="end" />
+            <successor elementType="road" elementId="140" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="6.4999999840924647e+02" y="3.9999999999695717e+02" hdg="-1.5707963267998624e+00" length="1.4593748264294959e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593748264294959e+01" x="6.4999999840924647e+02" y="3.8540625173266221e+02" hdg="-1.5707963267998624e+00" length="1.9634954084792287e+01">
+                <spiral curvStart="-0.0000000000000000e+00" curvEnd="-4.0000000000546342e-02"/>
+            </geometry>
+            <geometry s="3.4228702349087243e+01" x="6.4745796171524876e+02" y="3.6607193919486593e+02" hdg="-1.9634954084998304e+00" length="1.9634954084792295e+01">
+                <arc curvature="-4.0000000000546342e-02"/>
+            </geometry>
+            <geometry s="5.3863656433879541e+01" x="6.3392805921160641e+02" y="3.5254203669132454e+02" hdg="-2.7488935719022494e+00" length="1.9634954084792287e+01">
+                 <spiral curvStart="-4.0000000000546342e-02" curvEnd="-0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498610518671825e+01" x="6.1459374667372754e+02" y="3.4999999999749508e+02" hdg="3.1415926535798571e+00" length="1.4593748859234665e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="9.9999991256356111e+01" id="199" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="166" contactPoint="end" />
+            <successor elementType="road" elementId="131" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="6.4999999840924647e+02" y="3.9999999999695717e+02" hdg="-1.5707963327380856e+00" length="9.9999991256356111e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092360371945560e+01" id="202" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="166" contactPoint="end" />
+            <successor elementType="road" elementId="175" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="6.4999999840924647e+02" y="3.9999999999695717e+02" hdg="-1.5707963267998624e+00" length="1.4593748263555767e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593748263555767e+01" x="6.4999999840924647e+02" y="3.8540625173340140e+02" hdg="-1.5707963267948966e+00" length="1.9634954083679226e+01">
+                <spiral curvStart="0.0000000000000000e+00" curvEnd="4.0000000002434248e-02"/>
+            </geometry>
+            <geometry s="3.4228702347234993e+01" x="6.5254203510310026e+02" y="3.6607193919663814e+02" hdg="-1.1780972450986553e+00" length="1.9634954083679219e+01">
+                <arc curvature="4.0000000002434248e-02"/>
+            </geometry>
+            <geometry s="5.3863656430914212e+01" x="6.6607193760585767e+02" y="3.5254203669381354e+02" hdg="-3.9269908170368950e-01" length="1.9634954083679226e+01">
+                 <spiral curvStart="4.0000000002434248e-02" curvEnd="0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498610514593437e+01" x="6.8540625014264788e+02" y="3.5000000000000000e+02" hdg="0.0000000000000000e+00" length="1.4593749857352122e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092360372261595e+01" id="205" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="175" contactPoint="start" />
+            <successor elementType="road" elementId="166" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="7.0000000000000000e+02" y="3.5000000000000000e+02" hdg="3.1415926535897931e+00" length="1.4593749858041861e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593749858041861e+01" x="6.8540625014195814e+02" y="3.5000000000000000e+02" hdg="3.1415926535848273e+00" length="1.9634954083572961e+01">
+                <spiral curvStart="-0.0000000000000000e+00" curvEnd="-4.0000000003029973e-02"/>
+            </geometry>
+            <geometry s="3.4228703941614825e+01" x="6.6607193760531777e+02" y="3.5254203669395957e+02" hdg="2.7488935718848628e+00" length="1.9634954083572968e+01">
+                <arc curvature="-4.0000000003029973e-02"/>
+            </geometry>
+            <geometry s="5.3863658025187789e+01" x="6.5254203510274101e+02" y="3.6607193919680498e+02" hdg="1.9634954084824510e+00" length="1.9634954083572961e+01">
+                 <spiral curvStart="-4.0000000003029973e-02" curvEnd="-0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498612108760753e+01" x="6.4999999840902910e+02" y="3.8540625173345632e+02" hdg="1.5707963267800020e+00" length="1.4593748263500856e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.0000000218550713e+02" id="208" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="175" contactPoint="start" />
+            <successor elementType="road" elementId="140" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="7.0000000000000000e+02" y="3.5000000000000000e+02" hdg="-3.1415926535711600e+00" length="1.0000000218550713e+02">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092354308685671e+01" id="211" junction="5">
+        <link>
+            <predecessor elementType="road" elementId="175" contactPoint="start" />
+            <successor elementType="road" elementId="131" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="7.0000000000000000e+02" y="3.5000000000000000e+02" hdg="3.1415926535897931e+00" length="1.4593756637811225e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593756637811225e+01" x="6.8540624336218877e+02" y="3.5000000000000000e+02" hdg="3.1415926535897931e+00" length="1.9634950652581090e+01">
+                <spiral curvStart="0.0000000000000000e+00" curvEnd="4.0000006992084627e-02"/>
+            </geometry>
+            <geometry s="3.4228707290392315e+01" x="6.6607193420398630e+02" y="3.4745796375036076e+02" hdg="-2.7488935718947944e+00" length="1.9634950652581097e+01">
+                <arc curvature="4.0000006992084627e-02"/>
+            </geometry>
+            <geometry s="5.3863657942973411e+01" x="6.5254203406540046e+02" y="3.3392806361190935e+02" hdg="-1.9634954085023146e+00" length="1.9634950652581090e+01">
+                 <spiral curvStart="4.0000006992084627e-02" curvEnd="0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498608595554501e+01" x="6.4999999781556915e+02" y="3.1459375445373223e+02" hdg="-1.5707963268097949e+00" length="1.4593745713131170e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.0000000000026270e+02" id="220" junction="6">
+        <link>
+            <predecessor elementType="road" elementId="159" contactPoint="end" />
+            <successor elementType="road" elementId="175" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="8.5000000000024943e+02" y="3.4999994849141802e+02" hdg="3.1415921385039733e+00" length="1.0000000000026270e+02">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.0000000000026270e+02" id="229" junction="6">
+        <link>
+            <predecessor elementType="road" elementId="175" contactPoint="end" />
+            <successor elementType="road" elementId="159" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="7.5000000000000000e+02" y="3.5000000000000000e+02" hdg="-5.1509078513589657e-07" length="1.0000000000026270e+02">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="2.0000000000000000e+01" id="233" junction="2">
+        <link>
+            <predecessor elementType="road" elementId="131" contactPoint="start" />
+            <successor elementType="road" elementId="141" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="2.8000000000000000e+02" y="2.0000000000000000e+02" hdg="3.1415926535897931e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="2.0000000000000000e+01" id="236" junction="2">
+        <link>
+            <predecessor elementType="road" elementId="142" contactPoint="start" />
+            <successor elementType="road" elementId="131" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="2.6000000000000000e+02" y="2.0000000000000000e+02" hdg="0.0000000000000000e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="2.0000000000000000e+01" id="238" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="3" />
+            <successor elementType="road" elementId="239" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.0300000000000000e+03" y="2.0000000000000000e+02" hdg="0.0000000000000000e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="2.3561944901923448e+02" id="239" junction="-1">
+        <link>
+            <predecessor elementType="road" elementId="238" contactPoint="end" />
+            <successor elementType="road" elementId="240" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.0500000021856315e+03" y="2.0000000000000000e+02" hdg="1.2414513861358500e-12" length="7.8539816339744831e+01">
+                <arc curvature="2.0000000000000000e-02"/>
+            </geometry>
+            <geometry s="7.8539816339744831e+01" x="1.1000000021855694e+03" y="2.5000000000018625e+02" hdg="1.5707963267948963e+00" length="1.5707963267948966e+02">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.5000000000000000e+02" id="240" junction="-1">
+        <link>
+            <predecessor elementType="road" elementId="239" contactPoint="end" />
+            <successor elementType="road" elementId="241" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.2000000021855694e+03" y="2.5000000000006210e+02" hdg="-1.5707963268048193e+00" length="1.5000000000000000e+02">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="7.8539816339744831e+01" id="241" junction="-1">
+        <link>
+            <predecessor elementType="road" elementId="240" contactPoint="end" />
+            <successor elementType="road" elementId="242" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.2000000021848259e+03" y="9.9999995628365042e+01" hdg="-1.5707963268048193e+00" length="7.8539816339744831e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="3.0000000000000000e+02" id="242" junction="-1">
+        <link>
+            <predecessor elementType="road" elementId="241" contactPoint="end" />
+            <successor elementType="road" elementId="243" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.1500000021842677e+03" y="4.9999995628923273e+01" hdg="3.1415926535798699e+00" length="3.0000000000000000e+02">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="7.8539816339744831e+01" id="243" junction="-1">
+        <link>
+            <predecessor elementType="road" elementId="242" contactPoint="end" />
+            <successor elementType="road" elementId="244" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="8.4999999999814008e+02" y="4.9999995631900262e+01" hdg="3.1415926535798704e+00" length="7.8539816339744831e+01">
+                <arc curvature="-2.0000000000000000e-02"/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.9999999999999997e+02" id="244" junction="-1">
+        <link>
+            <predecessor elementType="road" elementId="243" contactPoint="end" />
+            <successor elementType="junction" elementId="6" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="7.9999999999869829e+02" y="9.9999995632458450e+01" hdg="1.5707963267849718e+00" length="1.9999999999999997e+02">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="none" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.3000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="2.0000000000000000e+01" id="247" junction="3">
+        <link>
+            <predecessor elementType="road" elementId="133" contactPoint="start" />
+            <successor elementType="road" elementId="238" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.0100000000000000e+03" y="2.0000000000000000e+02" hdg="0.0000000000000000e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="2.0000000000000000e+01" id="250" junction="3">
+        <link>
+            <predecessor elementType="road" elementId="238" contactPoint="start" />
+            <successor elementType="road" elementId="132" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="1.0300000000000000e+03" y="2.0000000000000000e+02" hdg="3.1415926535897931e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092322868749676e+01" id="253" junction="6">
+        <link>
+            <predecessor elementType="road" elementId="244" contactPoint="end" />
+            <successor elementType="road" elementId="159" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="8.0000000000068326e+02" y="2.9999999563245842e+02" hdg="1.5707963267948966e+00" length="1.4593734505032160e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593734505032160e+01" x="8.0000000000068326e+02" y="3.1459373013749058e+02" hdg="1.5707963267948966e+00" length="1.9634935572692928e+01">
+                <spiral curvStart="-0.0000000000000000e+00" curvEnd="-4.0000037712867885e-02"/>
+            </geometry>
+            <geometry s="3.4228670077725084e+01" x="8.0254203429799873e+02" y="3.3392802444664017e+02" hdg="1.1780972450974141e+00" length="1.9634935572692921e+01">
+                <arc curvature="-4.0000037712867885e-02"/>
+            </geometry>
+            <geometry s="5.3863605650418009e+01" x="8.1607192404540376e+02" y="3.4745791419407880e+02" hdg="3.9269908169996537e-01" length="1.9634935572692928e+01">
+                 <spiral curvStart="-4.0000037712867885e-02" curvEnd="-0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498541223110934e+01" x="8.3540621835461070e+02" y="3.4999994849141802e+02" hdg="0.0000000000000000e+00" length="1.4593781645638728e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092363151514093e+01" id="256" junction="6">
+        <link>
+            <predecessor elementType="road" elementId="244" contactPoint="end" />
+            <successor elementType="road" elementId="175" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="8.0000000000068326e+02" y="2.9999999563245842e+02" hdg="1.5707963267948966e+00" length="1.4593752631379459e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593752631379459e+01" x="8.0000000000068326e+02" y="3.1459374826383788e+02" hdg="1.5707963267948966e+00" length="1.9634954085204516e+01">
+                <spiral curvStart="0.0000000000000000e+00" curvEnd="3.9999999999453403e-02"/>
+            </geometry>
+            <geometry s="3.4228706716583972e+01" x="7.9745796330664791e+02" y="3.3392806080204383e+02" hdg="1.9634954084923790e+00" length="1.9634954085204509e+01">
+                <arc curvature="3.9999999999453403e-02"/>
+            </geometry>
+            <geometry s="5.3863660801788484e+01" x="7.8392806080278433e+02" y="3.4745796330594095e+02" hdg="2.7488935718898277e+00" length="1.9634954085204516e+01">
+                 <spiral curvStart="3.9999999999453403e-02" curvEnd="0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498614886992996e+01" x="7.6459374826452108e+02" y="3.5000000000000000e+02" hdg="3.1415926535897931e+00" length="1.4593748264521082e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092322868410662e+01" id="259" junction="6">
+        <link>
+            <predecessor elementType="road" elementId="159" contactPoint="end" />
+            <successor elementType="road" elementId="244" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="8.5000000000024943e+02" y="3.4999994849141802e+02" hdg="3.1415926535897931e+00" length="1.4593781645115314e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593781645115314e+01" x="8.3540621835513411e+02" y="3.4999994849141802e+02" hdg="3.1415926535897931e+00" length="1.9634935572763663e+01">
+                <spiral curvStart="0.0000000000000000e+00" curvEnd="4.0000037712471341e-02"/>
+            </geometry>
+            <geometry s="3.4228717217878980e+01" x="8.1607192404585373e+02" y="3.4745791419408533e+02" hdg="-2.7488935718947887e+00" length="1.9634935572763670e+01">
+                <arc curvature="4.0000037712471341e-02"/>
+            </geometry>
+            <geometry s="5.3863652790642647e+01" x="8.0254203429835229e+02" y="3.3392802444671787e+02" hdg="-1.9634954085022969e+00" length="1.9634935572763663e+01">
+                 <spiral curvStart="4.0000037712471341e-02" curvEnd="0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498588363406313e+01" x="8.0000000000082798e+02" y="3.1459373013746279e+02" hdg="-1.5707963268097789e+00" length="1.4593734505004363e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="8.8092363151735057e+01" id="262" junction="6">
+        <link>
+            <predecessor elementType="road" elementId="175" contactPoint="end" />
+            <successor elementType="road" elementId="244" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="7.5000000000000000e+02" y="3.5000000000000000e+02" hdg="0.0000000000000000e+00" length="1.4593748264693545e+01">
+                <line/>
+            </geometry>
+            <geometry s="1.4593748264693545e+01" x="7.6459374826469355e+02" y="3.5000000000000000e+02" hdg="0.0000000000000000e+00" length="1.9634954085328442e+01">
+                <spiral curvStart="-0.0000000000000000e+00" curvEnd="-3.9999999999453403e-02"/>
+            </geometry>
+            <geometry s="3.4228702350021990e+01" x="7.8392806080307514e+02" y="3.4745796330590917e+02" hdg="-3.9269908169996182e-01" length="1.9634954085328435e+01">
+                <arc curvature="-3.9999999999453403e-02"/>
+            </geometry>
+            <geometry s="5.3863656435350421e+01" x="7.9745796330692883e+02" y="3.3392806080192133e+02" hdg="-1.1780972451023661e+00" length="1.9634954085328442e+01">
+                 <spiral curvStart="-3.9999999999453403e-02" curvEnd="-0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="7.3498610520678866e+01" x="8.0000000000082798e+02" y="3.1459374826351461e+02" hdg="-1.5707963268097789e+00" length="1.4593752631056191e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.5000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="shoulder" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="5.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <junction name="" id="1">
+        <connection id="0" incomingRoad="151" connectingRoad="162" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+        </connection>
+        <connection id="1" incomingRoad="159" connectingRoad="165" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+        </connection>
+    </junction>
+    <junction name="" id="4">
+        <connection id="0" incomingRoad="166" connectingRoad="171" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+        </connection>
+        <connection id="1" incomingRoad="167" connectingRoad="174" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+        </connection>
+    </junction>
+    <junction name="" id="5">
+        <connection id="0" incomingRoad="131" connectingRoad="178" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+            <laneLink from="-2" to="-2"/>
+        </connection>
+        <connection id="1" incomingRoad="131" connectingRoad="181" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+        </connection>
+        <connection id="2" incomingRoad="131" connectingRoad="184" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+        </connection>
+        <connection id="3" incomingRoad="140" connectingRoad="187" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+            <laneLink from="-2" to="-2"/>
+        </connection>
+        <connection id="4" incomingRoad="140" connectingRoad="190" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+        </connection>
+        <connection id="5" incomingRoad="140" connectingRoad="193" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+        </connection>
+        <connection id="6" incomingRoad="166" connectingRoad="196" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+            <laneLink from="-2" to="-2"/>
+        </connection>
+        <connection id="7" incomingRoad="166" connectingRoad="199" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+        </connection>
+        <connection id="8" incomingRoad="166" connectingRoad="202" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+        </connection>
+        <connection id="9" incomingRoad="175" connectingRoad="205" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+            <laneLink from="2" to="-2"/>
+        </connection>
+        <connection id="10" incomingRoad="175" connectingRoad="208" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+        </connection>
+        <connection id="11" incomingRoad="175" connectingRoad="211" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+        </connection>
+    </junction>
+    <junction name="" id="6">
+        <connection id="0" incomingRoad="244" connectingRoad="253" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+            <laneLink from="-2" to="-2"/>
+        </connection>
+        <connection id="1" incomingRoad="244" connectingRoad="256" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+        </connection>
+        <connection id="2" incomingRoad="159" connectingRoad="220" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+            <laneLink from="-2" to="-2"/>
+        </connection>
+        <connection id="3" incomingRoad="159" connectingRoad="259" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+        </connection>
+        <connection id="4" incomingRoad="175" connectingRoad="262" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+            <laneLink from="-2" to="-2"/>
+        </connection>
+        <connection id="5" incomingRoad="175" connectingRoad="229" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+        </connection>
+    </junction>
+    <junction name="" id="2">
+        <connection id="0" incomingRoad="131" connectingRoad="233" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+            <laneLink from="2" to="-2"/>
+        </connection>
+        <connection id="1" incomingRoad="142" connectingRoad="236" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+            <laneLink from="2" to="-2"/>
+        </connection>
+    </junction>
+    <junction name="" id="3">
+        <connection id="0" incomingRoad="133" connectingRoad="247" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+            <laneLink from="2" to="-2"/>
+        </connection>
+        <connection id="1" incomingRoad="238" connectingRoad="250" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+            <laneLink from="2" to="-2"/>
+        </connection>
+    </junction>
+</OpenDRIVE>

+ 898 - 0
public/map/mine4.xodr

@@ -0,0 +1,898 @@
+<?xml version="1.0" standalone="yes"?>
+<OpenDRIVE>
+    <header revMajor="1" revMinor="4" name="" version="1.00" date="Sun Feb  4 17:46:03 2024" north="0.0000000000000000e+00" south="0.0000000000000000e+00" east="0.0000000000000000e+00" west="0.0000000000000000e+00">
+    </header>
+    <road name="" length="1.3054250000000002e+03" id="1" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="1" />
+            <successor elementType="road" elementId="3" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="-1.5000000000000000e+02" y="0.0000000000000000e+00" hdg="0.0000000000000000e+00" length="3.1000000000000000e+02">
+                <line/>
+            </geometry>
+            <geometry s="3.1000000000000000e+02" x="1.5999999934454104e+02" y="0.0000000000000000e+00" hdg="-1.2414513861358500e-12" length="4.7109999999999999e+01">
+                <arc curvature="-6.6686322513050164e-02"/>
+            </geometry>
+            <geometry s="3.5711000000000001e+02" x="1.5999999934450381e+02" y="-2.9991157476236758e+01" hdg="3.1415926535848264e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="3.7711000000000001e+02" x="1.4000000000003726e+02" y="-2.9991157476137420e+01" hdg="3.1415926535860681e+00" length="4.7109999999999999e+01">
+                <arc curvature="6.6686322513050164e-02"/>
+            </geometry>
+            <geometry s="4.2422000000000003e+02" x="1.3999999999992554e+02" y="-5.9982314952374182e+01" hdg="0.0000000000000000e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="4.4422000000000003e+02" x="1.5999999344477953e+02" y="-5.9982314952374196e+01" hdg="-1.2414513861358500e-12" length="2.3557000000000002e+02">
+                <arc curvature="-6.6680660813978705e-03"/>
+            </geometry>
+            <geometry s="6.7979000000000008e+02" x="3.0996851322122450e+02" y="-2.0995083472919160e+02" hdg="-1.5707963267998650e+00" length="2.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="6.9979000000000008e+02" x="3.0996851322112514e+02" y="-2.2995083560308785e+02" hdg="-1.5707963268011058e+00" length="1.5699999999999999e+01">
+                <arc curvature="-1.0005072145190425e-01"/>
+            </geometry>
+            <geometry s="7.1549000000000012e+02" x="2.9997358279484234e+02" y="-2.3994576602914719e+02" hdg="3.1415926535848198e+00" length="4.0000000000000000e+02">
+                <line/>
+            </geometry>
+            <geometry s="1.1154900000000002e+03" x="-1.0002642026516023e+02" y="-2.3994576602517148e+02" hdg="3.1415926535835785e+00" length="1.0993500000000002e+02">
+                <arc curvature="-1.4288409758447231e-02"/>
+            </geometry>
+            <geometry s="1.2254250000000002e+03" x="-1.7001321493960779e+02" y="-1.6995897134915899e+02" hdg="1.5707963267849576e+00" length="7.9999999999999972e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="2.0506205094709340e+01" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="2.0000000000000000e-03" d="0.0000000000000000e+00"/>
+            <elevation s="6.9493794905290656e+01" a="4.7995679108995404e+00" b="1.9595035924232529e-01" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="8.5665212279555845e+01" a="7.9683629548443848e+00" b="1.9595035924232529e-01" c="-2.3809523809523812e-03" d="0.0000000000000000e+00"/>
+            <elevation s="1.2681478772044414e+02" a="1.2000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="1.4566521227955585e+02" a="1.2000000000000000e+01" b="0.0000000000000000e+00" c="-2.3809523809523812e-03" d="0.0000000000000000e+00"/>
+            <elevation s="1.8681478772044417e+02" a="7.9683629548443813e+00" b="-1.9595035924232534e-01" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="2.0298620509470933e+02" a="4.7995679108995413e+00" b="-1.9595035924232534e-01" c="2.0000000000000000e-03" d="0.0000000000000000e+00"/>
+            <elevation s="2.5197379490529065e+02" a="-2.6645352591003757e-15" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="3.0000000000000000e+02" a="-2.6645352591003757e-15" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="7.3692767405063296e+02" a="-2.6645352591003757e-15" b="0.0000000000000000e+00" c="2.0000000000000000e-03" d="0.0000000000000000e+00"/>
+            <elevation s="7.7401232594936710e+02" a="2.7505428129005685e+00" b="1.4833860759493686e-01" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="7.9045444620253159e+02" a="5.1895440371634995e+00" b="1.4833860759493686e-01" c="-2.3809523809523812e-03" d="0.0000000000000000e+00"/>
+            <elevation s="8.2160555379746836e+02" a="7.4999999999999893e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="8.5045444620253159e+02" a="7.4999999999999893e+00" b="0.0000000000000000e+00" c="-2.3809523809523812e-03" d="0.0000000000000000e+00"/>
+            <elevation s="8.8160555379746836e+02" a="5.1895440371634951e+00" b="-1.4833860759493653e-01" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="8.9804767405063296e+02" a="2.7505428129005525e+00" b="-1.4833860759493653e-01" c="2.0000000000000000e-03" d="0.0000000000000000e+00"/>
+            <elevation s="9.3513232594936710e+02" a="-1.7763568394002505e-14" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="3" type="border" level="false">
+                        <link>
+                            <successor id="3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.1000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="2" type="border" level="false">
+                        <link>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="border" level="false">
+                        <link>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-3" type="border" level="false">
+                        <link>
+                            <successor id="-3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+            <object type="tree" name="VegTree03b.flt" id="0" s="6.8534812500000015e+00" t="1.1635900022198609e+01" zOffset="-9.9350000000000005e-01" validLength="0.0000000000000000e+00" orientation="none" length="6.5800000000000001e+00" width="6.5289999999999999e+00" height="1.1785000000000000e+01" hdg="3.1415926535897931e+00" pitch="0.0000000000000000e+00" roll="0.0000000000000000e+00">
+                <repeat s="6.8534812500000015e+00" length="1.2992038000000002e+03" distance="2.0000000000000000e+01" tStart="1.1635900022198609e+01" tEnd="1.1635900022198609e+01" widthStart="6.5289999999999999e+00" widthEnd="6.5289999999999999e+00" heightStart="1.1785000000000000e+01" heightEnd="1.1785000000000000e+01" zOffsetStart="-9.9350000000000005e-01" zOffsetEnd="-9.9350000000000005e-01" />
+            </object>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="5.0000000000000000e+01" id="2" junction="-1">
+        <link>
+            <predecessor elementType="road" elementId="3" contactPoint="end" />
+            <successor elementType="junction" elementId="1" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="-1.7000000000000000e+02" y="-7.0000000000000000e+01" hdg="1.5707963267948966e+00" length="5.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="3" type="border" level="false">
+                        <link>
+                            <predecessor id="3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.1000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="2" type="border" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="border" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-3" type="border" level="false">
+                        <link>
+                            <predecessor id="-3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+            <object type="tree" name="VegTree03c.flt" id="1" s="6.8812499999999837e+00" t="9.1320001676795926e+00" zOffset="-1.0265000000000004e+00" validLength="0.0000000000000000e+00" orientation="none" length="7.3280000000000003e+00" width="7.2709999999999999e+00" height="1.5663000000000000e+01" hdg="3.1415926535897931e+00" pitch="0.0000000000000000e+00" roll="0.0000000000000000e+00">
+                <repeat s="6.8812499999999837e+00" length="4.3437500000000000e+01" distance="2.0000000000000000e+01" tStart="9.1320001676795926e+00" tEnd="9.1320001676795926e+00" widthStart="7.2709999999999999e+00" widthEnd="7.2709999999999999e+00" heightStart="1.5663000000000000e+01" heightEnd="1.5663000000000000e+01" zOffsetStart="-1.0265000000000004e+00" zOffsetEnd="-1.0265000000000004e+00" />
+            </object>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.9958975723998392e+01" id="3" junction="-1">
+        <link>
+            <predecessor elementType="road" elementId="1" contactPoint="end" />
+            <successor elementType="road" elementId="2" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="-1.7001321493881267e+02" y="-8.9958971349158986e+01" hdg="1.5701342216868519e+00" length="1.9958975723998392e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="3" type="border" level="false">
+                        <link>
+                            <predecessor id="3"/>
+                            <successor id="3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.1000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="2" type="border" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="border" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-3" type="border" level="false">
+                        <link>
+                            <predecessor id="-3"/>
+                            <successor id="-3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+            <object type="tree" name="VegTree03b.flt" id="2" s="3.7273387164567020e+00" t="1.0946191104230174e+01" zOffset="-9.9350000000000005e-01" validLength="0.0000000000000000e+00" orientation="none" length="6.5800000000000001e+00" width="6.5289999999999999e+00" height="1.1785000000000000e+01" hdg="3.1415926535897931e+00" pitch="0.0000000000000000e+00" roll="0.0000000000000000e+00">
+            </object>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="3.5236943513380737e+01" id="6" junction="1">
+        <link>
+            <predecessor elementType="road" elementId="1" contactPoint="start" />
+            <successor elementType="road" elementId="2" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="-1.5000000000000000e+02" y="0.0000000000000000e+00" hdg="3.1415926535897931e+00" length="5.8374993057286417e+00">
+                <line/>
+            </geometry>
+            <geometry s="5.8374993057286417e+00" x="-1.5583749930572864e+02" y="1.0369481816725298e-15" hdg="3.1415926535897931e+00" length="7.8539816339744792e+00">
+                <spiral curvStart="0.0000000000000000e+00" curvEnd="1.0000000000000002e-01"/>
+            </geometry>
+            <geometry s="1.3691480939703121e+01" x="-1.6357122432092828e+02" y="-1.0168146776097373e+00" hdg="-2.7488935718923106e+00" length="7.8539816339744810e+00">
+                <arc curvature="1.0000000000000002e-01"/>
+            </geometry>
+            <geometry s="2.1545462573677604e+01" x="-1.6898318532239975e+02" y="-6.4287756790946418e+00" hdg="-1.9634954084948619e+00" length="7.8539816339744792e+00">
+                 <spiral curvStart="1.0000000000000002e-01" curvEnd="0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="2.9399444207652081e+01" x="-1.7000000000000000e+02" y="-1.4162500694271348e+01" hdg="-1.5707963267998624e+00" length="5.8374993057286524e+00">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="border" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-3" type="border" level="false">
+                        <link>
+                            <predecessor id="3"/>
+                            <successor id="3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.1000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="3.5236943513380716e+01" id="9" junction="1">
+        <link>
+            <predecessor elementType="road" elementId="2" contactPoint="end" />
+            <successor elementType="road" elementId="1" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="-1.7000000000000000e+02" y="-2.0000000000000000e+01" hdg="1.5707963267948966e+00" length="5.8374993057286328e+00">
+                <line/>
+            </geometry>
+            <geometry s="5.8374993057286328e+00" x="-1.7000000000000000e+02" y="-1.4162500694271367e+01" hdg="1.5707963267948966e+00" length="7.8539816339744792e+00">
+                <spiral curvStart="-0.0000000000000000e+00" curvEnd="-1.0000000000000002e-01"/>
+            </geometry>
+            <geometry s="1.3691480939703112e+01" x="-1.6898318532239026e+02" y="-6.4287756790717197e+00" hdg="1.1780972450974141e+00" length="7.8539816339744810e+00">
+                <arc curvature="-1.0000000000000002e-01"/>
+            </geometry>
+            <geometry s="2.1545462573677593e+01" x="-1.6357122432092828e+02" y="-1.0168146776097515e+00" hdg="3.9269908169996537e-01" length="7.8539816339744792e+00">
+                 <spiral curvStart="-1.0000000000000002e-01" curvEnd="-0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="2.9399444207652074e+01" x="-1.5583749930572864e+02" y="7.1488748397854891e-16" hdg="-4.9658055445434002e-12" length="5.8374993057286417e+00">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="border" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-3" type="border" level="false">
+                        <link>
+                            <predecessor id="-3"/>
+                            <successor id="-3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.0797970000000000e+03" id="11" junction="-1">
+        <link>
+            <predecessor elementType="junction" elementId="2" />
+            <successor elementType="road" elementId="13" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="-1.5000000000000000e+02" y="-3.0000000000000000e+02" hdg="0.0000000000000000e+00" length="3.2000000000000000e+02">
+                <line/>
+            </geometry>
+            <geometry s="3.2000000000000000e+02" x="1.6999999562980989e+02" y="-3.0000000000000000e+02" hdg="-1.2414513861358500e-12" length="1.5705000000000001e+02">
+                <arc curvature="-1.0001886830913062e-02"/>
+            </geometry>
+            <geometry s="4.7705000000000001e+02" x="2.6998113088001446e+02" y="-3.9998113525045278e+02" hdg="-1.5707963267998650e+00" length="3.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="5.0705000000000001e+02" x="2.6998113087986542e+02" y="-4.2998113612434906e+02" hdg="-1.5707963268011058e+00" length="1.5699999999999999e+01">
+                <arc curvature="-1.0005072145190425e-01"/>
+            </geometry>
+            <geometry s="5.2275000000000000e+02" x="2.5998620045358268e+02" y="-4.3997606655040840e+02" hdg="3.1415926535848286e+00" length="5.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="5.7275000000000000e+02" x="2.0998620001657872e+02" y="-4.3997606654991188e+02" hdg="3.1415926535835874e+00" length="1.5699999999999999e+01">
+                <arc curvature="-1.0005072145190425e-01"/>
+            </geometry>
+            <geometry s="5.8845000000000005e+02" x="1.9999126959051935e+02" y="-4.2998113612362914e+02" hdg="1.5707963267899290e+00" length="3.0000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="6.1845000000000005e+02" x="1.9999126959081735e+02" y="-3.9998113612362914e+02" hdg="1.5707963267911706e+00" length="4.7115000000000002e+01">
+                <arc curvature="6.6679245539420423e-02"/>
+            </geometry>
+            <geometry s="6.6556500000000005e+02" x="1.6999692901571876e+02" y="-3.9998113612336846e+02" hdg="-1.5707963268048308e+00" length="2.5000000000000000e+01">
+                <line/>
+            </geometry>
+            <geometry s="6.9056500000000005e+02" x="1.6999692901547041e+02" y="-4.2498113743484396e+02" hdg="-1.5707963268060725e+00" length="2.3559999999999999e+01">
+                <arc curvature="-6.6672170067695102e-02"/>
+            </geometry>
+            <geometry s="7.1412500000000000e+02" x="1.5499816717824814e+02" y="-4.3997989927158210e+02" hdg="3.1415926535798602e+00" length="2.8000000000000000e+02">
+                <line/>
+            </geometry>
+            <geometry s="9.9412500000000000e+02" x="-1.2500183478910552e+02" y="-4.3997989926741042e+02" hdg="3.1415926535786189e+00" length="7.0671999999999997e+01">
+                <arc curvature="-2.2226572430310398e-02"/>
+            </geometry>
+            <geometry s="1.0647970000000000e+03" x="-1.6999302734114107e+02" y="-3.9498870671392251e+02" hdg="1.5707963267799980e+00" length="1.5000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="6.1457674050632917e+01" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="2.0000000000000000e-03" d="0.0000000000000000e+00"/>
+            <elevation s="9.8542325949367083e+01" a="2.7505428129005751e+00" b="1.4833860759493669e-01" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="1.1424275316455697e+02" a="5.0795223246474928e+00" b="1.4833860759493669e-01" c="-2.2727272727272726e-03" d="0.0000000000000000e+00"/>
+            <elevation s="1.4687724683544303e+02" a="7.5000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="1.7424275316455697e+02" a="7.5000000000000000e+00" b="0.0000000000000000e+00" c="-2.2727272727272726e-03" d="0.0000000000000000e+00"/>
+            <elevation s="2.0687724683544303e+02" a="5.0795223246474954e+00" b="-1.4833860759493669e-01" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+            <elevation s="2.2257767405063291e+02" a="2.7505428129005796e+00" b="-1.4833860759493669e-01" c="2.0000000000000000e-03" d="0.0000000000000000e+00"/>
+            <elevation s="2.5966232594936707e+02" a="3.5527136788005009e-15" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="3" type="border" level="false">
+                        <link>
+                            <successor id="3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.1000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="2" type="border" level="false">
+                        <link>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="border" level="false">
+                        <link>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-3" type="border" level="false">
+                        <link>
+                            <successor id="-3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+            <object type="tree" name="VegTree02v9m.flt" id="3" s="6.5504872695312502e+00" t="1.0859100054431494e+01" zOffset="-5.9850000000000048e-01" validLength="0.0000000000000000e+00" orientation="none" length="9.1140000000000008e+00" width="8.9309999999999992e+00" height="1.0201000000000001e+01" hdg="3.1415926535897931e+00" pitch="0.0000000000000000e+00" roll="0.0000000000000000e+00">
+                <repeat s="6.5504872695312502e+00" length="1.0723356000000001e+03" distance="2.0000000000000000e+01" tStart="1.0859100054431494e+01" tEnd="1.0859100054431494e+01" widthStart="8.9309999999999992e+00" widthEnd="8.9309999999999992e+00" heightStart="1.0201000000000001e+01" heightEnd="1.0201000000000001e+01" zOffsetStart="-5.9850000000000048e-01" zOffsetEnd="-5.9850000000000048e-01" />
+            </object>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="4.0000000000000000e+01" id="12" junction="-1">
+        <link>
+            <predecessor elementType="road" elementId="13" contactPoint="end" />
+            <successor elementType="junction" elementId="2" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="-1.7000000000000000e+02" y="-3.6000000000000000e+02" hdg="1.5707963267948966e+00" length="4.0000000000000000e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="3" type="border" level="false">
+                        <link>
+                            <predecessor id="3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.1000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="2" type="border" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="border" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-3" type="border" level="false">
+                        <link>
+                            <predecessor id="-3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+            <object type="tree" name="VegTree02v13m.flt" id="4" s="6.1400000000000050e+00" t="1.2137900370739581e+01" zOffset="-8.1500000000000039e-01" validLength="0.0000000000000000e+00" orientation="none" length="1.2407999999999999e+01" width="1.2160000000000000e+01" height="1.3888000000000000e+01" hdg="3.1415926535897931e+00" pitch="0.0000000000000000e+00" roll="0.0000000000000000e+00">
+                <repeat s="6.1400000000000050e+00" length="3.3699999999999996e+01" distance="2.5000000000000000e+01" tStart="1.2137900370739581e+01" tEnd="1.2137900370739581e+01" widthStart="1.2160000000000000e+01" widthEnd="1.2160000000000000e+01" heightStart="1.3888000000000000e+01" heightEnd="1.3888000000000000e+01" zOffsetStart="-8.1500000000000039e-01" zOffsetEnd="-8.1500000000000039e-01" />
+            </object>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="1.9988707930058549e+01" id="13" junction="-1">
+        <link>
+            <predecessor elementType="road" elementId="11" contactPoint="end" />
+            <successor elementType="road" elementId="12" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="-1.6999302734091759e+02" y="-3.7998870671392251e+02" hdg="1.5711451567066754e+00" length="1.9988707930058549e+01">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <left>
+                    <lane id="3" type="border" level="false">
+                        <link>
+                            <predecessor id="3"/>
+                            <successor id="3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.1000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="2" type="border" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </left>
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                        <roadMark sOffset="0.0000000000000000e+00" type="broken" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="both" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <roadMark sOffset="0.0000000000000000e+00" type="solid" weight="standard" color="standard" width="1.2000000000000000e-01" laneChange="none" height="1.9999999552965164e-02">
+                        </roadMark>
+                    </lane>
+                    <lane id="-2" type="border" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-3" type="border" level="false">
+                        <link>
+                            <predecessor id="-3"/>
+                            <successor id="-3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+            <object type="tree" name="VegTree02v13m.flt" id="5" s="8.6401190027677792e+00" t="1.2959100006773735e+01" zOffset="-8.1500000000000039e-01" validLength="0.0000000000000000e+00" orientation="none" length="1.2407999999999999e+01" width="1.2160000000000000e+01" height="1.3888000000000000e+01" hdg="3.1415926535897931e+00" pitch="0.0000000000000000e+00" roll="0.0000000000000000e+00">
+            </object>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="3.5236943513380709e+01" id="16" junction="2">
+        <link>
+            <predecessor elementType="road" elementId="11" contactPoint="start" />
+            <successor elementType="road" elementId="12" contactPoint="end" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="-1.5000000000000000e+02" y="-3.0000000000000000e+02" hdg="3.1415926535897931e+00" length="5.8374993057286417e+00">
+                <line/>
+            </geometry>
+            <geometry s="5.8374993057286417e+00" x="-1.5583749930572864e+02" y="-3.0000000000000000e+02" hdg="3.1415926535897931e+00" length="7.8539816339744855e+00">
+                <spiral curvStart="0.0000000000000000e+00" curvEnd="9.9999999999999978e-02"/>
+            </geometry>
+            <geometry s="1.3691480939703126e+01" x="-1.6357122432090534e+02" y="-3.0101681467760022e+02" hdg="-2.7488935718923102e+00" length="7.8539816339744837e+00">
+                <arc curvature="9.9999999999999978e-02"/>
+            </geometry>
+            <geometry s="2.1545462573677611e+01" x="-1.6898318532239026e+02" y="-3.0642877567907169e+02" hdg="-1.9634954084948619e+00" length="7.8539816339744855e+00">
+                 <spiral curvStart="9.9999999999999978e-02" curvEnd="0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="2.9399444207652095e+01" x="-1.7000000000000000e+02" y="-3.1416250069427139e+02" hdg="-1.5707963267998624e+00" length="5.8374993057286133e+00">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="1"/>
+                            <successor id="1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="border" level="false">
+                        <link>
+                            <predecessor id="2"/>
+                            <successor id="2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-3" type="border" level="false">
+                        <link>
+                            <predecessor id="3"/>
+                            <successor id="3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.1000000000000000e+01" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <road name="" length="3.5236943513380680e+01" id="19" junction="2">
+        <link>
+            <predecessor elementType="road" elementId="12" contactPoint="end" />
+            <successor elementType="road" elementId="11" contactPoint="start" />
+        </link>
+        <planView>
+            <geometry s="0.0000000000000000e+00" x="-1.7000000000000000e+02" y="-3.2000000000000000e+02" hdg="1.5707963267948966e+00" length="5.8374993057286133e+00">
+                <line/>
+            </geometry>
+            <geometry s="5.8374993057286133e+00" x="-1.7000000000000000e+02" y="-3.1416250069427139e+02" hdg="1.5707963267948966e+00" length="7.8539816339744855e+00">
+                <spiral curvStart="-0.0000000000000000e+00" curvEnd="-9.9999999999999978e-02"/>
+            </geometry>
+            <geometry s="1.3691480939703098e+01" x="-1.6898318532239975e+02" y="-3.0642877567909466e+02" hdg="1.1780972450974139e+00" length="7.8539816339744837e+00">
+                <arc curvature="-9.9999999999999978e-02"/>
+            </geometry>
+            <geometry s="2.1545462573677582e+01" x="-1.6357122432092828e+02" y="-3.0101681467760977e+02" hdg="3.9269908169996537e-01" length="7.8539816339744855e+00">
+                 <spiral curvStart="-9.9999999999999978e-02" curvEnd="-0.0000000000000000e+00"/>
+            </geometry>
+            <geometry s="2.9399444207652067e+01" x="-1.5583749930572861e+02" y="-3.0000000000000000e+02" hdg="0.0000000000000000e+00" length="5.8374993057286133e+00">
+                <line/>
+            </geometry>
+        </planView>
+        <elevationProfile>
+            <elevation s="0.0000000000000000e+00" a="0.0000000000000000e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+        </elevationProfile>
+        <lateralProfile>
+        </lateralProfile>
+        <lanes>
+            <laneSection s="0.0000000000000000e+00">
+                <center>
+                    <lane id="0" type="driving" level="false">
+                        <link>
+                        </link>
+                    </lane>
+                </center>
+                <right>
+                    <lane id="-1" type="driving" level="false">
+                        <link>
+                            <predecessor id="-1"/>
+                            <successor id="-1"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="3.5699999999999998e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-2" type="border" level="false">
+                        <link>
+                            <predecessor id="-2"/>
+                            <successor id="-2"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                    <lane id="-3" type="border" level="false">
+                        <link>
+                            <predecessor id="-3"/>
+                            <successor id="-3"/>
+                        </link>
+                        <width sOffset="0.0000000000000000e+00" a="1.6799999999999999e+00" b="0.0000000000000000e+00" c="0.0000000000000000e+00" d="0.0000000000000000e+00"/>
+                        <height sOffset="0.0000000000000000e+00" inner="0.0000000000000000e+00" outer="0.0000000000000000e+00"/>
+                    </lane>
+                </right>
+            </laneSection>
+        </lanes>
+        <objects>
+        </objects>
+        <signals>
+        </signals>
+        <surface>
+        </surface>
+    </road>
+    <junction name="" id="1">
+        <connection id="0" incomingRoad="1" connectingRoad="6" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+            <laneLink from="2" to="-2"/>
+            <laneLink from="3" to="-3"/>
+        </connection>
+        <connection id="1" incomingRoad="2" connectingRoad="9" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+            <laneLink from="-2" to="-2"/>
+            <laneLink from="-3" to="-3"/>
+        </connection>
+    </junction>
+    <junction name="" id="2">
+        <connection id="0" incomingRoad="11" connectingRoad="16" contactPoint="start">
+            <laneLink from="1" to="-1"/>
+            <laneLink from="2" to="-2"/>
+            <laneLink from="3" to="-3"/>
+        </connection>
+        <connection id="1" incomingRoad="12" connectingRoad="19" contactPoint="start">
+            <laneLink from="-1" to="-1"/>
+            <laneLink from="-2" to="-2"/>
+            <laneLink from="-3" to="-3"/>
+        </connection>
+    </junction>
+</OpenDRIVE>

+ 236 - 0
src/InfiniteGridHelper.js

@@ -0,0 +1,236 @@
+// Author: Fyrestar https://mevedia.com (https://github.com/Fyrestar/THREE.InfiniteGridHelper)
+import * as THREE from "three";
+THREE.InfiniteGridHelper = function InfiniteGridHelper( size1, size2, color, distance, axes = 'xzy' ) {
+
+	color = color || new THREE.Color( 'white' );
+	size1 = size1 || 10;
+	size2 = size2 || 100;
+
+	distance = distance || 8000;
+
+
+
+	const planeAxes = axes.substr( 0, 2 );
+
+	const geometry = new THREE.PlaneBufferGeometry( 2, 2, 1, 1 );
+
+	const material = new THREE.ShaderMaterial( {
+
+		side: THREE.DoubleSide,
+
+		uniforms: {
+			uSize1: {
+				value: size1
+			},
+			uSize2: {
+				value: size2
+			},
+			uColor: {
+				value: color
+			},
+			uDistance: {
+				value: distance
+			}
+		},
+		transparent: true,
+		vertexShader: `
+           
+           varying vec3 worldPosition;
+		   
+           uniform float uDistance;
+           
+           void main() {
+           
+                vec3 pos = position.${axes} * uDistance;
+                pos.${planeAxes} += cameraPosition.${planeAxes};
+                
+                worldPosition = pos;
+                
+                gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0);
+           
+           }
+           `,
+
+
+		fragmentShader: `
+           
+           varying vec3 worldPosition;
+           
+           uniform float uSize1;
+           uniform float uSize2;
+           uniform vec3 uColor;
+           uniform float uDistance;
+            
+            
+            
+            float getGrid(float size) {
+            
+                vec2 r = worldPosition.${planeAxes} / size;
+                
+                
+                vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);
+                float line = min(grid.x, grid.y);
+                
+            
+                return 1.0 - min(line, 1.0);
+            }
+            
+           void main() {
+           
+                
+                  float d = 1.0 - min(distance(cameraPosition.${planeAxes}, worldPosition.${planeAxes}) / uDistance, 1.0);
+                
+                  float g1 = getGrid(uSize1);
+                  float g2 = getGrid(uSize2);
+                  
+                  
+                  gl_FragColor = vec4(uColor.rgb, mix(g2, g1, g1) * pow(d, 3.0));
+                  gl_FragColor.a = mix(0.5 * gl_FragColor.a, gl_FragColor.a, g2);
+                
+                  if ( gl_FragColor.a <= 0.0 ) discard;
+                
+           
+           }
+           
+           `,
+
+		extensions: {
+			derivatives: true
+		}
+
+	} );
+
+
+	THREE.Mesh.call( this, geometry, material );
+
+	this.frustumCulled = false;
+
+};
+
+THREE.InfiniteGridHelper.prototype = {
+	...THREE.Mesh.prototype,
+	...THREE.Object3D.prototype,
+	...THREE.EventDispatcher.prototype
+};
+
+if ( parseInt( THREE.REVISION ) > 126 ) {
+
+	class InfiniteGridHelper extends THREE.Mesh {
+
+		constructor ( size1, size2, color, distance, axes = 'xzy' ) {
+
+
+			color = color || new THREE.Color( 'white' );
+			size1 = size1 || 10;
+			size2 = size2 || 100;
+
+			distance = distance || 8000;
+
+
+
+			const planeAxes = axes.substr( 0, 2 );
+
+			const geometry = new THREE.PlaneBufferGeometry( 2, 2, 1, 1 );
+
+			const material = new THREE.ShaderMaterial( {
+
+				side: THREE.DoubleSide,
+
+				uniforms: {
+					uSize1: {
+						value: size1
+					},
+					uSize2: {
+						value: size2
+					},
+					uColor: {
+						value: color
+					},
+					uDistance: {
+						value: distance
+					}
+				},
+				transparent: true,
+				vertexShader: `
+           
+           varying vec3 worldPosition;
+		   
+           uniform float uDistance;
+           
+           void main() {
+           
+                vec3 pos = position.${axes} * uDistance;
+                pos.${planeAxes} += cameraPosition.${planeAxes};
+                
+                worldPosition = pos;
+                
+                gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0);
+           
+           }
+           `,
+
+
+				fragmentShader: `
+           
+           varying vec3 worldPosition;
+           
+           uniform float uSize1;
+           uniform float uSize2;
+           uniform vec3 uColor;
+           uniform float uDistance;
+            
+            
+            
+            float getGrid(float size) {
+            
+                vec2 r = worldPosition.${planeAxes} / size;
+                
+                
+                vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);
+                float line = min(grid.x, grid.y);
+                
+            
+                return 1.0 - min(line, 1.0);
+            }
+            
+           void main() {
+           
+                
+                  float d = 1.0 - min(distance(cameraPosition.${planeAxes}, worldPosition.${planeAxes}) / uDistance, 1.0);
+                
+                  float g1 = getGrid(uSize1);
+                  float g2 = getGrid(uSize2);
+                  
+                  
+                  gl_FragColor = vec4(uColor.rgb, mix(g2, g1, g1) * pow(d, 3.0));
+                  gl_FragColor.a = mix(0.5 * gl_FragColor.a, gl_FragColor.a, g2);
+                
+                  if ( gl_FragColor.a <= 0.0 ) discard;
+                
+           
+           }
+           
+           `,
+
+				extensions: {
+					derivatives: true
+				}
+
+			} );
+
+			super( geometry, material );
+
+			this.frustumCulled = false;
+
+		}
+
+	}
+	
+	Object.assign( InfiniteGridHelper.prototype, THREE.InfiniteGridHelper.prototype );
+
+	THREE.InfiniteGridHelper = InfiniteGridHelper;
+
+}
+
+// module.exports.InfiniteGridHelper = THREE.InfiniteGridHelper
+// module.exports.InfiniteGridHelper  =THREE.InfiniteGridHelper;

+ 19 - 1
src/api/workManagement.js

@@ -6,7 +6,7 @@ const selectDropDownByType = basePart + '/simulationProject/selectDropDownByType
 const selectDropDownByTypeNew = basePart + '/simulationProject/selectDropDownByTypeNew'; // 标准化测试详情中的下拉列表-new
 const selectMaxParallelism = basePart + '/simulationProject/selectMaxParallelism'; // 标准化测试详情中获取人员可用并行数
 const updateProjectNowRunState = basePart + '/simulationProject/updateProjectNowRunState'; // 标准化测试详情中修改工作运行状态
-
+ 
 const selectProject = basePart + '/simulationProject/selectProject'; // 标准化测试列表
 const deleteProjectByids = basePart + '/simulationProject/deleteProjectByids'; // 删除标准化测试
 const exportProjectReportAndTaskFileById = basePart + '/simulationProject/exportProjectReportAndTaskFileById'; // 导出报告和任务包
@@ -29,6 +29,14 @@ const deleteAutomaticProjectByids = basePart + '/simulationProject/deleteAutomat
 const deleteAutomaticSubProjectByIds = basePart + '/simulationProject/deleteAutomaticSubProjectByIds'; // 删除自动化测试子任务
 const updateAutoProjectNowRunState = basePart + '/simulationProject/updateAutoProjectNowRunState'; // 修改自动化测试子任务状态
 
+const carList = basePart + '/simulationProject/selectDropDownByTypeNew'; //多模式仿真获取车辆列表
+const mapList = basePart + '/simulationMap/selectAllSimulationMapList'; //多模式仿真获取地图列表
+const algorithmList = basePart + '/simulationProject/selectDropDownByTypeNew';//多模式仿真获取算法列表
+const mapDetails = basePart + '/simulationMap/getSimulationMap';//多模式仿真获取地图详情
+const sceneCarList = basePart + '/simulationProject/getMultiSimulationSceneCarList';//获取记录
+const deleteRecord = basePart + '/simulationProject/deleteMultiSimulationSceneCar';//删除记录
+const settingsSimulation = basePart + '/simulationProject/setMultiSimulationSceneCarView';//设置仿真视角
+const saveOrUpdateSceneCarList = basePart + '/simulationProject/addOrUpdateMultiSimulationSceneCarList';//设置仿真视角
 
 export default {
     addOrUpdateProject,
@@ -42,6 +50,16 @@ export default {
     deleteProjectByids,
     exportProjectReportAndTaskFileById,
     exportProjectTaskFileById,
+	
+	
+	carList,
+	mapList,
+	algorithmList,
+	mapDetails,
+	sceneCarList,
+	deleteRecord,
+	settingsSimulation,
+	saveOrUpdateSceneCarList,
 
     selectProjectDetailsById,
     selectProjectTaskList,

+ 12 - 0
src/axios/filter.js

@@ -78,6 +78,18 @@ axios.interceptors.request.use(function (config) {
 });
 // 添加响应拦截器
 axios.interceptors.response.use(function (response) {
+	// if(response.config.url.includes("/simulation/resource/server/menu/getMyMenuTree")){
+	// 	response.data.info[3].children.push({
+	// 		"id": "d75a9d044eec4dc7b9133256c7e976af",
+	// 		"name": "多模式仿真",
+	// 		"router": "/multimodeSimulation",
+	// 		"icon": null,
+	// 		"sort": 3,
+	// 		"parentId": "268190b28633425da0744966976c4e22",
+	// 		"visible": "1",
+	// 		"children": null
+	// 	})
+	// }
     // 对响应数据处理
     tryHideFullScreenLoading();
     if (response && (response.status == 200)) {

+ 1 - 0
src/components/HelloWorld.vue

@@ -30,6 +30,7 @@ export default {
 </script>
 
 <style scoped lang="less">
+	
 h3 {
   margin: 40px 0 0;
 }

+ 1 - 1
src/main.js

@@ -14,7 +14,7 @@ import "./axios/filter"
 import '@/api/index.js'
 import '@/lib/autoTrim'
 import '@/lib/util.js'
-
+import './InfiniteGridHelper.js'
 Vue.config.productionTip = false;
 
 import echarts from 'echarts' // 引入echarts

+ 147 - 0
src/mixin/workManagement/getStdMapMixin.js

@@ -0,0 +1,147 @@
+import * as THREE from "three";
+import {
+	OrbitControls
+} from "three/examples/jsm/controls/OrbitControls";
+import {
+	RGBELoader
+} from "three/examples/jsm/loaders/RGBELoader";
+import {
+	Reflector
+} from "three/examples/jsm/objects/Reflector";
+import {
+	GLTFLoader
+} from "three/examples/jsm/loaders/GLTFLoader";
+import {
+	DRACOLoader
+} from "three/examples/jsm/loaders/DRACOLoader";
+import {
+	Line2
+} from "three/examples/jsm/lines/Line2";
+
+
+export let getStdMapMixin = {
+	methods: {
+		getStdMapKeys(std_map, delete_map = false) {
+			let map_keys = [];
+			const map_keys_vec = std_map.keys();
+			for (let idx = 0; idx < map_keys_vec.size(); idx++)
+				map_keys.push(map_keys_vec.get(idx));
+			map_keys_vec.delete();
+			if (delete_map) std_map.delete();
+			return map_keys;
+		},
+		getStdMapEntries(std_map) {
+			let map_entries = [];
+			//key路段索引 , std_map.get(key)车道编号
+			for (let key of this.getStdMapKeys(std_map)) {
+				map_entries.push([key, std_map.get(key)]);
+			}
+			return map_entries;
+		},
+		getStdVecEntries(std_vec, delete_vec = false, ArrayType = null) {
+			//获取道路网格三位坐标点数据
+			let entries = ArrayType ?
+				new ArrayType(std_vec.size()) :
+				new Array(std_vec.size());
+			for (let idx = 0; idx < std_vec.size(); idx++) {
+				entries[idx] = std_vec.get(idx);
+			}
+
+			if (delete_vec) std_vec.delete();
+			return entries;
+		},
+		isValid(rgba) {
+			return !(rgba[0] == 1 && rgba[1] == 1 && rgba[2] == 1 && rgba[3] == 1);
+		},
+		encodeUInt32(ui32) {
+			let rgba = new Float32Array(4);
+			rgba[0] = (Math.trunc(ui32) % 256) / 255;
+			rgba[1] = (Math.trunc(ui32 / 256) % 256) / 255;
+			rgba[2] = (Math.trunc(ui32 / 256 / 256) % 256) / 255;
+			rgba[3] = (Math.trunc(ui32 / 256 / 256 / 256) % 256) / 255;
+			return rgba;
+		},
+		decodeUInt32(rgba) {
+			return (
+				Math.round(rgba[0] * 255) +
+				Math.round(rgba[1] * 255) * 256 +
+				Math.round(rgba[2] * 255) * 256 * 256 +
+				Math.round(rgba[3] * 255) * 256 * 256 * 256
+			);
+		},
+		applyVertexColors(buffer_attribute, color, offset, count) {
+			//buffer_attribute.itemSize颜色宽度
+			const colors = new Float32Array(count * buffer_attribute.itemSize);
+			for (
+				let i = 0; i < count * buffer_attribute.itemSize; i += buffer_attribute.itemSize
+			) {
+				colors[i] = color.r;
+				colors[i + 1] = color.g;
+				colors[i + 2] = color.b;
+				// colors[i] =0;
+				// colors[i + 1] = 0;
+				// colors[i + 2] = 255;
+			}
+			//根据颜色偏移设置改变颜色值
+			buffer_attribute.array.set(colors, offset * buffer_attribute.itemSize);
+		},
+		getTextCanvas(content) {
+			var width = 500;
+			var height = 500;
+			var canvas = document.createElement('canvas');
+			canvas.setAttribute("width", width);
+			canvas.setAttribute("height", height);
+			var ctx = canvas.getContext('2d');
+			ctx.width = width;
+			ctx.height = height;
+			ctx.fillStyle = '#FFFFFF';
+			ctx.fillRect(0, 0, width, height);
+			ctx.font = '320px Microsoft YaHei';
+			ctx.fillStyle = '#000000';
+			ctx.textAlign = 'center';
+
+			ctx.fillText(content, ctx.width / 2, ctx.height / 2 + 50, ctx.width - 20);
+
+			return canvas;
+		},
+		get_geometry(odr_meshunion) {
+			const geom = new THREE.BufferGeometry();
+			geom.setAttribute(
+				"position",
+				new THREE.Float32BufferAttribute(
+					this.getStdVecEntries(odr_meshunion.vertices, true).flat(),
+					3
+				)
+			);
+			//获取uv坐标
+			geom.setAttribute(
+				"st",
+				new THREE.Float32BufferAttribute(
+					this.getStdVecEntries(odr_meshunion.st_coordinates, true).flat(),
+					2
+				)
+			);
+			//设置点颜色
+			geom.setAttribute(
+				"color",
+				new THREE.Float32BufferAttribute(
+					new Float32Array(geom.attributes.position.count * 3),
+					3
+				)
+			);
+			//设置几何体唯一编号
+			geom.setAttribute(
+				"id",
+				new THREE.Float32BufferAttribute(
+					new Float32Array(geom.attributes.position.count * 4),
+					4
+				)
+			);
+			// geom.setAttribute('ids', new THREE.Float32BufferAttribute(new Float32Array(geom.attributes.position.count * 4), 4));
+			//设置几何体索引数据
+			geom.setIndex(this.getStdVecEntries(odr_meshunion.indices, true));
+			geom.computeVertexNormals();
+			return geom;
+		}
+	},
+}

+ 868 - 0
src/mixin/workManagement/openDriveMixin.js

@@ -0,0 +1,868 @@
+import * as THREE from "three";
+import {
+	OrbitControls
+} from "three/examples/jsm/controls/OrbitControls";
+import {
+	RGBELoader
+} from "three/examples/jsm/loaders/RGBELoader";
+import {
+	Reflector
+} from "three/examples/jsm/objects/Reflector";
+import {
+	GLTFLoader
+} from "three/examples/jsm/loaders/GLTFLoader";
+import {
+	DRACOLoader
+} from "three/examples/jsm/loaders/DRACOLoader";
+import {
+	Line2
+} from "three/examples/jsm/lines/Line2";
+// import gsap from "gsap";
+// import * as CANNON from "cannon-es";
+
+import * as echarts from "echarts";
+
+export let openDriveMixin = {
+	data() {
+		return {
+			ModuleOpenDrive: null,
+			OpenDriveMap: null,
+			INTERSECTED_LANE_ID: 0xffffffff,
+			INTERSECTED_ROADMARK_ID: 0xffffffff,
+			refline_material: null,
+			lane_outlines_material: null,
+			roadmark_outlines_material: null,
+			disposable_objs: [],
+			id_material: null,
+			xyz_material: null,
+			st_material: null,
+			roadmarks_material: null,
+			road_objects_material: null,
+			road_network_material: null,
+			lane_picking_scene: null,
+			roadmark_picking_scene: null,
+			xyz_scene: null,
+			st_scene: null,
+			lane_picking_texture: null,
+			roadmark_picking_texture: null,
+			xyz_texture: null,
+			st_texture: null,
+			controls: null,
+			ground_grid: null,
+			road_network_mesh: null,
+			roadmarks_mesh: null,
+			road_objects_mesh: null,
+			refline_lines: null,
+			lane_outline_lines: null,
+			roadmark_outline_lines: null,
+			COLORS: {
+				road: 1.0,
+				roadmark: 1.0,
+				road_object: 0.9,
+				lane_outline: 0x444444,
+				roadmark_outline: 0xffffff,
+				ref_line: 0x444444,
+				background: 0x444444,
+				lane_highlight: 0xff3030,
+				roadmark_highlight: 0x2F4F4F,
+			},
+			renderer: null,
+			scene: null,
+			camera: null,
+			light: null,
+			lights: [
+				-295.65, 117.04, -408.97, -114.11, -272.34, -220.81, 250.93, 194.26,
+				338.92, 65.23, -3.58, -16.76,
+			],
+			startAndEndPoints: {},
+			mappingLineId: new Map()
+		}
+	},
+	created() {
+
+	},
+	mounted() {
+		this.init();
+		// this.loadMap("/map/mine4.xodr");
+	},
+	methods: {
+		drawPoint(point) {
+			if (this.startAndEndPoints[point.type]) {
+				this.scene.remove(this.startAndEndPoints[point.type].target);
+			}
+
+			const group = new THREE.Group();
+			let cricle = new THREE.CircleBufferGeometry(5, 200);
+			let metrial;
+			if (point.type == "start") {
+				metrial = new THREE.MeshBasicMaterial({
+					color: 0x00FF00
+				})
+			} else {
+				metrial = new THREE.MeshBasicMaterial({
+					color: 0xff0000
+				})
+			}
+			let mesh = new THREE.Mesh(cricle, metrial);
+			group.add(mesh);
+			let texture = new THREE.CanvasTexture(this.getTextCanvas(point.name));
+			let material = new THREE.SpriteMaterial({
+				map: texture
+			});
+			let sprite = new THREE.Sprite(material);
+			sprite.position.set(0, 0, 2);
+			group.add(sprite);
+			group.position.set(point.x - this.OpenDriveMap.x_offs, point.y - this.OpenDriveMap.y_offs, 0.015);
+			this.scene.add(group);
+			this.startAndEndPoints[point.type] = {
+				target: group,
+				point: point
+			};
+		},
+		clearPoint() {
+			Object.values(this.startAndEndPoints).forEach(value => {
+				this.scene.remove(value.target);
+			});
+			this.startAndEndPoints = {};
+		},
+		clearMappingId() {
+			this.mappingLineId = new Map();
+		},
+		loadMap(url) {
+			libOpenDrive().then((Module) => {
+				this.ModuleOpenDrive = Module;
+				fetch(url).then(
+					(file_data) => {
+						file_data.text().then((file_text) => {
+							//加载数据文件
+							this.loadFile(file_text, false);
+						});
+					}
+				);
+			});
+		},
+		reloadOdrMap() {
+			this.clearPoint();
+			if (this.OpenDriveMap) this.OpenDriveMap.delete();
+			this.OpenDriveMap = new this.ModuleOpenDrive.OpenDriveMap(
+				"./data.xodr",
+				PARAMS.lateralProfile,
+				PARAMS.laneHeight,
+				true
+			);
+			this.loadOdrMap(true, false);
+		},
+		reloadNewMap(url) {
+			this.clearPoint();
+			this.clearMappingId();
+			fetch(url, {}).then(response => response.blob()).then(blob => {
+				const file = new File([blob], "map.xodr", {
+					type: "text/plain",
+				});
+				this.onFileSelect(file);
+			})
+		},
+		onFileSelect(file) {
+			let file_reader = new FileReader();
+			file_reader.onload = () => {
+				this.loadFile(file_reader.result, true);
+			};
+			file_reader.readAsText(file);
+		},
+		loadFile(file_text, clear_map) {
+			//清除文件系统中保存的文件节点
+			if (clear_map) this.ModuleOpenDrive["FS_unlink"]("./data.xodr");
+			//将文件数据转为节点保存到文件系统本地指定的文件目录,支持读写
+			this.ModuleOpenDrive["FS_createDataFile"](
+				".",
+				"data.xodr",
+				file_text,
+				true,
+				true
+			);
+			//OpenDriveMap不为null,则已经打开过,需要删除地图重新尝试打开
+			if (this.OpenDriveMap) this.OpenDriveMap.delete();
+
+			//打开驱动地图
+			this.OpenDriveMap = new this.ModuleOpenDrive.OpenDriveMap(
+				"./data.xodr",
+				PARAMS.lateralProfile,
+				PARAMS.laneHeight,
+				true
+			);
+			//this.drawPoint();
+			this.loadOdrMap(clear_map);
+		},
+		loadOdrMap(clear_map = true, fit_view = true) {
+			if (clear_map) {
+				this.road_network_mesh.userData.odr_road_network_mesh.delete();
+				this.scene.remove(
+					this.road_network_mesh,
+					this.roadmarks_mesh,
+					this.road_objects_mesh,
+					this.refline_lines,
+					this.lane_outline_lines,
+					this.roadmark_outline_lines,
+					this.ground_grid
+				);
+				this.lane_picking_scene.remove(...this.lane_picking_scene.children);
+				this.roadmark_picking_scene.remove(...this.roadmark_picking_scene.children);
+				this.xyz_scene.remove(...this.xyz_scene.children);
+				this.st_scene.remove(...this.st_scene.children);
+				for (let obj of this.disposable_objs) obj.dispose();
+			}
+			//web浏览器内置api,精度微秒级,performance.now是浏览器(Web API)提供的方法,不同浏览器获取到的精度不同。Date.now是Javascript内置方法,差异主要在于浏览器遵循的ECMAScript规范。
+			const t0 = performance.now();
+			//是否清除地图
+			/**
+			 * 道路中间s方向的线
+			 */
+			//获取参考线矩形几何体
+			const reflines_geom = new THREE.BufferGeometry();
+			//获取驱动中参考线数据信息
+			const odr_refline_segments = this.OpenDriveMap.get_refline_segments(
+				parseFloat(PARAMS.resolution)
+			);
+			//设置参考线坐标点
+			reflines_geom.setAttribute(
+				"position",
+				new THREE.Float32BufferAttribute(
+					this.getStdVecEntries(odr_refline_segments.vertices).flat(),
+					3
+				)
+			);
+			//设置参考线坐标点索引
+			reflines_geom.setIndex(
+				this.getStdVecEntries(odr_refline_segments.indices, true)
+			);
+			//创建参考线物体
+			let refline_lines = new THREE.LineSegments(reflines_geom, this.refline_material);
+			this.refline_lines = refline_lines;
+			refline_lines.renderOrder = 10;
+			//设置是否可见
+			refline_lines.visible = PARAMS.ref_line;
+			refline_lines.matrixAutoUpdate = false;
+			this.disposable_objs.push(reflines_geom);
+			//将参考线加入场景中
+			this.scene.add(refline_lines);
+
+			/*
+			 *道路面
+			 */
+			//根据细节级别获取道路网格物体PARAMS.resolution 默认0.3中等级别
+			const odr_road_network_mesh = this.OpenDriveMap.get_mesh(
+				parseFloat(PARAMS.resolution)
+			);
+			//获取所有路段的车道(车道id为 -2, -1, 0, 1, 2)
+			const odr_lanes_mesh = odr_road_network_mesh.lanes_mesh;
+			//收集映射
+			for (const [vert_start_idx, lineId] of this.getStdMapEntries(odr_lanes_mesh.lane_start_indices)) {
+				const road_id = odr_lanes_mesh.get_road_id(vert_start_idx);
+				this.mappingLineId.set(road_id + ":" + lineId, vert_start_idx);
+			}
+
+			//获取所有路段车道点集构建道路物体
+			const road_network_geom = this.get_geometry(odr_lanes_mesh);
+			//设置道路颜色
+			road_network_geom.attributes.color.array.fill(this.COLORS.road);
+			//获取所有路段的车道的起始位置索引
+			//将索引作为车道开始和结束信息
+			for (const [vert_start_idx, _] of this.getStdMapEntries(odr_lanes_mesh.lane_start_indices)) {
+				const vert_idx_interval = odr_lanes_mesh.get_idx_interval_lane(vert_start_idx);
+				const vert_count = vert_idx_interval[1] - vert_idx_interval[0];
+				const vert_start_idx_encoded = this.encodeUInt32(vert_start_idx);
+				const attr_arr = new Float32Array(vert_count * 4);
+				for (let i = 0; i < vert_count; i++)
+					attr_arr.set(
+						vert_start_idx_encoded,
+						i * 4
+					);
+				road_network_geom.attributes.id.array.set(
+					attr_arr,
+					vert_idx_interval[0] * 4
+				);
+			}
+
+			this.disposable_objs.push(road_network_geom);
+			let road_network_mesh = new THREE.Mesh(
+				road_network_geom,
+				this.road_network_material
+			);
+			road_network_mesh.renderOrder = 0;
+			road_network_mesh.userData = {
+				odr_road_network_mesh
+			};
+			road_network_mesh.matrixAutoUpdate = false;
+			road_network_mesh.visible = !(PARAMS.view_mode == "Outlines");
+			this.scene.add(road_network_mesh);
+			this.road_network_mesh = road_network_mesh;
+
+			/**
+			 * 选中被选中的车道进行离屏渲染
+			 */
+			const lane_picking_mesh = new THREE.Mesh(road_network_geom, this.id_material);
+			lane_picking_mesh.matrixAutoUpdate = false;
+			this.lane_picking_scene.add(lane_picking_mesh);
+
+			/* xyz coords road network mesh */
+			let xyz_mesh = new THREE.Mesh(road_network_geom, this.xyz_material);
+			xyz_mesh.matrixAutoUpdate = false;
+			this.xyz_scene.add(xyz_mesh);
+
+			/* st coords road network mesh */
+			const st_mesh = new THREE.Mesh(road_network_geom, this.st_material);
+			st_mesh.matrixAutoUpdate = false;
+			this.st_scene.add(st_mesh);
+
+			/**
+			 * 车道线宽度区域填充,由于车道线有宽度,宽度区域颜色填充
+			 */
+			const odr_roadmarks_mesh = odr_road_network_mesh.roadmarks_mesh;
+			const roadmarks_geom = this.get_geometry(odr_roadmarks_mesh);
+			roadmarks_geom.attributes.color.array.fill(this.COLORS.roadmark);
+			for (const [vert_start_idx, _] of this.getStdMapEntries(odr_roadmarks_mesh
+					.roadmark_type_start_indices)) {
+				const vert_idx_interval =
+					odr_roadmarks_mesh.get_idx_interval_roadmark(vert_start_idx);
+				const vert_count = vert_idx_interval[1] - vert_idx_interval[0];
+				const vert_start_idx_encoded = this.encodeUInt32(vert_start_idx);
+				const attr_arr = new Float32Array(vert_count * 4);
+				for (let i = 0; i < vert_count; i++)
+					attr_arr.set(
+						vert_start_idx_encoded, //数组
+						i * 4 //偏移量,每次偏移step:数组大小
+					);
+				roadmarks_geom.attributes.id.array.set(
+					attr_arr,
+					vert_idx_interval[0] * 4
+				);
+			}
+			this.disposable_objs.push(roadmarks_geom);
+
+			/* roadmarks mesh */
+			let roadmarks_mesh = new THREE.Mesh(roadmarks_geom, this.roadmarks_material);
+			this.roadmarks_mesh = roadmarks_mesh;
+			roadmarks_mesh.matrixAutoUpdate = false;
+			roadmarks_mesh.visible = !(PARAMS.view_mode == "Outlines") && PARAMS.roadmarks;
+			this.scene.add(roadmarks_mesh);
+
+			//离屏渲染车道线宽度区域
+			const roadmark_picking_mesh = new THREE.Mesh(roadmarks_geom, this.id_material);
+			roadmark_picking_mesh.matrixAutoUpdate = false;
+			this.roadmark_picking_scene.add(roadmark_picking_mesh);
+
+			/* road objects geometry */
+			const odr_road_objects_mesh = odr_road_network_mesh.road_objects_mesh;
+			const road_objects_geom = this.get_geometry(odr_road_objects_mesh);
+			road_objects_geom.attributes.color.array.fill(this.COLORS.road_object);
+			for (const [vert_start_idx, _] of this.getStdMapEntries(
+					odr_road_objects_mesh.road_object_start_indices
+				)) {
+				const vert_idx_interval =
+					odr_roadmarks_mesh.get_idx_interval_roadmark(vert_start_idx);
+				const vert_count = vert_idx_interval[1] - vert_idx_interval[0];
+				const vert_start_idx_encoded = this.encodeUInt32(vert_start_idx);
+				const attr_arr = new Float32Array(vert_count * 4);
+				for (let i = 0; i < vert_count; i++)
+					attr_arr.set(vert_start_idx_encoded, i * 4);
+				roadmarks_geom.attributes.id.array.set(
+					attr_arr,
+					vert_idx_interval[0] * 4
+				);
+			}
+			this.disposable_objs.push(road_objects_geom);
+
+			/* road objects mesh */
+			let road_objects_mesh = new THREE.Mesh(
+				road_objects_geom,
+				this.road_objects_material
+			);
+			this.road_objects_mesh = road_objects_mesh;
+			road_objects_mesh.matrixAutoUpdate = false;
+			this.scene.add(road_objects_mesh);
+
+			/**
+			 * 车道轮廓线
+			 * 道路轮廓线包含车道线,由于每条车道线有宽度,车道轮廓线即为车道线的中心线
+			 * id为0的车道轮廓线和参考线s重合
+			 */
+			const lane_outlines_geom = new THREE.BufferGeometry();
+			lane_outlines_geom.setAttribute(
+				"position",
+				road_network_geom.attributes.position
+			);
+			lane_outlines_geom.setIndex(
+				this.getStdVecEntries(odr_lanes_mesh.get_lane_outline_indices(), true)
+			);
+			let lane_outline_lines = new THREE.LineSegments(
+				lane_outlines_geom,
+				this.lane_outlines_material
+			);
+			this.lane_outline_lines = lane_outline_lines;
+			lane_outline_lines.renderOrder = 9;
+			this.disposable_objs.push(lane_outlines_geom);
+			this.scene.add(lane_outline_lines);
+
+			/**
+			 * 道路轮廓线
+			 */
+			const roadmark_outlines_geom = new THREE.BufferGeometry();
+			roadmark_outlines_geom.setAttribute(
+				"position",
+				roadmarks_geom.attributes.position
+			);
+			roadmark_outlines_geom.setIndex(
+				this.getStdVecEntries(
+					odr_roadmarks_mesh.get_roadmark_outline_indices(),
+					true
+				)
+			);
+			let roadmark_outline_lines = new THREE.LineSegments(
+				roadmark_outlines_geom,
+				this.roadmark_outlines_material
+			);
+			this.roadmark_outline_lines = roadmark_outline_lines;
+			roadmark_outline_lines.renderOrder = 8;
+			roadmark_outline_lines.matrixAutoUpdate = false;
+			this.disposable_objs.push(roadmark_outlines_geom);
+			roadmark_outline_lines.visible = PARAMS.roadmarks;
+			this.scene.add(roadmark_outline_lines);
+
+			/* fit view and camera */
+			const bbox_reflines = new THREE.Box3().setFromObject(refline_lines);
+			const max_diag_dist = bbox_reflines.min.distanceTo(bbox_reflines.max);
+			this.camera.far = max_diag_dist * 1.5;
+			//controls.autoRotate = fit_view;
+
+			this.camera.position.set(0, 0, max_diag_dist / 3);
+			// if (fit_view) {
+			// 	this.camera.position.set(0, 0, 50);
+			// 	// fitViewToBbox(bbox_reflines);
+			// 	//fitViewToBbox(bbox_reflines);
+			// }
+
+			/**
+			 * 网格
+			 */
+			let bbox_center_pt = new THREE.Vector3();
+			bbox_reflines.getCenter(bbox_center_pt);
+			let ground_grid = new THREE.GridHelper(
+				max_diag_dist * 6,
+				max_diag_dist / 10,
+				0x2f4f4f,
+				0x2f4f4f
+			);
+			// console.log(THREE.InfiniteGridHelper)
+			// let ground_grid = THREE.InfiniteGridHelper(10, 10, new THREE.Color(0x2f4f4f), 500);
+			this.ground_grid = ground_grid;
+			ground_grid.geometry.rotateX(Math.PI / 2);
+			ground_grid.position.set(
+				bbox_center_pt.x,
+				bbox_center_pt.y,
+				bbox_reflines.min.z - 0.1
+			);
+			this.disposable_objs.push(ground_grid.geometry);
+			this.scene.add(ground_grid);
+
+			// const rgbeLoader = new RGBELoader();
+			// rgbeLoader.loadAsync("hdr/index8.hdr").then((loader) => {
+			// 	loader.needsUpdate = true;
+			// 	loader.mapping = THREE.EquirectangularRefractionMapping;
+			// 	loader.encoding = THREE.RGBEEncoding; //设置编码属性的值
+			// 	loader.mapping = THREE.EquirectangularRefractionMapping;
+			// 	loader.minFilter = THREE.NearestFilter; //当一个纹素覆盖小于一个像素时,贴图将如何采样
+			// 	loader.magFilter = THREE.NearestFilter; //当一个纹素覆盖大于一个像素时,贴图将如何采样
+			// 	loader.flipY = true; //翻转图像的Y轴以匹配WebGL纹理坐标空间
+			// 	// this.scene.background = new THREE.Color(0x2F4F4F);
+			// 	const sphereGeometry = new THREE.SphereBufferGeometry(max_diag_dist, 100, 100);
+			// 	const sphereMetrial = new THREE.MeshBasicMaterial({
+			// 		color: 0xffffff,
+			// 		map: loader,
+			// 	});
+			// 	const sphereMesh = new THREE.Mesh(sphereGeometry, sphereMetrial);
+			// 	sphereMesh.geometry.scale(1, 1, -1);
+			// 	sphereMesh.rotation.x = Math.PI / 2;
+			// 	this.scene.add(sphereMesh);
+			// });
+			// this.scene.environment = new THREE.Color(0x2F4F4F);
+
+			/**
+			 * 灯光
+			 */
+			this.light.position.set(
+				bbox_reflines.min.x,
+				bbox_reflines.min.y,
+				bbox_reflines.max.z + max_diag_dist
+			);
+			this.light.target.position.set(
+				bbox_center_pt.x,
+				bbox_center_pt.y,
+				bbox_center_pt.z
+			);
+			this.light.position.needsUpdate = true;
+			this.light.target.position.needsUpdate = true;
+			this.light.target.updateMatrixWorld();
+
+			// const t1 = performance.now();
+			// console.log(
+			// 	"Heap size: " + this.ModuleOpenDrive.HEAP8.length / 1024 / 1024 + " mb"
+			// );
+
+
+			//删除数据冗余,避免造成内存泄漏
+			odr_roadmarks_mesh.delete();
+			odr_lanes_mesh.delete();
+			this.animate();
+		},
+		initThreeJs() {
+			// THREE.vertexColors = true;
+			//创建渲染器
+			this.renderer = new THREE.WebGLRenderer({
+				antialias: true, //抗锯齿,防失真
+				sortObjects: false, //定义渲染器是否应对对象进行排序
+				//对数深度缓冲区,防止模型闪烁
+				logarithmicdepthbuffer: true,
+			});
+			//开启投影阴影
+			this.renderer.shadowMap.enabled = true;
+			//设置渲染器渲染区域
+			this.renderer.setSize(window.innerWidth, window.innerHeight);
+			//渲染
+			document.getElementById("ThreeJS").appendChild(this.renderer.domElement);
+			//创建场景
+			this.scene = new THREE.Scene();
+			//创建透视相机
+			this.camera = new THREE.PerspectiveCamera(
+				100,
+				window.innerWidth / window.innerHeight,
+				0.1,
+				100000
+			);
+			//让Z轴朝上+
+			this.camera.up.set(0, 0, 1);
+
+			//创建控制器
+			this.controls = new OrbitControls(this.camera, this.renderer.domElement);
+			//const controls = new THREE.OrbControls(camera, renderer.domElement);
+			// this.controls.addEventListener("start", () => {
+			// 	/**
+			// 	 * 拖动开始停止开启聚集光和停止旋转
+			// 	 */
+			// 	spotlight_paused = true; //聚集光暂停
+			// 	//controls.autoRotate = false; //是否旋转
+			// });
+			// this.controls.addEventListener("end", () => {
+			// 	//拖动结束聚集光关闭并且开启旋转
+			// 	spotlight_paused = false; //聚集光开始
+			// 	//将其设为true,以自动围绕目标旋转。请注意,如果它被启用,你必须在你的动画循环里调用
+			// 	// controls.autoRotate = true;//开启旋转
+			// });
+			// controls.autoRotate = true; //开启旋转
+			//创建平行光
+			this.light;
+			for (let index = 0; index < this.lights.length / 2; index++) {
+				this.light = new THREE.DirectionalLight(0xffffff, 0.6);
+				this.light.position.set(this.lights[2 * index], this.lights[2 * index + 1], 5);
+				this.scene.add(this.light);
+				//平行光方向指向原点(0,0,0)
+				this.scene.add(this.light.target);
+			}
+
+			window.addEventListener("resize", this.onWindowResize, false);
+		},
+		initOffscreen() {
+			//选择车道线场景
+			this.lane_picking_scene = new THREE.Scene();
+			//车道线场景背景颜色
+			this.lane_picking_scene.background = new THREE.Color(0xffffff);
+			//路标场景
+			this.roadmark_picking_scene = new THREE.Scene();
+			//路标场景背景颜色
+			this.roadmark_picking_scene.background = new THREE.Color(0xffffff);
+			//坐标场景
+			this.xyz_scene = new THREE.Scene();
+			//坐标场景背景颜色
+			this.xyz_scene.background = new THREE.Color(0xffffff);
+			this.st_scene = new THREE.Scene();
+			this.st_scene.background = new THREE.Color(0xffffff);
+
+			//创建渲染器
+			this.lane_picking_texture = new THREE.WebGLRenderTarget(1, 1, {
+				type: THREE.FloatType,
+			});
+			this.roadmark_picking_texture = new THREE.WebGLRenderTarget(1, 1, {
+				type: THREE.FloatType,
+			});
+			this.xyz_texture = new THREE.WebGLRenderTarget(1, 1, {
+				type: THREE.FloatType,
+			});
+			this.st_texture = new THREE.WebGLRenderTarget(1, 1, {
+				type: THREE.FloatType,
+			});
+
+		},
+		initMaterial() {
+			//获取顶点着色器
+			const idVertexShader =
+				document.getElementById("idVertexShader").textContent;
+			const idFragmentShader =
+				document.getElementById("idFragmentShader").textContent;
+			const xyzVertexShader =
+				document.getElementById("xyzVertexShader").textContent;
+			const xyzFragmentShader =
+				document.getElementById("xyzFragmentShader").textContent;
+			const stVertexShader =
+				document.getElementById("stVertexShader").textContent;
+			const stFragmentShader =
+				document.getElementById("stFragmentShader").textContent;
+
+			//设置车道中轴线颜色
+			this.refline_material = new THREE.LineBasicMaterial({
+				color: this.COLORS.ref_line,
+				//color: 0x0000ff,
+			});
+
+			//道路线
+			this.lane_outlines_material = new THREE.LineBasicMaterial({
+				color: this.COLORS.lane_outline,
+			});
+
+			//外侧线
+			this.roadmark_outlines_material = new THREE.LineBasicMaterial({
+				color: this.COLORS.roadmark_outline,
+			});
+			this.id_material = new THREE.ShaderMaterial({
+				vertexShader: idVertexShader,
+				fragmentShader: idFragmentShader,
+			});
+			this.xyz_material = new THREE.ShaderMaterial({
+				vertexShader: xyzVertexShader,
+				fragmentShader: xyzFragmentShader,
+			});
+			this.st_material = new THREE.ShaderMaterial({
+				vertexShader: stVertexShader,
+				fragmentShader: stFragmentShader,
+			});
+			this.roadmarks_material = new THREE.MeshBasicMaterial({
+				vertexColors: true,
+			});
+			this.road_objects_material = new THREE.MeshBasicMaterial({
+				vertexColors: true,
+				side: THREE.DoubleSide,
+				wireframe: true,
+			});
+
+			this.road_network_material = new THREE.MeshPhongMaterial({
+				vertexColors: THREE.VertexColors,
+				wireframe: PARAMS.wireframe, //显示现况
+				shininess: 20.0,
+				transparent: true,
+				opacity: 0.4,
+			});
+		},
+		animate() {
+			//控制电脑帧频,防止刷屏过快导致的页面刷3D数据刷新过快 控制每秒30次
+			setTimeout(() => {
+				window.requestAnimationFrame(this.animate);
+			}, 1000 / 30);
+			this.controls.update();
+			this.camera.setViewOffset(
+				this.renderer.domElement.width, //画布的宽度
+				this.renderer.domElement.height, //画布的高度
+				(this.renderer.domElement.width / 2) | 0, //画布坐标系中,相机的x坐标位置
+				(this.renderer.domElement.height / 2) | 0, //画布坐标系中,相机的y坐标位置
+				1, //副相机的宽度
+				1 //副相机的高度
+			);
+			//离屏渲染
+			this.renderer.setRenderTarget(this.lane_picking_texture);
+			this.renderer.render(this.lane_picking_scene, this.camera);
+
+			this.renderer.setRenderTarget(this.roadmark_picking_texture);
+			this.renderer.render(this.roadmark_picking_scene, this.camera);
+
+			this.renderer.setRenderTarget(this.xyz_texture);
+			this.renderer.render(this.xyz_scene, this.camera);
+
+			this.renderer.setRenderTarget(this.st_texture);
+			this.renderer.render(this.st_scene, this.camera);
+
+			const lane_id_pixel_buffer = new Float32Array(4);
+			this.renderer.readRenderTargetPixels(
+				this.lane_picking_texture,
+				0,
+				0,
+				1,
+				1,
+				this.lane_id_pixel_buffer
+			);
+			const roadmark_id_pixel_buffer = new Float32Array(4);
+			this.renderer.readRenderTargetPixels(
+				this.roadmark_picking_texture,
+				0,
+				0,
+				1,
+				1,
+				this.roadmark_id_pixel_buffer
+			);
+			const xyz_pixel_buffer = new Float32Array(4);
+			this.renderer.readRenderTargetPixels(
+				this.xyz_texture,
+				0,
+				0,
+				1,
+				1,
+				this.xyz_pixel_buffer
+			);
+			xyz_pixel_buffer[0] += this.OpenDriveMap.x_offs;
+			xyz_pixel_buffer[1] += this.OpenDriveMap.y_offs;
+			const st_pixel_buffer = new Float32Array(4);
+			this.renderer.readRenderTargetPixels(
+				this.st_texture,
+				0,
+				0,
+				1,
+				1,
+				this.st_pixel_buffer
+			);
+
+			this.camera.clearViewOffset();
+			this.renderer.setRenderTarget(null);
+
+			if (this.isValid(lane_id_pixel_buffer) && false) {
+				const decoded_lane_id = this.decodeUInt32(lane_id_pixel_buffer);
+				const odr_lanes_mesh =
+					this.road_network_mesh.userData.odr_road_network_mesh.lanes_mesh;
+				if (this.INTERSECTED_LANE_ID != decoded_lane_id) {
+					if (this.INTERSECTED_LANE_ID != 0xffffffff) {
+						this.road_network_mesh.geometry.attributes.color.array.fill(
+							this.COLORS.road
+						);
+					}
+
+					this.INTERSECTED_LANE_ID = decoded_lane_id;
+					const lane_vert_idx_interval =
+						odr_lanes_mesh.get_idx_interval_lane(this.INTERSECTED_LANE_ID);
+					const vert_count =
+						lane_vert_idx_interval[1] - lane_vert_idx_interval[0];
+					this.applyVertexColors(
+						this.road_network_mesh.geometry.attributes.color,
+						new THREE.Color(this.COLORS.lane_highlight),
+						lane_vert_idx_interval[0],
+						vert_count
+					);
+					this.road_network_mesh.geometry.attributes.color.needsUpdate = true;
+				}
+				odr_lanes_mesh.delete();
+			} else {
+				if (this.INTERSECTED_LANE_ID != 0xffffffff) {
+					const odr_lanes_mesh =
+						this.road_network_mesh.userData.odr_road_network_mesh.lanes_mesh;
+					const lane_vert_idx_interval =
+						odr_lanes_mesh.get_idx_interval_lane(this.INTERSECTED_LANE_ID);
+					this.road_network_mesh.geometry.attributes.color.array.fill(this.COLORS.road);
+					this.road_network_mesh.geometry.attributes.color.needsUpdate = true;
+					odr_lanes_mesh.delete();
+					this.INTERSECTED_LANE_ID = 0xffffffff;
+				}
+			}
+
+			if (this.isValid(roadmark_id_pixel_buffer)) {
+				//获取
+				const decoded_roadmark_id = this.decodeUInt32(roadmark_id_pixel_buffer);
+				const odr_roadmarks_mesh =
+					this.road_network_mesh.userData.odr_road_network_mesh.roadmarks_mesh;
+				if (this.INTERSECTED_ROADMARK_ID != decoded_roadmark_id) {
+					if (this.INTERSECTED_ROADMARK_ID != 0xffffffff) {
+						const prev_roadmark_vert_idx_interval =
+							odr_roadmarks_mesh.get_idx_interval_roadmark(
+								this.INTERSECTED_ROADMARK_ID
+							);
+						this.roadmarks_mesh.geometry.attributes.color.array.fill(
+							this.COLORS.roadmark,
+							prev_roadmark_vert_idx_interval[0] * 3,
+							prev_roadmark_vert_idx_interval[1] * 3
+						);
+					}
+					this.INTERSECTED_ROADMARK_ID = decoded_roadmark_id;
+					const roadmark_vert_idx_interval =
+						odr_roadmarks_mesh.get_idx_interval_roadmark(
+							this.INTERSECTED_ROADMARK_ID
+						);
+					const vert_count =
+						roadmark_vert_idx_interval[1] - roadmark_vert_idx_interval[0];
+					this.applyVertexColors(
+						this.roadmarks_mesh.geometry.attributes.color,
+						new THREE.Color(this.COLORS.roadmark_highlight),
+						roadmark_vert_idx_interval[0],
+						vert_count
+					);
+					this.roadmarks_mesh.geometry.attributes.color.needsUpdate = true;
+				}
+				odr_roadmarks_mesh.delete();
+			} else {
+				if (this.INTERSECTED_ROADMARK_ID != 0xffffffff) {
+					const odr_roadmarks_mesh =
+						this.road_network_mesh.userData.odr_road_network_mesh.roadmarks_mesh;
+					const roadmark_vert_idx_interval =
+						odr_roadmarks_mesh.get_idx_interval_lane(this.INTERSECTED_ROADMARK_ID);
+					this.roadmarks_mesh.geometry.attributes.color.array.fill(
+						this.COLORS.roadmark,
+						roadmark_vert_idx_interval[0] * 3,
+						roadmark_vert_idx_interval[1] * 3
+					);
+					this.roadmarks_mesh.geometry.attributes.color.needsUpdate = true;
+					this.INTERSECTED_ROADMARK_ID = 0xffffffff;
+					odr_roadmarks_mesh.delete();
+				}
+			}
+
+			if (this.INTERSECTED_LANE_ID != 0xffffffff) {
+				const odr_lanes_mesh =
+					this.road_network_mesh.userData.odr_road_network_mesh.lanes_mesh;
+				const road_id = odr_lanes_mesh.get_road_id(this.INTERSECTED_LANE_ID);
+				const lanesec_s0 = odr_lanes_mesh.get_lanesec_s0(this.INTERSECTED_LANE_ID);
+				const lane_id = odr_lanes_mesh.get_lane_id(this.INTERSECTED_LANE_ID);
+				const lane_type = this.OpenDriveMap.roads
+					.get(road_id)
+					.s_to_lanesection.get(lanesec_s0)
+					.id_to_lane.get(lane_id).type;
+				odr_lanes_mesh.delete();
+			}
+			this.renderer.render(this.scene, this.camera);
+		},
+		fillColorLine(roadId, lineId) {
+			lineId = this.mappingLineId.get(roadId + ":" + lineId);
+			const odr_lanes_mesh = this.road_network_mesh.userData.odr_road_network_mesh.lanes_mesh;
+			const lane_vert_idx_interval = odr_lanes_mesh.get_idx_interval_lane(lineId);
+			const vert_count = (lane_vert_idx_interval[1] - lane_vert_idx_interval[0]);
+			this.applyVertexColors(this.road_network_mesh.geometry.attributes.color, new THREE.Color(this.COLORS
+					.lane_highlight),
+				lane_vert_idx_interval[0], vert_count);
+			this.road_network_mesh.geometry.attributes.color.needsUpdate = true;
+			odr_lanes_mesh.delete();
+		},
+		clearColorLine(roadId, lineId) {
+			lineId = this.mappingLineId.get(roadId + ":" + lineId);
+			const odr_lanes_mesh = this.road_network_mesh.userData.odr_road_network_mesh.lanes_mesh;
+			const lane_vert_idx_interval = odr_lanes_mesh.get_idx_interval_lane(lineId);
+			const vert_count = (lane_vert_idx_interval[1] - lane_vert_idx_interval[0]);
+			this.road_network_mesh.geometry.attributes.color.array.fill(
+				this.COLORS.road
+			);
+			this.road_network_mesh.geometry.attributes.color.needsUpdate = true;
+			odr_lanes_mesh.delete();
+		},
+		onWindowResize() {
+			this.camera.aspect = window.innerWidth / window.innerHeight;
+			this.camera.updateProjectionMatrix();
+			this.renderer.setSize(window.innerWidth, window.innerHeight);
+			this.renderer.setPixelRatio(window.devicePixelRatio);
+		},
+		init() {
+			this.initThreeJs();
+			this.initOffscreen();
+			this.initMaterial();
+		}
+	}
+}

+ 0 - 1
src/router/filter.js

@@ -11,7 +11,6 @@ Router.prototype.push = function push(location) {
 
 // http://localhost:8082/?code=1&ticket=1
 router.beforeEach(async (to, from, next) => {
-
     let {
         code,
         ticket

+ 10 - 1
src/router/workManagement.js

@@ -49,7 +49,16 @@ export default [{
         },
         component: () => import("@/views/workManagement/manualRunProjectDetail")
     },
-
+	{
+	    path: "/multimodeSimulation",
+	    name: "multimodeSimulation",
+	    meta: {
+	        tabname: "场景编辑",
+	        menuKind: "workManagement",
+	        login: true
+	    },
+	    component: () => import("@/views/workManagement/multimodeSimulation")
+	},
     {
         path: "/autoRunProjectList",
         name: "autoRunProjectList",

+ 1 - 2
src/views/modelLibrary/vehicleConfigurationDetail.vue

@@ -203,7 +203,6 @@
                     @controlsEnabled="controlsEnabled"
                     @loadingDone="loadingDone"
                 ></three-sensor>
-
                 <div v-show="configBox" class="conditions">
                     <el-form
                         ref="formA"
@@ -1165,4 +1164,4 @@ export default {
         }
     }
 }
-</style>
+</style>

+ 6 - 5
src/views/sceneLibrary/components/editor.vue

@@ -54,16 +54,17 @@ export default {
     },
     watch: {
         content(newVal, oldVal) {
-            if (newVal && newVal != oldVal) {
+            if (newVal && newVal !== oldVal) {
                 this.html = `<pre><code>${newVal}</code></pre>`;
 
                 this.$nextTick(() => {
                     SlateTransforms.setNodes(
                         this.editor,
-                        { language: "python" },
-                        {
-                            type: "code",
-                        }
+                        // todo python渲染太慢了
+                        // { language: "python" },
+                        // {
+                        //     type: "code",
+                        // }
                     );
                 });
             }

+ 4 - 4
src/views/workManagement/autoRunProjectDetail.vue

@@ -106,7 +106,7 @@
                     </div>
                 </div> -->
                 <div class="tip">(最多可用资源:{{ maxCount }})</div>
-                <div class="tip">(最小是5,最大是600)</div>
+                <div class="tip">(最小是5,最大是3600)</div>
             </div>
         </el-form>
 
@@ -141,7 +141,7 @@ let validateNum = (rule, value, callback) => {
 };
 let validateNumA = (rule, value, callback) => {
     !/^(\d+)$/.test(value) && callback(new Error(rule.message));
-    if (+value < 5 || +value > 600) callback(new Error(rule.message));
+    if (+value < 5 || +value > 3600) callback(new Error(rule.message));
     callback();
 };
 let validateNumB = (rule, value, callback) => {
@@ -203,7 +203,7 @@ export default {
                     { required: true, message: "请输入", trigger: "blur" },
                     {
                         validator: validateNumA,
-                        message: "请输入不小于5且不大于600的正整数",
+                        message: "请输入不小于5且不大于3600的正整数",
                         trigger: ["blur"],
                     },
                 ],
@@ -514,4 +514,4 @@ export default {
     padding-top: 30px;
     text-align: center;
 }
-</style>
+</style>

+ 131 - 0
src/views/workManagement/components/openDriver.vue

@@ -0,0 +1,131 @@
+<template>
+	<div id="ThreeJS" class="three_div"></div>
+</template>
+
+
+<script>
+	import {
+		getStdMapMixin
+	} from "@/mixin/workManagement/getStdMapMixin.js"
+	import {
+		openDriveMixin
+	} from "@/mixin/workManagement/openDriveMixin.js"
+
+
+	export default {
+		name: "OpenDrive",
+		mixins: [getStdMapMixin, openDriveMixin],
+		components: {
+			// vueQr,
+			// glHome,
+		},
+		data() {
+			return {
+				isLoaded: false,
+				lineArr:[],
+				startPointJson: {},
+				endPointJson: {},
+				timer: ''
+			};
+		},
+		props: {
+			mapId: {
+				type: String,
+				default: () => ""
+			},
+			startPoint: {
+				type: Object,
+				default: () => {}
+			},
+			endPoint: {
+				type: Object,
+				default: () => {}
+			},
+			sections: {
+				type: Array,
+				default: () =>[]
+			}
+		},
+		methods: {
+			changeMap(fileUrl) {
+				this.onFileSelect(fileUrl);
+			},
+			getMapDetails(mapId) {
+				
+				this.$axios({
+					method: "post",
+					url: this.$api.workManagement.mapDetails,
+					data: {
+						mapId
+					}
+				}).then((res) => {
+					if (res.code == 200) {
+						if(this.isLoaded == true){
+							this.reloadNewMap(res.info.mapPath);
+						}else{
+							this.loadMap(res.info.mapPath);
+							this.isLoaded = true;
+						}
+						
+					}
+				})
+			},
+			reloadMap(){
+				this.reloadOdrMap();
+				this.initData();
+			},
+			initData(){
+				// this.startPoint = {};
+				// this.endPoint = {};
+				// this.sections = [];
+			}
+		},
+		mounted() {
+		},
+		updated() {
+
+		},
+		watch: {
+			mapId: {
+				handler(newVal, oldVal) {
+					this.getMapDetails(newVal);
+				}
+			},
+			startPoint: {
+				handler(newVal, oldVal) {
+					this.drawPoint(newVal);
+				}
+			},
+			endPoint: {
+				handler(newVal, oldVal) {
+					this.drawPoint(newVal);
+				}
+			},
+			sections: {
+				handler(newVal, oldVal) {
+					if(this.lineArr && this.lineArr.length > 0){
+						this.lineArr.forEach((elem, index) => {
+							this.clearColorLine(elem.roadId, elem.laneId);
+						})
+						//this.clearPoint();
+					}
+					newVal.forEach((elem, index) => {
+						this.fillColorLine(elem.roadId, elem.laneId);
+					})
+					this.lineArr = newVal;
+				}
+			}
+		}
+	};
+</script>
+<style scoped lang="less">
+	.three_div {
+		width: 100% !important;
+		height: 100% !important;
+	}
+
+	/deep/ canvas {
+		width: 100% !important;
+		height: 100% !important;
+	}
+</style>

+ 175 - 0
src/views/workManagement/components/pathDialog.vue

@@ -0,0 +1,175 @@
+<template>
+	<el-dialog title="选择轨迹" :visible.sync="open" width="25%" :before-close="onClose" :modal="false"
+		:close-on-click-modal="false">
+		<el-form ref="form" :model="selectRecord" label-width="100px" size="mini">
+			<el-form-item label="选择轨迹">
+				<el-select v-model="dataParams.pathId" @change="switchTrack">
+					<el-option v-for="item in trackList" :key="item.id" :label="getPathName(item.pathSort)"
+						:value="item.id">
+					</el-option>
+				</el-select>
+			</el-form-item>
+			<el-form-item label="轨迹起点">
+				<el-select v-model="dataParams.pathStartJson" value-key="name" @change="switchStartPoint">
+					<el-option v-for="(item, index) in selectTrack.startPoints" :key="index" :label="item.name"
+						:value="item" :disabled="checkOption(selectTrack.id, item.name, 'start')">
+					</el-option>
+				</el-select>
+			</el-form-item>
+			<el-form-item label="轨迹终点">
+				<el-select v-model="dataParams.pathEndJson" value-key="name" @change="switchEndPoint">
+					<el-option v-for="(item, index) in selectTrack.endPoints" :key="index" :label="item.name"
+						:value="item" :disabled="checkOption(selectTrack.id, item.name, 'end')">
+					</el-option>
+				</el-select>
+			</el-form-item>
+			<el-form-item label="车辆朝向">
+				<el-input v-model="dataParams.pathStartJson.h" disabled></el-input>
+			</el-form-item>
+		</el-form>
+		<span slot="footer" class="dialog-footer">
+			<el-button @click="onClose">取 消</el-button>
+			<el-button type="primary" @click="onSubmit">确 定</el-button>
+		</span>
+	</el-dialog>
+</template>
+
+<script>
+	export default {
+		name: "PathDialog",
+		components: {
+			// vueQr,
+			// glHome,
+		},
+		data() {
+			return {
+				selectRecord: {
+					pathStartJson: {
+
+					}
+				},
+				trackList: [],
+				selectTrack: {},
+				dataParams: {
+					pathId: "",
+					pathStartJson: {},
+					pathEndJson: {}
+				},
+				preStartPointName: "",
+				preEndPointName: ""
+			};
+		},
+		props: {
+			open: {
+				type: Boolean,
+				default: _ => false
+			},
+			params: {
+				type: Object,
+				default: _ => {}
+			}
+
+		},
+		computed: {
+			getPathName() {
+				return id => "轨迹" + id;
+			}
+		},
+		methods: {
+			checkOption(pathId, pointName, type) {
+				if (!this.dataParams.selectedPoints[pathId]) {
+					return false;
+				}
+
+				if (!this.dataParams.selectedPoints[pathId][type]) {
+					return false;
+				}
+				return this.dataParams.selectedPoints[pathId][type].includes(pointName);
+			},
+			isEmptyJson(obj) {
+				return Object.keys(obj).length === 0;
+			},
+			getMapDetails(mapId) {
+				this.$axios({
+					method: "post",
+					url: this.$api.workManagement.mapDetails,
+					data: {
+						mapId
+					}
+				}).then((res) => {
+					if (res.code == 200 && res.info) {
+						console.log(res.info.path)
+						this.trackList = res.info.path;
+						this.switchTrack(this.params.pathId);
+					}
+				})
+			},
+			switchTrack(id) {
+				let isFirst = this.isEmptyJson(this.selectTrack);
+				this.trackList.forEach((elem, index) => {
+					if (elem.id == id) {
+						this.selectTrack = elem;
+					}
+				});
+				if (!isFirst) {
+					this.dataParams.pathStartJson = {};
+					this.dataParams.pathEndJson = {};
+				}
+				this.changeMap();
+
+			},
+			switchStartPoint(newVal) {
+				console.log(this.selectTrack)
+				let pointNames = this.dataParams.selectedPoints[this.selectTrack.id]["start"];
+				let searchIndex = pointNames.indexOf(this.preStartPointName);
+				if (searchIndex != -1) {
+					pointNames.splice(searchIndex, 1);
+				}
+				pointNames.push(newVal.name)
+				this.preStartPointName = newVal.name;
+				this.changeMap();
+			},
+			switchEndPoint(newVal) {
+				let pointNames = this.dataParams.selectedPoints[this.selectTrack.id]["end"];
+				let searchIndex = pointNames.indexOf(this.preEndPointName);
+				if (searchIndex != -1) {
+					pointNames.splice(searchIndex, 1);
+				}
+				pointNames.push(newVal.name)
+				this.preEndPointName = newVal.name;
+				this.changeMap();
+			},
+			changeMap() {
+				let data = Object.assign({}, this.dataParams, {
+					sections: this.selectTrack.sections
+				})
+				data.pathStartJson.type = "start";
+				data.pathEndJson.type = "end";
+				this.$emit("change", data);
+			},
+			onClose() {
+				this.$emit("onClose");
+			},
+			onSubmit() {
+				this.$emit("onSubmit", Object.assign({}, this.dataParams, {
+					sections: this.selectTrack.sections,
+					pathSort: this.selectTrack.pathSort
+				}));
+			}
+		},
+		watch: {
+			params: {
+				handler(newVal, oldVal) {
+					this.selectTrack = {},
+						this.dataParams = JSON.parse(JSON.stringify(newVal));
+					this.preStartPointName = this.dataParams.pathStartJson.name;
+					this.preEndPointName = this.dataParams.pathEndJson.name;
+					this.getMapDetails(newVal.mapId);
+				}
+			}
+		}
+	}
+</script>
+
+<style>
+</style>

+ 353 - 0
src/views/workManagement/components/simulationTable.vue

@@ -0,0 +1,353 @@
+<template>
+	<div class="container">
+		<div class="table-operate">
+			<el-button class="btn" type="primary" @click="add">添加</el-button>
+			<el-button class="btn" type="info" @click="settingsSimulation">设为仿真视角</el-button>
+		</div>
+		<el-table class="table-content" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%">
+			<el-table-column label="序号">
+				<template slot-scope="scope">
+					<el-radio v-model="currentFactor" :label="getRowIndex(scope.$index)"
+						@change="changeRowIndex(scope.row)"></el-radio>
+				</template>
+			</el-table-column>
+			<el-table-column label="选择车辆">
+				<template slot-scope="scope">
+					<el-select v-model="scope.row.carId" class="algorithm-select">
+						<el-option v-for="item in carList" :key="item.code" :label="item.name" :value="item.code">
+						</el-option>
+					</el-select>
+				</template>
+			</el-table-column>
+			<el-table-column label="选择算法">
+				<template slot-scope="scope">
+					<el-select v-model="scope.row.algorithmId" class="algorithm-select">
+						<el-option v-for="item in algorithmList" :key="item.code" :label="item.name" :value="item.code">
+						</el-option>
+					</el-select>
+				</template>
+			</el-table-column>
+			<el-table-column label="选择轨迹">
+				<template slot-scope="scope">
+					<div @click="showDialog(scope.row)" class="path-text">{{getSelectPathText(scope.row)}}</div>
+				</template>
+			</el-table-column>
+			<el-table-column label="操作">
+				<template slot-scope="scope">
+					<el-button class="delete-btn" size="mini-btn" type="danger"
+						@click="deleteRecord(scope.row)">删除</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
+	</div>
+</template>
+
+<script>
+	export default {
+		name: "SimulationTable",
+		components: {
+			// vueQr,
+			// glHome,
+		},
+		data() {
+			return {
+				currentFactor: "",
+				tableData: [],
+				carList: [],
+				algorithmList: [],
+				selectRow: {},
+				showRow: {},
+				notSaved: [],
+				contentHasSave: false,
+				mockData: {
+					"sceneId": "",
+					"carId": "",
+					"carName": "",
+					"sceneCarId": "",
+					"algorithmId": "",
+					"algorithmType": 0,
+					"pathId": "",
+					"pathStart": {},
+					"pathEnd": {}
+				},
+				defaultData: {
+					"newType": "new",
+					"newUuid": "",
+					"id": "",
+					"sceneId": "",
+					"carId": "",
+					"algorithmId": "",
+					"algorithmType": 0,
+					"pathId": "",
+					"sceneCarId": null,
+					"pathStartJson": {
+
+					},
+					"pathEndJson": {}
+				},
+				collectPointsSelected: {}
+			};
+		},
+		props: {
+			sceneId: {
+				type: String,
+				default: _ => ""
+			}
+		},
+		computed: {
+			getSelectPathText(row) {
+				return (row) => "轨迹" + row.pathSort + " (" + row.pathStartJson.name + "," + row.pathEndJson.name + ")";
+			}
+		},
+		mounted() {
+			this.getCarList();
+			this.getAlgorithmList();
+			this.getSceneCarList();
+		},
+		methods: {
+			add() {
+				let newRow = JSON.parse(JSON.stringify(this.defaultData));
+				newRow.newUuid = this.getUUID();
+				this.tableData.push(newRow);
+				this.notSaved.push(newRow);
+
+			},
+			updateRow(data) {
+				this.showRow.pathId = data.pathId;
+				this.showRow.pathStartJson = data.pathStartJson;
+				this.showRow.pathEndJson = data.pathEndJson;
+				this.showRow.pathSort = data.pathSort;
+			},
+			getRowIndex(rowIndex) {
+				return rowIndex + 1;
+			},
+			changeRowIndex(row) {
+				this.selectRow = row;
+				this.$emit("changeRow", row);
+			},
+			showDialog(row) {
+				this.showRow = row;
+				this.collectSelectedPoints(this.tableData);
+				let data = {
+					pathId: row.pathId,
+					pathStartJson: row.pathStartJson,
+					pathEndJson: row.pathEndJson,
+					selectedPoints: this.collectPointsSelected
+				};
+				this.$emit("openDialog", data);
+			},
+			getSceneCarList() {
+				this.$axios({
+					method: "post",
+					url: this.$api.workManagement.sceneCarList,
+					data: {
+						"sceneId": this.sceneId,
+						"pageNum": "1",
+						"pageSize": 999999
+					}
+				}).then((res) => {
+					if (res.code == 200) {
+						this.tableData = res.info.list;
+					}
+				})
+			},
+			getCarList() {
+				this.$axios({
+					method: "post",
+					url: this.$api.workManagement.carList,
+					data: {
+						"dropDownType": "2",
+						"algorithmType": "1"
+					}
+				}).then((res) => {
+					if (res.code == 200) {
+						this.carList = [...res.info[0].dropDownList[0].children, ...res.info[0]
+							.dropDownList[1]
+							.children
+						];
+						if (this.carList.length > 0) {
+							this.selectCarId = this.carList[0].code;
+						}
+					}
+				})
+			},
+			collectSelectedPoints(dataList) {
+				this.collectPointsSelected = {};
+				dataList.forEach((elem, index) => {
+					if (elem.pathId) {
+						if (!this.collectPointsSelected[elem.pathId]) {
+							this.collectPointsSelected[elem.pathId] = {};
+						}
+						let tarckSelected = this.collectPointsSelected[elem.pathId];
+						if (!tarckSelected.start) {
+							tarckSelected.start = [];
+						}
+						tarckSelected.start.push(elem.pathStartJson.name);
+						if (!tarckSelected.end) {
+							tarckSelected.end = [];
+						}
+						tarckSelected.end.push(elem.pathEndJson.name);
+					}
+				})
+			},
+			deleteRecord(row) {
+				this.$confirm('此操作将删除该记录, 是否继续?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					if (row.newType) {
+						this.removeViewTableRecord(row);
+					} else {
+						this.$axios({
+							method: "post",
+							url: this.$api.workManagement.deleteRecord,
+							data: {
+								"sceneCarId": row.id
+							}
+						}).then((res) => {
+							if (res.code == 200) {
+								this.removeViewTableRecord(row);
+							}
+						})
+					}
+				}).catch(() => {});
+			},
+			removeViewTableRecord(row) {
+				let length = this.tableData.length;
+				for (let index = 0; index < length; index++) {
+					let elem = this.tableData[index];
+					if ((row.newUuid && row.newUuid == elem.newUuid) || (row.id && row.id == elem.id)) {
+						this.tableData.splice(index, 1);
+						break;
+					}
+				}
+			},
+			getAlgorithmList() {
+				this.$axios({
+					method: "post",
+					url: this.$api.workManagement.algorithmList,
+					data: {
+						"dropDownType": "1",
+						"algorithmType": "1"
+					}
+				}).then((res) => {
+					if (res.code == 200 && res.info) {
+						this.algorithmList = [...res.info[0].dropDownList[0].children, ...res.info[0]
+							.dropDownList[
+								1].children
+						];
+						if (this.algorithmList.length > 0) {
+							this.selectAlgorithmId = this.algorithmList[0].code;
+						}
+					}
+				})
+			},
+			settingsSimulation() {
+				this.$emit("simulationBtnCallBack", this.selectRow);
+			},
+			saveAll(mapId) {
+				this.$axios({
+					method: "post",
+					url: this.$api.workManagement.saveOrUpdateSceneCarList,
+					data: {
+						"mapId": mapId,
+						"sceneId": this.sceneId,
+						"paramList": this.switchModel(this.tableData)
+					}
+				}).then((res) => {
+					if (res.code == 200) {
+						this.$message({
+							message: '保存成功',
+							type: 'success'
+						});
+						this.getSceneCarList();
+					} else {
+						this.$message({
+							message: '保存失败',
+							type: 'warning'
+						});
+					}
+				})
+			},
+			switchModel(dataArr) {
+				let newDataArr = []
+				dataArr.forEach((elem, index) => {
+					let data = {
+						"sceneId": elem.sceneId,
+						"carId": elem.carId,
+						"carName": elem.carName,
+						"sceneCarId": elem.sceneCarId,
+						"algorithmId": elem.algorithmId,
+						"algorithmType": elem.algorithmType,
+						"pathId": elem.pathId,
+						"pathStart": elem.pathStartJson,
+						"pathEnd": elem.pathEndJson
+					}
+					if (elem.newType) {
+						data.sceneId = this.sceneId;
+						data.sceneCarId = "";
+					} else {
+						data.sceneCarId = elem.id;
+					}
+
+					newDataArr.push(data);
+				})
+				return newDataArr;
+			},
+			S4() {
+				return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
+			},
+			getUUID() {
+				return (this.S4() + this.S4() + "-" + this.S4() + "-" + this.S4() + "-" + this.S4() + "-" + this
+					.S4() +
+					this.S4() + this.S4());
+			}
+		}
+	}
+</script>
+
+<style lang='less' scoped>
+	.container {
+		width: 100%;
+		height: 100%;
+		display: flex;
+		flex-direction: column;
+	}
+
+	.table-operate {
+		height: 3.1rem;
+		display: flex;
+		flex-direction: row;
+		justify-content: right;
+		align-items: center;
+	}
+
+	.btn {
+		color: #FFFFFF;
+		height: 2.5rem;
+		margin: 1rem;
+	}
+
+	.table-content {
+		flex: auto;
+	}
+
+	.delete-btn {
+		color: #FFFFFF;
+		border-radius: 0.5rem;
+	}
+
+	.path-text {
+		cursor: pointer;
+		font-size: 0.75rem;
+	}
+
+	/deep/ .table-content {
+		height: 100%;
+		overflow-y: scroll;
+	}
+	/deep/ .el-input,/deep/ .el-input__inner{
+		width: 100px !important;
+	}
+</style>

+ 283 - 0
src/views/workManagement/multimodeSimulation.vue

@@ -0,0 +1,283 @@
+<template>
+	<div class="container">
+		<div class="select-map" :class="{'no-interaction': isDisabled}">
+			地图选择:
+			<el-select class="select-content" v-model="openDrive.mapId" placeholder="请选择">
+				<el-option v-for="(item, index) in mapList" :key="item.id" :label="item.mapName" :value="item.id">
+				</el-option>
+			</el-select>
+		</div>
+		<div class="content">
+			<open-drive class="map" ref="openDrive" :mapId="openDrive.mapId" :startPoint="openDrive.pathStartJson"
+				:endPoint="openDrive.pathEndJson" :sections="openDrive.sections"></open-drive>
+			<SimulationTable ref="table" @simulationBtnCallBack="settingSimulation" @openDialog="showDialog"
+				class="table" :sceneId="sceneId" :class="{'no-interaction': isDisabled}"/>
+		</div>
+		<div class="operate" :class="{'no-interaction': isDisabled}">
+			<el-button @click="saveAll" class="btn" type="primary">保存</el-button>
+			<el-button @click="back" class="btn" type="info">返回</el-button>
+		</div>
+		<PathDialog :open="dialog.dialogOpen" :params="dialog.dialogParam" @onClose="closeDialog"
+			@onSubmit="sumbitDialog" @change="changeMap" />
+	</div>
+</template>
+
+<script>
+	import OpenDrive from "@/views/workManagement/components/openDriver";
+	import PathDialog from "@/views/workManagement/components/pathDialog";
+	import SimulationTable from "@/views/workManagement/components/simulationTable";
+
+	export default {
+		name: "MultimodeSimulation", // 工作管理
+		components: {
+			OpenDrive,
+			PathDialog,
+			SimulationTable
+		},
+		data() {
+			return {
+				isDisabled: false,
+				mapList: [],
+				sceneId: "",
+				dialog: {
+					dialogParam: {},
+					dialogOpen: false
+				},
+				openDrive: {
+					mapId: "",
+					pathStartJson: {},
+					pathEndJson: {},
+					sections: []
+				}
+			}
+
+		},
+		beforeMount() {
+			this.sceneId = this.$route.query.sceneId;
+			if(!this.sceneId){
+				this.sceneId = "b1e8fb96cf8a41d9a0364d29a9289628";
+			}
+		},
+		mounted() {
+			this.getMapList();
+		},
+		methods: {
+			getMapList() {
+				this.$axios({
+					method: "post",
+					url: this.$api.workManagement.mapList,
+					data: {
+						"pageNum": 0,
+						"pageSize": 999999
+					}
+				}).then((res) => {
+					if (res.code == 200) {
+						this.mapList = res.info;
+						if (this.mapList.length > 0) {
+							this.$axios({
+								method: "post",
+								url: this.$api.workManagement.mapList,
+								data: {
+									"pageNum": 0,
+									"pageSize": 99999
+								}
+							}).then((res) => {
+								if (res.code == 200) {
+									this.mapList = res.info;
+									if (this.mapList.length > 0) {
+										this.openDrive.mapId = this.mapList[0].id;
+									}
+								}
+							})
+						}
+
+					}
+				})
+			},
+			settingSimulation(row) {
+				if (row.id == null || row.id == "") {
+					this.$message({
+						message: '警告哦,请选择一条已保存记录',
+						type: 'warning'
+					});
+					return;
+				}
+
+				this.$confirm('确定设为仿真视角?')
+					.then(_ => {
+						this.$axios({
+							method: "post",
+							url: this.$api.workManagement.settingsSimulation,
+							data: {
+								"sceneCarId": row.id,
+							}
+						}).then((res) => {
+							if(res.code == 200){
+								this.$message({
+									message: '设为仿真视角成功',
+									type: 'success'
+								});
+							}else{
+								this.$message({
+									message: '设为仿真视角失败',
+									type: 'warning'
+								});
+							}
+						})
+					})
+					.catch(_ => {});
+
+			},
+			reloadMap() {
+				setTimeout(() => {
+					this.$refs.openDrive.reloadMap();
+				}, 50);
+			},
+			changeMap(data) {
+				this.openDrive = data;
+			},
+			showDialog(data) {
+				this.isDisabled = true;
+				this.dialog.dialogOpen = true;
+				this.dialog.dialogParam = Object.assign({}, data, {
+					mapId: this.openDrive.mapId
+				});
+			},
+			closeDialog() {
+				this.dialog.dialogOpen = false;
+				this.isDisabled = false;
+				this.reloadMap();
+			},
+			sumbitDialog(data) {
+				this.dialog.dialogOpen = false;
+				this.isDisabled = false;
+				this.$refs.table.updateRow(data);
+				this.reloadMap();
+			},
+			saveAll(){
+				this.$refs.table.saveAll(this.openDrive.mapId);
+			},
+			back(){
+				
+				this.$router.go(-1);
+			}
+		}
+	};
+</script>
+
+<style lang='less' scoped>
+	*{
+		margin: 0;
+		padding: 0;
+		box-sizing: content-box;
+	}
+	.mainBox {
+		padding-bottom: 0px !important
+	}
+
+	.container {
+		/* background-color: rebeccapurple; */
+		height: 100%;
+		width: 100%;
+		display: flex;
+		flex-direction: column;
+		padding: 0 0.5rem;
+	}
+
+	.select-map {
+		font-size: 1rem;
+		color: #333333;
+		letter-spacing: 0.05rem;
+		display: flex;
+		align-items: center;
+		padding-left: 1rem;
+		width: 100%;
+		/* padding: 1rem; */
+		height: 4rem;
+	}
+
+	.content {
+		display: flex;
+		flex-direction: row;
+		padding: 0.2rem;
+		height: 38rem;
+	}
+
+	.operate {
+		height: 4rem;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		padding: 0rem;
+	}
+
+
+	.block {
+		height: auto;
+		width: 100%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.map {
+		flex: 1.5;
+	}
+
+	.table {
+		flex: 1;
+		border: 0.05rem solid #DCDCDC;
+		margin: 0 0.2rem 0 0.25rem;
+	}
+
+	.btn {
+		color: #FFFFFF;
+		height: 1.5rem;
+		margin: 1rem;
+	}
+
+	.open-drive {
+		width: 100%;
+		height: 100%;
+	}
+
+	.delete-btn {
+		color: #FFFFFF;
+		border-radius: 0.5rem;
+	}
+
+	/deep/ div.cell {
+		text-align: center;
+	}
+
+	/deep/ th div.cell {
+		font-size: .9rem;
+		font-weight: bold;
+	}
+
+	.block {
+		border: none !important;
+	}
+
+	.el-dialog__wrapper {
+		pointer-events: none;
+
+		/deep/ .el-dialog {
+			pointer-events: auto;
+		}
+	}
+
+	/deep/ .el-dialog {
+		position: absolute !important;
+		top: 0 !important;
+		right: 10rem !important;
+	}
+	.no-interaction {
+	  pointer-events: none;
+	  /* 其他样式,比如背景色、边框等 */
+/* 	  background-color: #f0f0f0;
+	  border: 1px solid #ccc; */
+/* 	  padding: 10px;
+	  margin: 10px; */
+	}
+</style>

+ 3 - 3
vue.config.js

@@ -24,7 +24,7 @@ module.exports = {
     productionSourceMap: false,
     chainWebpack: config => {
         config
-            .entry('./src/main.js')
+            .entry(['./src/main'])
             .add('babel-polyfill');
         config.resolve.symlinks(true); // 修复热更新失效
         // 添加别名
@@ -72,8 +72,8 @@ module.exports = {
         }
     },
     devServer: { //跨域
-        port: "8082", //端口号
-        // open: true, //配置自动启动浏览器
+        port: "8002", //端口号
+        open: false, //配置自动启动浏览器
         hot: true,
         proxy: { // 配置跨域处理 可以设置多个
             '/simulation/oauth': {

Some files were not shown because too many files changed in this diff