コード例 #1
0
 /// <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;
 }
コード例 #2
0
 /// <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;
 }
コード例 #3
0
        /// <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;
        }
コード例 #4
0
        /// <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;
        }
コード例 #5
0
 /// <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;
 }
コード例 #6
0
 /// <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;
 }
コード例 #7
0
 /// <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;
 }
コード例 #8
0
        /// <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;
        }
コード例 #9
0
        /// <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;
        }
コード例 #10
0
        /// <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;
        }
コード例 #11
0
        /// <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;
        }
コード例 #12
0
        /// <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;
        }
コード例 #13
0
        /// <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;
        }
コード例 #14
0
        /// <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;
        }
コード例 #15
0
        /// <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;
        }
コード例 #16
0
        /// <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;
        }