コード例 #1
0
        private void VerClientes(List <Cliente> clientes)
        {
            foreach (var cli in clientes)
            {
                var marcador = new GMapMarker(cli.Coordenada.Value);

                var pin = ControladorMapa.CrearPinCliente(null, cli);

                marcador.Tag   = cli;
                marcador.Shape = pin;
                marcador.Shape.IsHitTestVisible = true;
                marcador.Offset = new Point(-pin.Width / 2, -pin.Height);

                if (this.ModoSeleccion == SelectionMode.Single)
                {
                    var menuMover = new MenuItem();
                    menuMover.Header           = "Ubicar manualmente en el mapa";
                    menuMover.Command          = this.CmdMoverUbicacionDeClienteManualmente;
                    menuMover.CommandParameter = marcador;
                    pin.Menu.Items.Add(menuMover);
                }

                pin.Menu.UpdateLayout();

                marcador.ZIndex = 3;

                this.mapa.Markers.Add(marcador);
            }
            ControladorMapa.RefrescarVista(this.mapa);
        }
コード例 #2
0
        private void VerClientesDelVendedor(Vendedor vendedor)
        {
            if (vendedor.Posiciones.Count == 0)
            {
                ControladorVendedores.CargarPosiciones(vendedor, diaSeleccionado.Value, diaSeleccionado.Value.AddDays(1));
            }
            foreach (var zona in vendedor.Zonas)
            {
                foreach (var cli in zona.Clientes)
                {
                    var marcador = new GMapMarker(cli.Coordenada.Value);

                    var pin = ControladorMapa.CrearPinCliente(vendedor.Posiciones, cli);

                    pin.Menu.UpdateLayout();

                    marcador.Shape = pin;
                    marcador.Shape.IsHitTestVisible = true;
                    marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
                    marcador.ZIndex = 3;

                    this.mapa.Markers.Add(marcador);
                }
            }
        }
コード例 #3
0
        private void btnConsultar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (this.query != string.Empty)
                {
                    this.listaClientes = new ObservableCollection <Cliente>(ControladorClientes.ProcesarConsulta(this.query));
                    var listaMarcadores = new List <GMapMarker>();
                    foreach (var cli in this.listaClientes)
                    {
                        var marcador = new GMapMarker(cli.Coordenada.Value);

                        var pin = ControladorMapa.CrearPinCliente(null, cli);

                        marcador.Shape = pin;
                        marcador.Shape.IsHitTestVisible = true;
                        marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
                        marcador.ZIndex = 3;
                        listaMarcadores.Add(marcador);
                    }
                    this.mapa.ItemsSource = listaMarcadores;
                    ControladorMapa.RefrescarVista(this.mapa);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #4
0
        private void dgPosiciones_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (sender != null)
            {
                var dg       = (DataGrid)sender;
                var posicion = (ItemReporte)dg.SelectedItem;
                if (posicion != null)
                {
                    var vendedor   = this.Vendedores.FirstOrDefault(x => x.Codigo == posicion.CodigoVendedor);
                    var posiciones = vendedor.Posiciones.Where(x => x.Fecha >= posicion.CheckIn && x.Fecha <= posicion.CheckOut).Select(p => new PointLatLng(p.Latitud, p.Longitud)).ToList();

                    this.mapa.Markers.Clear();

                    this.mapa.Markers.Add(ControladorMapa.CrearRuta(posiciones, Brushes.Green));
                    foreach (var punto in posiciones)
                    {
                        this.mapa.Markers.Add(ControladorMapa.CrearPuntoPosicion(punto, Brushes.PaleVioletRed));
                    }

                    if (posicion.Cliente != "VIAJE") //muestro el pin del cliente
                    {
                        foreach (var zona in vendedor.Zonas)
                        {
                            var cli = zona.Clientes.FirstOrDefault(c => c.Codigo == posicion.Cliente);
                            if (cli != null)
                            {
                                var marcador = new GMapMarker(cli.Coordenada.Value);

                                var pin = ControladorMapa.CrearPinCliente(null, 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);
                                break;
                            }
                        }
                    }
                    ControladorMapa.RefrescarVista(this.mapa);
                }
            }
        }
コード例 #5
0
        private object VerClientesDelVendedor(object vendedorMapa)
        {
            if (vendedorMapa == null)
            {
                return(false);
            }
            try
            {
                var v = vendedorMapa as Vendedor;
                v.VerClientes = true;

                //if (v.CantidadClientes == 0)

                ControladorVendedores.CargarClientes(v, DateTime.Today, this.ModoVerClientesConRuteo);
                if (v.Posiciones.Count == 0)
                {
                    ControladorVendedores.CargarPosiciones(v, FechaDesde, FechaHasta);
                }
                foreach (var zona in v.Zonas)
                {
                    foreach (var cli in zona.Clientes)
                    {
                        var marcador = new GMapMarker(cli.Coordenada.Value);

                        var pin = ControladorMapa.CrearPinCliente(v.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);
        }