diff --git a/T3-Unity/Assets/Prefabs/Waypoint END.prefab b/T3-Unity/Assets/Prefabs/Waypoint END.prefab index 011874156564106d9094708c185734940822f634..8e05efb3ac249f2b7ebddf23b3993641388aa8c2 100644 --- a/T3-Unity/Assets/Prefabs/Waypoint END.prefab +++ b/T3-Unity/Assets/Prefabs/Waypoint END.prefab @@ -77,6 +77,11 @@ PrefabInstance: propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: 3bcf7eea616b30749a4e57ca3684feb3, type: 2} + - target: {fileID: 901362092661596070, guid: 18761a72aa6233c4bb4bd29dd401981e, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2746859886323409679, guid: 18761a72aa6233c4bb4bd29dd401981e, type: 3} propertyPath: mat diff --git a/T3-Unity/Assets/Prefabs/Waypoint START.prefab b/T3-Unity/Assets/Prefabs/Waypoint START.prefab index 79e047a8c6b8d80892695143e0d96f905acc2975..909d18a718f5f945824b5a5db4ea65b6ac4efbc2 100644 --- a/T3-Unity/Assets/Prefabs/Waypoint START.prefab +++ b/T3-Unity/Assets/Prefabs/Waypoint START.prefab @@ -77,6 +77,11 @@ PrefabInstance: propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: 27f1e34ec9273454ebc5ea9db98eb833, type: 2} + - target: {fileID: 901362092661596070, guid: 18761a72aa6233c4bb4bd29dd401981e, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 4496217386513608057, guid: 18761a72aa6233c4bb4bd29dd401981e, type: 3} propertyPath: m_text diff --git a/T3-Unity/Assets/Prefabs/Waypoint.prefab b/T3-Unity/Assets/Prefabs/Waypoint.prefab index df3bb7d31b44b032c7235719ebb33453b6812f0f..9c72163c19472f5523629aa3714d2f54dd603b86 100644 --- a/T3-Unity/Assets/Prefabs/Waypoint.prefab +++ b/T3-Unity/Assets/Prefabs/Waypoint.prefab @@ -50,7 +50,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &901362092661596065 Transform: m_ObjectHideFlags: 0 @@ -85,7 +85,7 @@ MeshRenderer: m_ReceiveShadows: 0 m_DynamicOccludee: 0 m_MotionVectors: 1 - m_LightProbeUsage: 1 + m_LightProbeUsage: 0 m_ReflectionProbeUsage: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 diff --git a/T3-Unity/Assets/Scenes/Map_Tests.unity b/T3-Unity/Assets/Scenes/Map_Tests.unity index ab9e9fb616240a56fdee86dd3e6f763d0a312b54..c6241283c470e9c31cb30311f049222ea7fa8b56 100644 --- a/T3-Unity/Assets/Scenes/Map_Tests.unity +++ b/T3-Unity/Assets/Scenes/Map_Tests.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 170076734} - m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641258, b: 0.5748172, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -310,6 +310,36 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &488440633 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 488440634} + m_Layer: 0 + m_Name: TracageRoute + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &488440634 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 488440633} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1160038181} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &534669902 GameObject: m_ObjectHideFlags: 0 @@ -961,7 +991,88 @@ MonoBehaviour: objB: {fileID: 0} rayLength: 20 mat: {fileID: 2100000, guid: b4d771525b9636c4b9bf6a1640d82f46, type: 2} + _prefabs_parent: {fileID: 488440634} test: 0 +--- !u!1 &1041475209 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1041475211} + - component: {fileID: 1041475210} + m_Layer: 0 + m_Name: Waypoints + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1041475210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1041475209} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 46bc6c53f411bc84882c76fe1694830a, type: 3} + m_Name: + m_EditorClassIdentifier: + coordonnee1: + coordonnee2: + _prefab: {fileID: 901362092215755284, guid: 18761a72aa6233c4bb4bd29dd401981e, type: 3} + _prefabs_parent: {fileID: 1041475211} + infoJson: {fileID: 0} +--- !u!4 &1041475211 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1041475209} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -92.10596, y: 21.066406, z: 31.054688} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1160038181} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1160038180 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1160038181} + m_Layer: 0 + m_Name: Road + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1160038181 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1160038180} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 82.63281, y: 77.359375, z: -41.15625} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1041475211} + - {fileID: 488440634} + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1255026297 GameObject: m_ObjectHideFlags: 0 diff --git a/T3-Unity/Assets/Scripts/GameManager.cs b/T3-Unity/Assets/Scripts/GameManager.cs index b03761193e4c8476c2db68e060e7ba5360517ffc..eb24ac81a94ddcf8d8db1ad6169ffd68244485ca 100644 --- a/T3-Unity/Assets/Scripts/GameManager.cs +++ b/T3-Unity/Assets/Scripts/GameManager.cs @@ -1,5 +1,4 @@ using System.Collections; -using System.Collections.Generic; using UnityEngine; using Mapbox.Unity.Map; using Mapbox.Examples; @@ -34,13 +33,21 @@ public class GameManager : MonoBehaviour float enter = 0.0f; if (_yPlane.Raycast(ray, out enter)) { - Instantiate(waypoints[nbWaypoint], ray.GetPoint(enter) + Vector3.up, new Quaternion(0, 0, 0, 0)); + Instantiate(waypoints[nbWaypoint], ray.GetPoint(enter) + Vector3.up, new Quaternion(0, 0, 0, 0), WaypointsFactory.getInstance()._prefabs_parent); nbWaypoint++; } } if (GameObject.FindGameObjectWithTag("start_wp") != null && GameObject.FindGameObjectWithTag("end_wp") != null) { + if(nbWaypoint == 2) + { + WaypointsFactory.getInstance().click(map.WorldToGeoPosition(GameObject.FindGameObjectWithTag("start_wp").transform.position).x.ToString().Replace(',', '.') + ',' + map.WorldToGeoPosition(GameObject.FindGameObjectWithTag("start_wp").transform.position).y.ToString().Replace(',', '.'), + map.WorldToGeoPosition(GameObject.FindGameObjectWithTag("end_wp").transform.position).x.ToString().Replace(',', '.') + ',' + map.WorldToGeoPosition(GameObject.FindGameObjectWithTag("end_wp").transform.position).y.ToString().Replace(',', '.') + ); + nbWaypoint = 4; + } + GameObject.Find("GameManager").GetComponent<RouteTracer>().enabled = true; } } diff --git a/T3-Unity/Assets/Scripts/RouteTracer.cs b/T3-Unity/Assets/Scripts/RouteTracer.cs index 00d67d26a81b7942e79f2a5ca5b926db906e8efb..6740ceb8882708b26a0db329619fcd21271cfa87 100644 --- a/T3-Unity/Assets/Scripts/RouteTracer.cs +++ b/T3-Unity/Assets/Scripts/RouteTracer.cs @@ -11,16 +11,48 @@ public class RouteTracer : MonoBehaviour [SerializeField] Transform objB; public float rayLength = 20.0f; public Material mat; + private List<Transform> wp_points; + public Transform _prefabs_parent; //private [SerializeField] bool test = false; private void Start() { + StartCoroutine(CreateLine()); + } + + IEnumerator CreateLine() + { + yield return new WaitUntil(() => WaypointsFactory.getInstance().getTest() == false); + Debug.Log(WaypointsFactory.getInstance().getTest()); + wp_points = WaypointsFactory.getInstance().getWp(); + objA = GameObject.FindGameObjectWithTag("start_wp").transform; objB = GameObject.FindGameObjectWithTag("end_wp").transform; + + for (int i = 0; i<wp_points.Count-1; i++) + { + if (i == 0) + { + objA = GameObject.FindGameObjectWithTag("start_wp").transform; + objB = wp_points[i + 1]; + } + else if (i == wp_points.Count - 2) + { + objA = wp_points[i]; + objB = GameObject.FindGameObjectWithTag("end_wp").transform; + } + else + { + objA = wp_points[i]; + objB = wp_points[i + 1]; + } + + DrawLine(objA.transform.position, objB.transform.position, Color.cyan, 1f); + } //Recalculer les position relative entre les 2 objets - DrawLine(objA.transform.position, objB.transform.position, Color.cyan, 1f); + } void DrawLine(Vector3 start, Vector3 end, Color color, float width) @@ -29,6 +61,7 @@ public class RouteTracer : MonoBehaviour GameObject myLine = new GameObject(); myLine.transform.position = start; myLine.AddComponent<LineRenderer>(); + myLine.transform.parent = _prefabs_parent; LineRenderer lr = myLine.GetComponent<LineRenderer>(); lr.material = mat; lr.startColor = color; diff --git a/T3-Unity/Assets/WaypointsFactory.cs b/T3-Unity/Assets/WaypointsFactory.cs index d2f53de3ba2777a82e3c678054c4aa8936cc1f25..5f4f08f7f9fcdca591c15a64c3a4ca0061c7f7e1 100644 --- a/T3-Unity/Assets/WaypointsFactory.cs +++ b/T3-Unity/Assets/WaypointsFactory.cs @@ -23,6 +23,7 @@ public class WaypointsFactory : MonoBehaviour private AbstractMap abstractmap; Directions _directions; private GameObject map; + private static WaypointsFactory instance; Vector2d[] _coordinates; @@ -33,6 +34,7 @@ public class WaypointsFactory : MonoBehaviour void Start() { + instance = this; map = GameObject.Find("Map"); abstractmap = map.GetComponent<AbstractMap>(); points = new List<Transform>(); @@ -47,6 +49,21 @@ public class WaypointsFactory : MonoBehaviour _directionResource.Steps = true; } + public static WaypointsFactory getInstance() + { + return instance; + } + + public bool getTest() + { + return test; + } + + public List<Transform> getWp() + { + return points; + } + void Route() { //_coordinates[0] = new Vector2d(double.Parse(coordonnee1.Split(',')[0]), double.Parse(coordonnee1.Split(',')[1])); @@ -65,8 +82,12 @@ public class WaypointsFactory : MonoBehaviour test = false; } - public void click() + public void click(string coord1, string coord2) { + coordonnee1 = coord1; + coordonnee2 = coord2; + Debug.Log(coordonnee1); + Debug.Log(coordonnee2); StartCoroutine(createRoad()); } diff --git a/T3-Unity/Assets/test.json b/T3-Unity/Assets/test.json index a59450f89af4c8e737112db289ba7fd1806e8e6a..da79cda5045a2d20ee438b1460357cd52dc9f9c4 100644 --- a/T3-Unity/Assets/test.json +++ b/T3-Unity/Assets/test.json @@ -12,81 +12,201 @@ true ], "bearings": [ - 313 + 354 ], "location": [ - 7.746947, - 48.551831 + 7.748423, + 48.576225 ] + } + ], + "geometry": "mpngHsjhn@g@DGBGB", + "maneuver": { + "bearing_after": 354, + "type": "depart", + "modifier": null, + "bearing_before": 0, + "Location": [ + 7.748423, + 48.576225 + ], + "instruction": "Drive north." + }, + "duration": 6.764, + "distance": 31.942, + "name": "", + "mode": "driving" + }, + { + "intersections": [ + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 67, + 167 + ], + "location": [ + 7.748353, + 48.576511 + ], + "in": 1 }, { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 133, - 332 + 72, + 247 ], "location": [ - 7.746828, - 48.551905 + 7.748586, + 48.576577 ], - "in": 0 + "in": 1 }, { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 152, - 289 + 72, + 252 ], "location": [ - 7.746789, - 48.551954 + 7.749261, + 48.57672 ], - "in": 0 + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 68, + 252 + ], + "location": [ + 7.749311, + 48.576731 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 71, + 248 + ], + "location": [ + 7.749356, + 48.576743 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 105, + 263 + ], + "location": [ + 7.749654, + 48.576785 + ], + "in": 1 } ], - "geometry": "}wigHmahn@INEFCDC@Mv@", + "geometry": "erngHejhn@EWGW[eCAIAIG]AU?EBU", "maneuver": { - "bearing_after": 313, - "type": "depart", - "modifier": null, - "bearing_before": 0, + "bearing_after": 67, + "type": "turn", + "modifier": "right", + "bearing_before": 347, "Location": [ - 7.746947, - 48.551831 + 7.748353, + 48.576511 ], - "instruction": "Drive northwest." + "instruction": "Turn right." }, - "duration": 16.486, - "distance": 40.042, + "duration": 29.688, + "distance": 110.0, "name": "", "mode": "driving" }, { "intersections": [ { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 109, - 196 + 122, + 285 ], "location": [ - 7.746505, - 48.552019 + 7.749757, + 48.576767 ], - "in": 0 + "in": 1 }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 141, + 307 + ], + "location": [ + 7.750007, + 48.576659 + ], + "in": 1 + } + ], + "geometry": "ysngH_shn@DOFOFQb@i@z@c@RIRAR@RF", + "maneuver": { + "bearing_after": 122, + "type": "turn", + "modifier": "slight right", + "bearing_before": 105, + "Location": [ + 7.749757, + 48.576767 + ], + "instruction": "Bear right onto Rue de la Porte de l'Hôpital." + }, + "duration": 19.901, + "distance": 128.0, + "name": "Rue de la Porte de l'Hôpital", + "mode": "driving" + }, + { + "intersections": [ { "out": 1, "entry": [ @@ -94,198 +214,290 @@ true ], "bearings": [ - 16, - 204 + 10, + 97 ], "location": [ - 7.746369, - 48.551705 + 7.750413, + 48.575784 ], "in": 0 }, { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 31, - 215 + 102, + 277 ], "location": [ - 7.746066, - 48.551318 + 7.750496, + 48.575777 ], - "in": 0 + "in": 1 }, { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 35, - 216 + 92, + 278 ], "location": [ - 7.74591, - 48.551173 + 7.751039, + 48.575711 ], - "in": 0 + "in": 1 }, { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 35, - 215 + 87, + 266 ], "location": [ - 7.745415, - 48.550712 + 7.751682, + 48.575716 ], - "in": 0 + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 81, + 267 + ], + "location": [ + 7.751771, + 48.575719 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 70, + 247 + ], + "location": [ + 7.752791, + 48.575937 + ], + "in": 1 } ], - "geometry": "cyigHu~gn@r@VHBh@Zb@^\\^HJpAtAVZBBFF", + "geometry": "smngHawhn@?Q@A?GFq@Bo@?k@@[Cw@?QCc@Gm@Gg@UiAAG?CAEAGCQ", "maneuver": { - "bearing_after": 196, - "type": "end of road", + "bearing_after": 97, + "type": "turn", "modifier": "left", - "bearing_before": 289, + "bearing_before": 190, "Location": [ - 7.746505, - 48.552019 + 7.750413, + 48.575784 ], - "instruction": "Turn left onto Rue Prosper Mérimée." + "instruction": "Turn left onto Rue Spielmann." }, - "duration": 58.448, - "distance": 193.0, - "name": "Rue Prosper Mérimée", + "duration": 51.457, + "distance": 194.0, + "name": "Rue Spielmann", "mode": "driving" }, { "intersections": [ { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 36, - 305 + 147, + 250 ], "location": [ - 7.745217, - 48.550528 + 7.752969, + 48.575981 ], - "in": 0 + "in": 1 }, { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 125, - 305 + 161, + 337 ], "location": [ - 7.744291, - 48.550962 + 7.75339, + 48.575441 ], - "in": 0 + "in": 1 }, { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 123, - 298 + 167, + 341 ], "location": [ - 7.743207, - 48.551463 + 7.753419, + 48.575386 ], - "in": 0 - } - ], - "geometry": "yoigHsvgn@g@tAm@bByA|DIXENADER", - "maneuver": { - "bearing_after": 305, - "type": "end of road", - "modifier": "right", - "bearing_before": 216, - "Location": [ - 7.745217, - 48.550528 - ], - "instruction": "Turn right onto Rue de la Canardière." - }, - "duration": 54.404, - "distance": 198.0, - "name": "Rue de la Canardière", - "mode": "driving" - }, - { - "intersections": [ + "in": 1 + }, { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 118, - 205 + 173, + 347 ], "location": [ - 7.743001, - 48.551534 + 7.753486, + 48.575193 ], - "in": 0 + "in": 1 }, { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 25, - 205 + 168, + 353 ], "location": [ - 7.74274, - 48.551171 + 7.753511, + 48.575056 ], - "in": 0 + "in": 1 }, { - "out": 1, + "out": 0, "entry": [ - false, - true + true, + false ], "bearings": [ - 24, - 204 + 172, + 348 ], "location": [ - 7.741898, - 48.54994 + 7.753525, + 48.575012 ], - "in": 0 + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 167, + 352 + ], + "location": [ + 7.753595, + 48.574665 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 172, + 352 + ], + "location": [ + 7.753795, + 48.57381 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 170, + 352 + ], + "location": [ + 7.753842, + 48.573595 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 176, + 350 + ], + "location": [ + 7.754048, + 48.572854 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 181, + 356 + ], + "location": [ + 7.754052, + 48.572818 + ], + "in": 1 }, { "out": 1, @@ -294,31 +506,31 @@ true ], "bearings": [ - 23, - 203 + 3, + 182 ], "location": [ - 7.741332, - 48.54908 + 7.754012, + 48.572021 ], "in": 0 } ], - "geometry": "avigHwhgn@b@Xb@XdBfAhBfAd@VxBnAp@`@PH", + "geometry": "{nngHagin@NOLMTQNKXOLGHEf@MXCHCbAMd@Kp@IrAOh@ItCi@D?b@?`BDF?P@P?", "maneuver": { - "bearing_after": 205, + "bearing_after": 147, "type": "turn", - "modifier": "left", - "bearing_before": 298, + "modifier": "right", + "bearing_before": 70, "Location": [ - 7.743001, - 48.551534 + 7.752969, + 48.575981 ], - "instruction": "Turn left onto Avenue de Colmar." + "instruction": "Turn right onto Rue de la Première Armée." }, - "duration": 59.889, - "distance": 310.0, - "name": "Avenue de Colmar", + "duration": 103.552, + "distance": 462.0, + "name": "Rue de la Première Armée", "mode": "driving" }, { @@ -330,12 +542,12 @@ true ], "bearings": [ - 23, - 115 + 2, + 151 ], "location": [ - 7.741275, - 48.548992 + 7.754008, + 48.571934 ], "in": 0 }, @@ -346,12 +558,140 @@ false ], "bearings": [ - 28, - 295 + 96, + 331 + ], + "location": [ + 7.754079, + 48.571849 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 99, + 276 + ], + "location": [ + 7.754283, + 48.571834 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 103, + 281 + ], + "location": [ + 7.75485, + 48.57177 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 101, + 283 + ], + "location": [ + 7.75498, + 48.57175 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 99, + 281 + ], + "location": [ + 7.755094, + 48.571735 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 102, + 279 + ], + "location": [ + 7.755264, + 48.571717 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 107, + 282 + ], + "location": [ + 7.755777, + 48.571644 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 125, + 292 + ], + "location": [ + 7.756105, + 48.571563 + ], + "in": 1 + }, + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 114, + 305 ], "location": [ - 7.741478, - 48.548929 + 7.756314, + 48.571467 ], "in": 1 }, @@ -362,12 +702,12 @@ false ], "bearings": [ - 24, - 208 + 116, + 294 ], "location": [ - 7.741545, - 48.549014 + 7.756605, + 48.57138 ], "in": 1 }, @@ -378,31 +718,99 @@ false ], "bearings": [ - 24, - 204 + 113, + 293 + ], + "location": [ + 7.758577, + 48.570792 + ], + "in": 1 + } + ], + "geometry": "qumgHqmin@NMBg@Bs@Dk@@QBY@UBa@HeA@OBQDm@HSPg@P{@`@kB`@kBp@qDHc@", + "maneuver": { + "bearing_after": 96, + "type": "turn", + "modifier": "left", + "bearing_before": 182, + "Location": [ + 7.754008, + 48.571934 + ], + "instruction": "Turn left onto Rue de la Thumenau." + }, + "duration": 77.532, + "distance": 381.0, + "name": "Rue de la Thumenau", + "mode": "driving" + }, + { + "intersections": [ + { + "out": 0, + "entry": [ + true, + false + ], + "bearings": [ + 14, + 293 ], "location": [ - 7.742226, - 48.550034 + 7.758756, + 48.570741 ], "in": 1 + }, + { + "out": 1, + "entry": [ + false, + true + ], + "bearings": [ + 194, + 293 + ], + "location": [ + 7.758819, + 48.570903 + ], + "in": 0 + }, + { + "out": 1, + "entry": [ + false, + true + ], + "bearings": [ + 113, + 293 + ], + "location": [ + 7.758676, + 48.570944 + ], + "in": 0 } ], - "geometry": "efigH_~fn@DSDSOMq@_@yCgBmBgAsBoA", + "geometry": "cnmgHgkjn@MCCAMEGZu@xDQz@", "maneuver": { - "bearing_after": 28, + "bearing_after": 293, "type": "continue", "modifier": "uturn", - "bearing_before": 203, + "bearing_before": 113, "Location": [ - 7.741275, - 48.548992 + 7.758756, + 48.570741 ], - "instruction": "Make a left U-turn at Avenue de Colmar to stay on Avenue de Colmar." + "instruction": "Make a left U-turn at Avenue Jean Jaurès onto Avenue Jean Jaurès." }, - "duration": 50.483, - "distance": 289.721, - "name": "Avenue de Colmar", + "duration": 34.168, + "distance": 128.623, + "name": "Avenue Jean Jaurès", "mode": "driving" }, { @@ -413,43 +821,43 @@ true ], "bearings": [ - 205 + 115 ], "location": [ - 7.742993, - 48.551162 + 7.757448, + 48.571297 ], "in": 0 } ], - "geometry": "wsigHuhgn@??", + "geometry": "sqmgHacjn@??", "maneuver": { "bearing_after": 0, "type": "arrive", "modifier": "right", - "bearing_before": 25, + "bearing_before": 295, "Location": [ - 7.742993, - 48.551162 + 7.757448, + 48.571297 ], "instruction": "Your destination is on the right." }, "duration": 0.0, "distance": 0.0, - "name": "Avenue de Colmar", + "name": "Avenue Jean Jaurès", "mode": "driving" } ], - "summary": "Rue de la Canardière, Avenue de Colmar", - "duration": 239.709, - "distance": 1030.763, + "summary": "Rue de la Première Armée, Rue de la Thumenau", + "duration": 323.062, + "distance": 1435.566, "annotation": null } ], - "geometry": "}wigHmahn@W^Mv@fBv@`EhEoDvJWbAzNvIJg@}LmH", - "duration": 239.709, - "distance": 1030.763, - "weight": 286.127, + "geometry": "mpngHsjhn@w@Lu@gF@q@x@{AnAm@z@FJoGs@oF|CgBrMoBvDFNMn@aKlDeP_@KoApG", + "duration": 323.062, + "distance": 1435.566, + "weight": 460.241, "weight_name": "auto" } ], @@ -457,15 +865,15 @@ { "name": "", "location": [ - 7.746947, - 48.551831 + 7.748423, + 48.576225 ] }, { - "name": "Avenue de Colmar", + "name": "Avenue Jean Jaurès", "location": [ - 7.742993, - 48.551162 + 7.757448, + 48.571297 ] } ],