/// <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; } }
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; }
/// <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; } }