/// <summary>
        /// convierte una direccion de puerta en un juego de coordenadas geográficas
        /// </summary>
        /// <param name="direccion"></param>
        /// <returns></returns>
        public async Task <PosicionSatelital> convertirDireccionEnCoordenadas(string direccion)
        {
            try
            {
                PosicionSatelital posicion = new PosicionSatelital();
                HttpClient        cliente  = new HttpClient();
                string            path     = "https://maps.googleapis.com/maps/api/geocode/json?address=" + direccion + "&key=AIzaSyB08YiU7GpCk0RCQozZWxiIj3Ud3se0_Ec";

                HttpResponseMessage response = await cliente.GetAsync(path);

                if (response.IsSuccessStatusCode)
                {
                    RootObject root = JsonConvert.DeserializeObject <RootObject>(await response.Content.ReadAsStringAsync());
                    foreach (Result r in root.results)
                    {
                        posicion.Latitud  = Convert.ToString(r.geometry.location.lat, System.Globalization.CultureInfo.InvariantCulture);
                        posicion.Longitud = Convert.ToString(r.geometry.location.lng, System.Globalization.CultureInfo.InvariantCulture);
                    }
                }
                return(posicion);
            }
            catch (TimeoutException)
            {
                throw new MensajeException("Se agoto el tiempo de espera, vuelva a intentarlo en unos minutos");
            }
            catch (Exception)
            {
                throw new MensajeException("Compruebe el formato de las direcciones ingresadas");
            }
        }
 /// <summary>
 /// devuelve una lista de posiciones satelitales de los vehiculos aptos para mudanzas que hay en el hash de memoria
 /// </summary>
 /// <returns>lista de posiciones satelitales</returns>
 public List <PosicionSatelital> obtenerUbicacionesVehiculosMudanza()
 {
     try
     {
         List <PosicionSatelital> ubicaciones = new List <PosicionSatelital>();
         if (Vehiculos.Count > 0)
         {
             foreach (Vehiculo v in Vehiculos)
             {
                 if (UbicacionVehiculos.Count > 0)
                 {
                     if (v.Tipo == TipoVehiculo.CamionMudanza)
                     {
                         if (UbicacionVehiculos[v.Id.ToString()] != null)
                         {
                             string            id       = v.Id.ToString();
                             PosicionSatelital posicion = (PosicionSatelital)UbicacionVehiculos[id];
                             ubicaciones.Add(posicion);
                         }
                     }
                 }
                 else
                 {
                     throw new MensajeException("No hay ubicaciones disponibles");
                 }
             }
         }
         return(ubicaciones);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #3
0
 public Vehiculo()
 {
     Items                       = new List <Item>();
     Calificacion                = 0;
     Id                          = new ObjectId();
     Matricula                   = "";
     Marca                       = "";
     Modelo                      = "";
     Unidades                    = 0;
     Tipo                        = TipoVehiculo.Otros;
     Disponible                  = true;
     PosicionSatelital           = new PosicionSatelital();
     Chofer                      = new Chofer();
     CantidadPasajeros           = 0;
     EmpresaAseguradora          = "";
     VencimientoSeguro           = DateTime.Now;
     Tarifa                      = 0;
     VencimientoPermisoPortuario = DateTime.Now;
     Alto                        = 0;
     Largo                       = 0;
     Ancho                       = 0;
     CantidadPasajeros           = 0;
     EmpresaAseguradora          = "";
     CapacidadCargaKg            = 0;
     ConsumoKml                  = 0;
 }
        public void datos()
        {
            //se harcodea hasta que se obtenga la posicion dinamicamente
            //PosicionSatelital hard = new PosicionSatelital("5b9a6bbefe2a714978444832", "-34.895249", "-56.126989");
            //UbicacionVehiculos["5b9a6bbefe2a714978444832"] = hard;
            PosicionSatelital hard2 = new PosicionSatelital("5b9a6bf2fe2a714978444833", "-34.909789", "-56.197760");

            UbicacionVehiculos["5b9a6bf2fe2a714978444833"] = hard2;
            PosicionSatelital hard3 = new PosicionSatelital("5b9b1b02c7de353ce4e553d9", "-34.895090", "-56.164818");

            UbicacionVehiculos["5b9b1b02c7de353ce4e553d9"] = hard3;
        }
예제 #5
0
 /// <summary>
 /// guarda la posicion satelital del cliente con el id pasado como parametro en el hash en memoria
 /// </summary>
 /// <param name="idCliente"></param>
 /// <param name="latitud"></param>
 /// <param name="longitud"></param>
 /// <returns></returns>
 public PosicionSatelital guardarUbicacionCliente(string idCliente, string latitud, string longitud)
 {
     PosicionSatelital posicion = new PosicionSatelital(idCliente, latitud, longitud);
     if (UbicacionesClientes.Contains(idCliente))
     {
         UbicacionesClientes[idCliente] = posicion;
     }
     else
     {
         UbicacionesClientes.Add(posicion.Id, posicion);
     }
     return posicion;
 }
 /// <summary>
 /// desde la api guarda la posicion actual del vehiculo en el hash de posiciones
 /// </summary>
 /// <param name="idVehiculo"></param>
 /// <param name="latitud"></param>
 /// <param name="longitud"></param>
 /// <returns></returns>
 public PosicionSatelital guardarUbicacionVehiculo(string idVehiculo, string latitud, string longitud)
 {
     try
     {
         PosicionSatelital posicion = new PosicionSatelital(idVehiculo, latitud, longitud);
         if (UbicacionVehiculos.Contains(idVehiculo))
         {
             UbicacionVehiculos[idVehiculo] = posicion;
         }
         else
         {
             UbicacionVehiculos.Add(idVehiculo, posicion);
         }
         return(posicion);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }