/// <inheritdoc/> public string ToDelimitedString() { CultureInfo culture = CultureInfo.CurrentCulture; return(string.Format( culture, StringHelper.StringFormatSequence(0, 7, Configuration.FieldSeparator), Id, Route?.ToDelimitedString(), AdministrationSite?.ToDelimitedString(), AdministrationDevice?.ToDelimitedString(), AdministrationMethod?.ToDelimitedString(), RoutingInstruction?.ToDelimitedString(), AdministrationSiteModifier?.ToDelimitedString() ).TrimEnd(Configuration.FieldSeparator.ToCharArray())); }
public void CreateRoutePoint(MapPos pos, RoutingInstruction instruction, LocalVectorDataSource source) { MarkerStyle style = instructionUp; if (instruction.Action == RoutingAction.RoutingActionTurnRight) { style = instructionRight; } else if (instruction.Action == RoutingAction.RoutingActionTurnLeft) { style = instructionLeft; } Marker marker = new Marker(pos, style); source.Add(marker); }
public void Show(RoutingResult result, Color lineColor) { routeDataSource.Clear(); startMarker.Visible = false; Line line = CreatePolyline(startMarker.Geometry.CenterPos, stopMarker.Geometry.CenterPos, result, lineColor); routeDataSource.Add(line); // Add instruction markers RoutingInstructionVector instructions = result.Instructions; for (int i = 0; i < instructions.Count; i++) { RoutingInstruction instruction = instructions[i]; MapPos position = result.Points[instruction.PointIndex]; CreateRoutePoint(position, instruction, routeDataSource); } }
public void Show(RoutingResult result) { routeDataSource.Clear(); routeInstructionSource.Clear(); var color = new Color(0, 122, 255, 225); Line line = CreatePolyline(result, color); routeDataSource.Add(line); // Add instruction markers RoutingInstructionVector instructions = result.Instructions; if (ShowTurns) { for (int i = 0; i < instructions.Count; i++) { RoutingInstruction instruction = instructions[i]; MapPos position = result.Points[instruction.PointIndex]; CreateRoutePoint(position, instruction, routeInstructionSource); } } }
public void showRoute(MapPos startPos, MapPos stopPos) { Log.Debug("calculating path " + startPos + " to " + stopPos); if (!offlinePackageReady) { RunOnUiThread(() => { Toast.MakeText(ApplicationContext, "Offline package is not ready, using online routing", ToastLength.Long).Show(); }); } if (!shortestPathRunning) { shortestPathRunning = true; long timeStart; // run routing in background Task.Run(() => { timeStart = Java.Lang.JavaSystem.CurrentTimeMillis(); MapPosVector poses = new MapPosVector(); poses.Add(startPos); poses.Add(stopPos); RoutingRequest request = new RoutingRequest(baseProjection, poses); RoutingResult result; if (offlinePackageReady) { result = offlineRoutingService.CalculateRoute(request); } else { result = onlineRoutingService.CalculateRoute(request); } // now update response in UI thread RunOnUiThread(() => { if (result == null) { Toast.MakeText(ApplicationContext, "Routing failed", ToastLength.Long).Show(); shortestPathRunning = false; return; } String routeText = "The route is " + (int)(result.TotalDistance / 100) / 10f + "km (" + secondsToHours((int)result.TotalTime) + ") calculation: " + (Java.Lang.JavaSystem.CurrentTimeMillis() - timeStart) + " ms"; Log.Info(routeText); Toast.MakeText(ApplicationContext, routeText, ToastLength.Long).Show(); routeDataSource.RemoveAll(); startMarker.Visible = false; routeDataSource.Add(createPolyline(startMarker.Geometry .CenterPos, stopMarker.Geometry.CenterPos, result)); // add instruction markers RoutingInstructionVector instructions = result.Instructions; for (int i = 0; i < instructions.Count; i++) { RoutingInstruction instruction = instructions [i]; // Log.d(Const.LOG_TAG, instruction.toString()); createRoutePoint(result.Points [instruction.PointIndex], instruction.StreetName, instruction.Time, instruction.Distance, instruction.Action, routeDataSource); } shortestPathRunning = false; }); }); } }
public void CreateRoutePoint(MapPos pos, RoutingInstruction instruction, LocalVectorDataSource source) { MarkerStyle style = instructionUp; string str = ""; switch (instruction.Action) { case RoutingAction.RoutingActionHeadOn: str = "head on"; break; case RoutingAction.RoutingActionFinish: str = "finish"; break; case RoutingAction.RoutingActionTurnLeft: style = instructionLeft; str = "turn left"; break; case RoutingAction.RoutingActionTurnRight: style = instructionRight; str = "turn right"; break; case RoutingAction.RoutingActionUturn: str = "u turn"; break; case RoutingAction.RoutingActionNoTurn: case RoutingAction.RoutingActionGoStraight: //style = instructionUp; //str = "continue"; break; case RoutingAction.RoutingActionReachViaLocation: style = instructionUp; str = "stopover"; break; case RoutingAction.RoutingActionEnterAgainstAllowedDirection: str = "enter against allowed direction"; break; case RoutingAction.RoutingActionLeaveAgainstAllowedDirection: break; case RoutingAction.RoutingActionEnterRoundabout: str = "enter roundabout"; break; case RoutingAction.RoutingActionStayOnRoundabout: str = "stay on roundabout"; break; case RoutingAction.RoutingActionLeaveRoundabout: str = "leave roundabout"; break; case RoutingAction.RoutingActionStartAtEndOfStreet: str = "start at end of street"; break; } if (str != "") { Marker marker = new Marker(pos, style); BalloonPopup popup2 = new BalloonPopup(marker, balloonBuilder.BuildStyle(), str, ""); source.Add(popup2); source.Add(marker); } }
protected void CreateRoutePoint(MapPos pos, RoutingInstruction instruction, LocalVectorDataSource source) { MarkerStyle style = instructionUp; string str = ""; switch (instruction.Action) { case RoutingAction.RoutingActionHeadOn: str = "head on"; break; case RoutingAction.RoutingActionFinish: str = "finish"; break; case RoutingAction.RoutingActionTurnLeft: style = instructionLeft; str = "turn left"; break; case RoutingAction.RoutingActionTurnRight: style = instructionRight; str = "turn right"; break; case RoutingAction.RoutingActionUturn: str = "u turn"; break; case RoutingAction.RoutingActionNoTurn: case RoutingAction.RoutingActionGoStraight: //style = instructionUp; //str = "continue"; break; case RoutingAction.RoutingActionReachViaLocation: style = instructionUp; str = "stopover"; break; case RoutingAction.RoutingActionEnterAgainstAllowedDirection: str = "enter against allowed direction"; break; case RoutingAction.RoutingActionLeaveAgainstAllowedDirection: break; case RoutingAction.RoutingActionEnterRoundabout: str = "enter roundabout"; break; case RoutingAction.RoutingActionStayOnRoundabout: str = "stay on roundabout"; break; case RoutingAction.RoutingActionLeaveRoundabout: str = "leave roundabout"; break; case RoutingAction.RoutingActionStartAtEndOfStreet: str = "start at end of street"; break; } if (str != "") { Marker marker = new Marker(pos, style); BalloonPopup popup2 = new BalloonPopup(marker, balloonBuilder.BuildStyle(), str, ""); source.Add(popup2); source.Add(marker); } }
public void ShowRoute(MapPos startPos, MapPos stopPos) { Log.Debug("calculating path " + startPos + " to " + stopPos); if (!offlinePackageReady) { RunOnUiThread(() => { string message = "Offline package is not ready, using online routing"; Toast.MakeText(ApplicationContext, message, ToastLength.Long).Show(); }); } if (!shortestPathRunning) { shortestPathRunning = true; long timeStart; // run routing in background Task.Run(() => { timeStart = Java.Lang.JavaSystem.CurrentTimeMillis(); MapPosVector poses = new MapPosVector(); poses.Add(startPos); poses.Add(stopPos); RoutingRequest request = new RoutingRequest(BaseProjection, poses); RoutingResult result; if (offlinePackageReady) { result = offlineRoutingService.CalculateRoute(request); } else { result = onlineRoutingService.CalculateRoute(request); } // Now update response in UI thread RunOnUiThread(() => { if (result == null) { Alert("Routing failed"); shortestPathRunning = false; return; } string distance = "The route is " + (int)(result.TotalDistance / 100) / 10f + "km"; string time = "(" + result.TotalTime.ConvertFromSecondsToHours() + ")"; string calculation = "| Calculation: " + (Java.Lang.JavaSystem.CurrentTimeMillis() - timeStart) + " ms"; Alert(distance + time + calculation); routeDataSource.Clear(); startMarker.Visible = false; Line line = CreatePolyline(startMarker.Geometry.CenterPos, stopMarker.Geometry.CenterPos, result); routeDataSource.Add(line); // Add instruction markers RoutingInstructionVector instructions = result.Instructions; for (int i = 0; i < instructions.Count; i++) { RoutingInstruction instruction = instructions[i]; MapPos position = result.Points[instruction.PointIndex]; CreateRoutePoint(position, instruction, routeDataSource); } shortestPathRunning = false; }); }); } }
public void ShowRoute(MapPos startPos, MapPos stopPos) { Log.Debug("calculating path " + startPos + " to " + stopPos); if (!offlinePackageReady) { InvokeOnMainThread(() => { string message = "Offline package is not ready. Using online routing"; Alert(message); }); } if (!shortestPathRunning) { shortestPathRunning = true; long timeStart; // run routing in background System.Threading.Tasks.Task.Run(delegate { timeStart = DateTime.Now.ToUnixTime(); MapPosVector poses = new MapPosVector { startPos, stopPos }; RoutingRequest request = new RoutingRequest(BaseProjection, poses); RoutingResult result; if (offlinePackageReady) { result = offlineRoutingService.CalculateRoute(request); } else { result = onlineRoutingService.CalculateRoute(request); } // Now update response in UI thread InvokeOnMainThread(delegate { if (result == null) { Alert("Routing failed"); shortestPathRunning = false; return; } routeDataSource.Clear(); startMarker.Visible = false; Line line = CreatePolyline(startMarker.Geometry.CenterPos, stopMarker.Geometry.CenterPos, result); routeDataSource.Add(line); // Add instruction markers RoutingInstructionVector instructions = result.Instructions; for (int i = 0; i < instructions.Count; i++) { RoutingInstruction instruction = instructions[i]; MapPos position = result.Points[instruction.PointIndex]; CreateRoutePoint(position, instruction, routeDataSource); } string distance = "The route is " + (int)(result.TotalDistance / 100) / 10f + "km"; string time = " (" + result.TotalTime.ConvertFromSecondsToHours() + ") "; string calculation = "| Calculation: " + (DateTime.Now.ToUnixTime() - timeStart) + " ms"; Alert(distance + time + calculation); shortestPathRunning = false; }); }); } }