Ejemplo n.º 1
0
        private static string GetUrlPeticion(decimal latitudInicial, decimal longitudInicial, decimal latitudFinal, decimal longitudFinal, MapBoxConfigObject configObject)
        {
            string urlGet =
                $"{configObject.UrlBase}/{configObject.RoutingProfile}/{longitudInicial},{latitudInicial};{longitudFinal},{latitudFinal}" +
                $"?alternatives={configObject.UseAlternatives.ToString().ToLower()}" +
                $"&geometries={configObject.Geometries}" +
                $"&steps={configObject.UseSteps.ToString().ToLower()}" +
                $"&access_token={configObject.AccessToken}";

            return(urlGet);
        }
Ejemplo n.º 2
0
        static async Task Main(string[] args)
        {
            //Settings para leer el archivo de confiuracion
            IConfiguration configuration = new ConfigurationBuilder()
                                           .SetBasePath(Path.Combine(AppContext.BaseDirectory))
                                           .AddJsonFile("appsettings.json", false)
                                           .Build();

            //Primero creamos un cliente
            HttpClient cliente = new HttpClient();

            //Obtenemos el objeto de configuracion
            List <Dictionary <string, object> > t = configuration.GetSection("MapboxConfig").GetChildren().Select(p =>
                                                                                                                  new Dictionary <string, object>()
            {
                { p.Key, p.Value }
            }).ToList();


            string json = ListToJsonString(t);

            MapBoxConfigObject mapBoxConfig = JsonConvert.DeserializeObject <MapBoxConfigObject>(json);

            Console.WriteLine("Ingrese la latitud inicial: ");
            decimal latitudInicial = decimal.Parse(Console.ReadLine());

            Console.WriteLine("Ingrese la longitud inicial: ");
            decimal longitudInicial = decimal.Parse(Console.ReadLine());

            Console.WriteLine("Ingrese la latitud final: ");
            decimal latitudFinal = decimal.Parse(Console.ReadLine());

            Console.WriteLine("Ingrese la longitud final: ");
            decimal longitudFinal = decimal.Parse(Console.ReadLine());



            //Procedemos a realizar pruebas, preparamos la URL template
            string urlGet = GetUrlPeticion(latitudInicial, longitudInicial, latitudFinal, longitudFinal, mapBoxConfig);

            //Ahora hacemos la peticion GET
            HttpResponseMessage responseMessage = await cliente.GetAsync(urlGet);

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

            if (responseMessage.IsSuccessStatusCode == false)
            {
                Console.WriteLine(
                    $"Lo siento, la peticion fallo. StatusCode: {responseMessage.StatusCode}, Message: {content}");
            }

            //En este punto, la peticion salio bien, procedemos a deserializar el objeto
            RespuestaMapBox respuestaMapBox = JsonConvert.DeserializeObject <RespuestaMapBox>(content);

            double distanciaKms  = Math.Round(respuestaMapBox.Routes.First().Distance / 1000, 2);
            double tiempoMinutos = Math.Round(respuestaMapBox.Routes.First().Duration / 60, 2);

            Console.WriteLine($"La distancia entre los puntos es de: {distanciaKms} kms, tomaria llegar {tiempoMinutos} minutos en vehiculo tomando en cuenta el trafico");

            Console.ReadLine();
        }