Example #1
0
 public Ruta(Resumen resumen, IEnumerable <DatosRuta> rutas, List <string> ciudades, string weather_origen, string weather_destino)
 {
     resumenViaje   = resumen;
     listaRutas     = rutas;
     listaCiudades  = ciudades;
     tiempo_origen  = weather_origen;
     tiempo_destino = weather_destino;
 }
Example #2
0
        public static async Task <Ruta> ApiRequest(string origen, string destino)
        {
            string[,] matrizTiempos = new string[10, 10];
            matrizTiempos           = Webscrapping.EjecutarTiempo();

            string[,] matrizCoordenadas = new string[10, 10];
            matrizCoordenadas           = Webscrapping.EjecutarCoordenadas();

            string coordenadas = Coordenadas.CambiaACoordenadas(origen, destino, matrizCoordenadas);

            if (coordenadas == ":" || coordenadas == "Coordenadas indeterminadas")
            {
                throw new Exception("Las ciudades introducidas no existen, revise los nombres: " + origen + " " + destino);
            }

            string ciudad = Coordenadas.CambiaACiudad(coordenadas, matrizCoordenadas);

            using (HttpClient client = new HttpClient())
            {
                HttpResponseMessage responseMessage = await client.GetAsync("https://api.tomtom.com/routing/1/calculateRoute/" + coordenadas + "/json?maxAlternatives=2&instructionsType=coded&avoid=unpavedRoads&key=QNDSKoghJXsfleTToOkVBTPLwkaYbauA");

                HttpContent httpcontent = responseMessage.Content;
                string      content     = await httpcontent.ReadAsStringAsync();

                JObject jObject = JObject.Parse(content);
                JToken  jRutas  = jObject["routes"];

                Resumen resumen = new Resumen(jRutas.Values("summary"));

                IEnumerable <JToken> rutas      = jRutas.Values("guidance").Values("instructions");
                List <DatosRuta>     listaRutas = new List <DatosRuta>();

                foreach (JToken jRuta in rutas)
                {
                    listaRutas.Add(new DatosRuta(jRuta));
                }

                List <string> coords         = listaRutas[0].coordenadas;
                List <string> ciudades       = new List <string>();
                string        tiempo_origen  = Coordenadas.TiempoCiudad(origen, matrizTiempos);
                string        tiempo_destino = Coordenadas.TiempoCiudad(destino, matrizTiempos);

                for (int i = 0; i < coords.Count; i++)
                {
                    ciudades.Add(Coordenadas.CambiaACiudad(coords[i], matrizCoordenadas));
                }

                return(new Ruta(resumen, listaRutas, ciudades, tiempo_origen, tiempo_destino));
            }
        }