/// <summary>
    /// Constructor. \n
    /// <strong>Please do not use. </strong>\n
    /// Use OnlineMapsDirectionStep.TryParse.
    /// </summary>
    /// <param name="node">XMLNode of route</param>
    private OnlineMapsDirectionStep(OnlineMapsXML node)
    {
        start = node.GetLatLng("start_location");
        end = node.GetLatLng("end_location");
        duration = node.Find<int>("duration/value");
        instructions = node.Find<string>("html_instructions");
        GetStringInstructions();
        distance = node.Find<int>("distance/value");

        maneuver = node.Find<string>("maneuver");

        string encodedPoints = node.Find<string>("polyline/points");
        points = OnlineMapsGoogleAPIQuery.DecodePolylinePoints(encodedPoints);
    }
    /// <summary>
    /// Constructor. \n
    /// Use OnlineMapsDirectionStep.TryParse.
    /// </summary>
    /// <param name="node">XMLNode of route</param>
    private OnlineMapsDirectionStep(OnlineMapsXML node)
    {
        start        = node.GetLatLng("start_location");
        end          = node.GetLatLng("end_location");
        duration     = node.Find <int>("duration/value");
        instructions = node.Find <string>("html_instructions");
        GetStringInstructions();
        distance = node.Find <int>("distance/value");

        maneuver = node.Find <string>("maneuver");

        string encodedPoints = node.Find <string>("polyline/points");

        points = OnlineMapsUtils.DecodePolylinePoints(encodedPoints);
    }