protected void AddMarker(EntidadPadre entidad, string style)
        {
            if (entidad != null)
            {
                var icono = IconDir;
                if (entidad.ReferenciaGeografica != null && entidad.ReferenciaGeografica.Icono != null)
                {
                    icono += entidad.ReferenciaGeografica.Icono.PathIcono;
                }

                var desc             = entidad.Descripcion;
                var refGeo           = entidad.ReferenciaGeografica;
                var vehiculoAsociado = DAOFactory.CocheDAO.FindMobileByDevice(entidad.Dispositivo.Id);
                var ultimaPosicion   = vehiculoAsociado != null?DAOFactory.LogPosicionDAO.GetLastVehiclesPositions(new List <Coche> {
                    vehiculoAsociado
                })[vehiculoAsociado.Id] : null;

                var latitud  = ultimaPosicion != null ? ultimaPosicion.Latitud : refGeo != null ? refGeo.Latitude : 0;
                var longitud = ultimaPosicion != null ? ultimaPosicion.Longitud : refGeo != null ? refGeo.Longitude : 0;
                var marker   = MarkerFactory.CreateLabeledMarker(entidad.Id.ToString("#0"), icono, latitud, longitud, desc, style, GetMovilPopupContent(entidad));

                if (refGeo != null && refGeo.Icono != null)
                {
                    marker.Size   = DrawingFactory.GetSize(refGeo.Icono.Width, refGeo.Icono.Height);
                    marker.Offset = DrawingFactory.GetOffset(refGeo.Icono.OffsetX, refGeo.Icono.OffsetY);
                }

                Monitor.AddMarkers(LayerEntidades, marker);
            }
        }
