private object VerCaminoDelVendedor(object fleteroMapa) { if (fleteroMapa == null) { return(false); } try { var f = fleteroMapa as Fletero; f.VerTodasLasPosiciones = true; if (f.Posiciones.Count == 0) { ControladorFleteros.CargarPosiciones(f, FechaDesde, FechaHasta); } this.mapa.Markers.Add(ControladorMapa.CrearRuta(f.Posiciones.Where(p => p.Latitud != 0 && p.Longitud != 0).Select(x => new PointLatLng(x.Latitud, x.Longitud)).ToList(), Brushes.Red)); foreach (var pos in f.Posiciones) { if (pos.Latitud != 0 && pos.Longitud != 0) { this.mapa.Markers.Add(ControladorMapa.CrearPuntoPosicion(pos)); } } ControladorMapa.RefrescarVista(this.mapa); } catch (Exception ex) { MessageBox.Show(ex.Message); } return(true); }
private void AgregarActualizarFletero(Fletero fleteroMapa) { try { var f = Fleteros.FirstOrDefault(e => e.Codigo == fleteroMapa.Codigo); if (f == null) { var flet = ControladorFleteros.ObtenerFletero(fleteroMapa.Codigo); if (flet != null) { fleteroMapa.Foto = flet.Foto; fleteroMapa.Nombre = flet.Nombre; fleteroMapa.Domicilio = flet.Domicilio; fleteroMapa.CoordenadaDomicilio = new PointLatLng(flet.CoordenadaDomicilio.Lat, flet.CoordenadaDomicilio.Lng); } this.CalculaTiempoReporte(fleteroMapa); if (fleteroMapa.CoordenadaActual.Lat == 0 && fleteroMapa.CoordenadaActual.Lng == 0) //si lat y lng vienen 0, 0 es porque tiene gps apagado { fleteroMapa.CoordenadaActual = new PointLatLng(-38.002452, -57.601936); fleteroMapa.Estado = Estado.GPS_APAGADO; } this.Fleteros.Add(fleteroMapa); } else { if (f.Clientes.Count == 0) { ControladorFleteros.CargarClientesDelFletero(f, DateTime.Today); } f.Estado = fleteroMapa.Estado; f.Fecha = fleteroMapa.Fecha; this.CalculaTiempoReporte(f); if (fleteroMapa.CoordenadaActual.Lat == 0 && fleteroMapa.CoordenadaActual.Lng == 0) { fleteroMapa.Estado = Estado.GPS_APAGADO; } else { f.CoordenadaActual = fleteroMapa.CoordenadaActual; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
void ObtenerPosiciones() { this.actualizadorDePosiciones.Stop(); App.Current.Dispatcher.Invoke((Action) delegate { try { var fleteros = ControladorFleteros.ObtenerUltimaPosicionFleteros(FechaDesde); foreach (var item in fleteros) { this.AgregarActualizarFletero(item); } switch (this.modo) { case ModoVerMarcadores.Nada: break; case ModoVerMarcadores.Todo: this.MostrarTodo(); break; case ModoVerMarcadores.Seleccionado: this.MostrarMarcador(this.listaDeElementos.SelectedItem as Fletero, true); break; default: break; } } catch (Exception exc) { MessageBox.Show(exc.Message); } }); this.actualizadorDePosiciones.Start(); }
private object VerClientesDelVendedor(object fleteroMapa) { if (fleteroMapa == null) { return(false); } try { var f = fleteroMapa as Fletero; f.VerClientes = true; if (f.Clientes.Count == 0) { ControladorFleteros.CargarClientesDelFletero(f, DateTime.Today); } ControladorFleteros.CargarPosiciones(f, FechaDesde, FechaHasta); foreach (var cli in f.Clientes) { var marcador = new GMapMarker(cli.Coordenada.Value); var pin = ControladorMapa.CrearPinClienteFletero(f.Posiciones, cli); marcador.Shape = pin; marcador.Shape.IsHitTestVisible = true; marcador.Offset = new Point(-pin.Width / 2, -pin.Height); marcador.ZIndex = 3; this.mapa.Markers.Add(marcador); } ControladorMapa.RefrescarVista(this.mapa); } catch (Exception ex) { MessageBox.Show(ex.Message); } return(true); }