/// <summary> /// Direct turn instruction. /// </summary> /// <param name="instruction"></param> /// <param name="streetCountBeforeTurn"></param> /// <param name="streetTo"></param> /// <param name="direction"></param> /// <param name="list"></param> /// <returns></returns> public Instruction GenerateDirectTurn(Instruction instruction, int streetCountBeforeTurn, List<KeyValuePair<string, string>> streetTo, RelativeDirectionEnum direction, List<PointPoi> list) { instruction.Text = string.Format("GenerateDirectTurn:{0}_{1}_{2}", streetCountBeforeTurn, direction.ToString(), list.Count); return instruction; }
/// <summary> /// Generates an immidiate turn. /// </summary> /// <param name="instruction"></param> /// <param name="firstStreetCountTo"></param> /// <param name="firstStreetTo"></param> /// <param name="firstDirection"></param> /// <param name="secondStreetTo"></param> /// <param name="secondDirection"></param> /// <returns></returns> public Instruction GenerateImmidiateTurn(Instruction instruction, int firstStreetCountTo, List<KeyValuePair<string, string>> firstStreetTo, OsmSharp.Tools.Math.Geo.Meta.RelativeDirection firstDirection, List<KeyValuePair<string, string>> secondStreetTo, RelativeDirection secondDirection) { instruction.Text = string.Format("GenerateImmidiateTurn:{0}_{1}_{2}_{3}", firstStreetCountTo, firstDirection, firstDirection.ToString(), secondDirection.ToString()); return instruction; }
/// <summary> /// Direct turn instruction. /// </summary> /// <param name="instruction"></param> /// <param name="streetCountBeforeTurn"></param> /// <param name="streetTo"></param> /// <param name="direction"></param> /// <param name="list"></param> /// <returns></returns> public Instruction GenerateDirectTurn(Instruction instruction, int streetCountBeforeTurn, TagsCollection streetTo, RelativeDirectionEnum direction, List<PointPoi> list) { instruction.Text = string.Format("GenerateDirectTurn:{0}_{1}_{2}", streetCountBeforeTurn, direction.ToString(), list.Count); instruction.Extras = new Dictionary<string, object>(); instruction.Extras.Add("streetCountBeforeTurn", streetCountBeforeTurn); instruction.Extras.Add("streetTo", streetTo); instruction.Extras.Add("direction", direction); instruction.Extras.Add("list", list); return instruction; }
/// <summary> /// Generates an instruction for a turn followed by another turn. /// </summary> /// <param name="instruction"></param> /// <param name="street_count_before_turn"></param> /// <param name="street_to"></param> /// <param name="direction"></param> /// <param name="list"></param> /// <returns></returns> public Instruction GenerateDirectFollowTurn(Instruction instruction, int street_count_before_turn, List<KeyValuePair<string, string>> street_to, RelativeDirectionEnum direction, List<PointPoi> list) { if (street_count_before_turn == 1) { instruction.Text = string.Format("Turn {1} to stay on {0}.", this.GetName("en", street_to), this.TurnDirection(direction)); } else { instruction.Text = string.Format("Turn {1} street {2} to stay on {0}.", this.GetName("en", street_to), AddOrdinal(street_count_before_turn), this.TurnDirection(direction)); } // returns the instruction with text. return instruction; }
/// <summary> /// Generates a simple turn instruction. /// </summary> /// <param name="instruction"></param> /// <param name="direction"></param> /// <returns></returns> public Instruction GenerateSimpleTurn(Instruction instruction, RelativeDirectionEnum direction) { instruction.Text = string.Format("GenerateSimpleTurn:{0}", direction.ToString()); return instruction; }
/// <summary> /// Generates a roundabout instruction. /// </summary> /// <param name="instruction"></param> /// <param name="count"></param> /// <param name="nextStreet"></param> /// <returns></returns> public Instruction GenerateRoundabout(Instruction instruction, int count, List<KeyValuePair<string, string>> nextStreet) { instruction.Text = string.Format("GenerateRoundabout:{0}", count); return instruction; }
/// <summary> /// Generates poi instruction. /// </summary> /// <param name="instruction"></param> /// <param name="list"></param> /// <param name="direction"></param> /// <returns></returns> public Instruction GeneratePoi(Instruction instruction, List<PointPoi> list, RelativeDirectionEnum? direction) { if (direction.HasValue) { instruction.Text = string.Format("GeneratePoi:{0}_{1}", list.Count, direction.Value.ToString()); } else { instruction.Text = string.Format("GeneratePoi:{0}", list.Count); } return instruction; }
/// <summary> /// Generates a simple turn instruction. /// </summary> /// <param name="instruction"></param> /// <param name="direction"></param> /// <returns></returns> public Instruction GenerateSimpleTurn(Instruction instruction, RelativeDirectionEnum direction) { instruction.Text = string.Format("GenerateSimpleTurn:{0}", direction.ToString()); instruction.Extras = new Dictionary<string, object>(); instruction.Extras.Add("direction", direction); return instruction; }
/// <summary> /// Generates a roundabout instruction. /// </summary> /// <param name="instruction"></param> /// <param name="count"></param> /// <param name="nextStreet"></param> /// <returns></returns> public Instruction GenerateRoundabout(Instruction instruction, int count, TagsCollection nextStreet) { instruction.Text = string.Format("GenerateRoundabout:{0}", count); instruction.Extras = new Dictionary<string, object>(); instruction.Extras.Add("count", count); instruction.Extras.Add("nextStreet", nextStreet); return instruction; }
/// <summary> /// Generates poi instruction. /// </summary> /// <param name="instruction"></param> /// <param name="list"></param> /// <param name="direction"></param> /// <returns></returns> public Instruction GeneratePoi(Instruction instruction, List<PointPoi> list, RelativeDirectionEnum? direction) { if (direction.HasValue) { instruction.Text = string.Format("GeneratePoi:{0}_{1}", list.Count, direction.Value.ToString()); } else { instruction.Text = string.Format("GeneratePoi:{0}", list.Count); } instruction.Extras = new Dictionary<string, object>(); instruction.Extras.Add("direction", direction); instruction.Extras.Add("list", list); return instruction; }
/// <summary> /// Generates an immidiate turn. /// </summary> /// <param name="instruction"></param> /// <param name="firstStreetCountTo"></param> /// <param name="firstStreetTo"></param> /// <param name="firstDirection"></param> /// <param name="secondStreetTo"></param> /// <param name="secondDirection"></param> /// <returns></returns> public Instruction GenerateImmidiateTurn(Instruction instruction, int firstStreetCountTo, TagsCollection firstStreetTo, OsmSharp.Math.Geo.Meta.RelativeDirection firstDirection, TagsCollection secondStreetTo, RelativeDirection secondDirection) { instruction.Text = string.Format("GenerateImmidiateTurn:{0}_{1}_{2}_{3}", firstStreetCountTo, firstDirection, firstDirection.ToString(), secondDirection.ToString()); instruction.Extras = new Dictionary<string, object>(); instruction.Extras.Add("firstStreetCountTo", firstStreetCountTo); instruction.Extras.Add("firstStreetTo", firstStreetTo); instruction.Extras.Add("firstDirection", firstDirection); instruction.Extras.Add("secondStreetTo", secondStreetTo); instruction.Extras.Add("secondDirection", secondDirection); return instruction; }
/// <summary> /// Generates an instruction for a simple turn. /// </summary> /// <param name="instruction"></param> /// <param name="direction"></param> /// <returns></returns> public Instruction GenerateSimpleTurn(Instruction instruction, RelativeDirectionEnum direction) { instruction.Text = string.Format("Turn {0}", this.TurnDirection(direction)); return instruction; }
/// <summary> /// Generates an instruction for a roundabout. /// </summary> /// <param name="instruction"></param> /// <param name="count"></param> /// <param name="next_street"></param> /// <returns></returns> public Instruction GenerateRoundabout(Instruction instruction, int count, List<KeyValuePair<string, string>> next_street) { instruction.Text = string.Format("Take the {0} at the next roundabout on the {1}.", AddOrdinal(count), this.GetName("en", next_street)); // returns the instruction with text. return instruction; }
/// <summary> /// Generates an instruction for a POI. /// </summary> /// <param name="instruction"></param> /// <param name="list"></param> /// <param name="direction"></param> /// <returns></returns> public Instruction GeneratePoi(Instruction instruction, List<PointPoi> list, RelativeDirectionEnum? direction) { if (direction == null) { instruction.Text = string.Format("Poi"); } else { instruction.Text = string.Format("Poi: {0}", direction); } // returns the instruction with text. return instruction; }
/// <summary> /// Generates an instruction for an indirect turn. /// </summary> /// <param name="instruction"></param> /// <param name="street_count_turn"></param> /// <param name="street_count_before_turn"></param> /// <param name="street_to"></param> /// <param name="direction"></param> /// <param name="list"></param> /// <returns></returns> public Instruction GenerateIndirectTurn(Instruction instruction, int street_count_turn, int street_count_before_turn, List<KeyValuePair<string, string>> street_to, RelativeDirectionEnum direction, List<PointPoi> list) { instruction.Text = string.Format("Take the {0} turn {1}, on {2}.", AddOrdinal(street_count_before_turn), this.TurnDirection(direction), this.GetName("en", street_to)); // returns the instruction with text. return instruction; }
/// <summary> /// Generates an instruction for an immidiate turn. /// </summary> /// <param name="instruction"></param> /// <param name="first_street_count_to"></param> /// <param name="first_street_to"></param> /// <param name="first_direction"></param> /// <param name="second_street_to"></param> /// <param name="second_direction"></param> /// <returns></returns> public Instruction GenerateImmidiateTurn(Instruction instruction, int first_street_count_to, List<KeyValuePair<string, string>> first_street_to, RelativeDirection first_direction, List<KeyValuePair<string, string>> second_street_to, RelativeDirection second_direction) { if (first_street_count_to == 1) { instruction.Text = string.Format("Take the first turn {0}, on the {1}, and turn immidiately {2} on the {3}.", this.TurnDirection(first_direction.Direction), this.GetName("en", first_street_to), this.TurnDirection(second_direction.Direction), this.GetName("en", second_street_to)); } else { instruction.Text = string.Format("Take the {4} turn {0}, on the {1}, and turn immidiately {2} on the {3}.", this.TurnDirection(first_direction.Direction), this.GetName("en", first_street_to), this.TurnDirection(second_direction.Direction), this.GetName("en", second_street_to), AddOrdinal(first_street_count_to)); } // returns the instruction with text. return instruction; }