Exemple #2
0
        protected void AddMarker(EntregaDistribucion item, string imageUrl)
        {
            if (item.ReferenciaGeografica == null)
            {
                return;
            }
            var id       = item.Id.ToString("0");
            var latitud  = item.ReferenciaGeografica.Latitude;
            var longitud = item.ReferenciaGeografica.Longitude;
            var label    = item.Programado.ToString("HH:mm");
            var marker   = MarkerFactory.CreateLabeledMarker("m" + id, imageUrl, latitud, longitud, label);

            marker.Size   = DrawingFactory.GetSize(20, 20);
            marker.Offset = DrawingFactory.GetOffset(-10, -10);
            Monitor1.AddMarkers(LayerEntregas, marker);
        }
        protected void ShowPuntos(List <ViajeDistribucion> distribuciones)
        {
            monitorPuntos.ClearLayers();

            var entregas = new List <EntregaDistribucion>();

            foreach (var distribucion in distribuciones)
            {
                entregas.AddRange(distribucion.Detalles.Where(d => d.Linea == null));
            }

            var completados   = entregas.Count(e => e.Estado == EntregaDistribucion.Estados.Completado);
            var visitados     = entregas.Count(e => e.Estado == EntregaDistribucion.Estados.Visitado);
            var noCompletados = entregas.Count(e => e.Estado == EntregaDistribucion.Estados.NoCompletado);
            var sinVisitar    = entregas.Count(e => e.Estado == EntregaDistribucion.Estados.SinVisitar);
            var enSitio       = entregas.Count(e => e.Estado == EntregaDistribucion.Estados.EnSitio);
            var pendientes    = entregas.Count(e => e.Estado == EntregaDistribucion.Estados.Pendiente);
            var enZona        = entregas.Count(e => e.Estado == EntregaDistribucion.Estados.EnZona);

            var estados   = GetEstados();
            var filtradas = entregas.Where(e => estados.Count == 0 || estados.Contains(e.Estado));

            var markers = new List <Marker>();
            var lat     = 0.0;
            var lon     = 0.0;

            foreach (var entrega in filtradas)
            {
                var punto = entrega.ReferenciaGeografica;
                if (punto != null)
                {
                    string url;
                    var    style = string.Empty;
                    var    text  = string.Empty;
                    lat = punto.Latitude;
                    lon = punto.Longitude;

                    switch (entrega.Estado)
                    {
                    case EntregaDistribucion.Estados.Completado:
                        url   = ResolveUrl("~/images/Green-Ball-icon.png");
                        style = "ol_marker_labeled_green";
                        text  = entrega.Manual.HasValue
                                        ? entrega.Orden + " (" + entrega.Manual.Value.ToDisplayDateTime().ToString("HH:mm") + ")"
                                        : entrega.Orden.ToString("#0");
                        break;

                    case EntregaDistribucion.Estados.Visitado:
                        url   = ResolveUrl("~/images/Yellow-Ball-icon.png");
                        style = "ol_marker_labeled_yellow";
                        text  = entrega.Entrada.HasValue
                                        ? entrega.Orden + " (" + entrega.Entrada.Value.ToDisplayDateTime().ToString("HH:mm") + ")"
                                        : entrega.Orden.ToString("#0");
                        break;

                    case EntregaDistribucion.Estados.NoCompletado:
                        url   = ResolveUrl("~/images/Red-Ball-icon.png");
                        style = "ol_marker_labeled_red";
                        text  = entrega.Manual.HasValue
                                        ? entrega.Orden + " (" + entrega.Manual.Value.ToDisplayDateTime().ToString("HH:mm") + ")"
                                        : entrega.Orden.ToString("#0");
                        break;

                    case EntregaDistribucion.Estados.EnSitio:
                        url   = ResolveUrl("~/images/Blue-Ball-icon.png");
                        style = "ol_marker_labeled_blue";
                        text  = entrega.Entrada.HasValue
                                        ? entrega.Orden + " (" + entrega.Entrada.Value.ToDisplayDateTime().ToString("HH:mm") + ")"
                                        : entrega.Orden.ToString("#0");
                        break;

                    case EntregaDistribucion.Estados.EnZona:
                        url   = ResolveUrl("~/images/Grey-Ball-icon.png");
                        style = "ol_marker_labeled";
                        text  = entrega.Entrada.HasValue
                                        ? entrega.Orden + " (" + entrega.Entrada.Value.ToDisplayDateTime().ToString("HH:mm") + ")"
                                        : entrega.Orden.ToString("#0");
                        break;

                    default:
                        url = ResolveUrl("~/images/Orange-Ball-icon.png");
                        break;
                    }

                    if (style != string.Empty)
                    {
                        var lmarker = MarkerFactory.CreateLabeledMarker("P:" + punto.Id, url, punto.Latitude, punto.Longitude, text, style, GetEntregaPopupContent(entrega.Id));
                        markers.Add(lmarker);
                    }
                    else
                    {
                        var marker = MarkerFactory.CreateMarker("P:" + punto.Id, url, punto.Latitude, punto.Longitude, GetEntregaPopupContent(entrega.Id));
                        markers.Add(marker);
                    }
                }

                if (lat != 0.0 && lon != 0.0)
                {
                    monitorPuntos.SetCenter(lat, lon);
                }
            }

            monitorPuntos.AddMarkers(LayerPuntos, markers.ToArray());

            var porc        = 0.0;
            var finalizados = completados + visitados + enSitio + enZona;

            if (entregas.Count > 0 && finalizados > 0)
            {
                porc = (float)finalizados / (float)entregas.Count * 100;
            }

            gaugeCompletados.Gauges[0].Value = porc;
            lblCompletados.Text   = porc.ToString("#0") + " % (" + finalizados + ")";
            lblComp.Text          = completados.ToString("#0");
            lblVisitados.Text     = visitados.ToString("#0");
            lblNoCompletados.Text = noCompletados.ToString("#0");
            lblSinVisitar.Text    = sinVisitar.ToString("#0");
            lblEnSitio.Text       = enSitio.ToString("#0");
            lblPendientes.Text    = pendientes.ToString("#0");
            lblEnZona.Text        = enZona.ToString("#0");
            lblTotal.Text         = entregas.Count.ToString("#0");
            lblRutas.Text         = distribuciones.Count.ToString("#0");
        }