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); } }
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"); }