/// <summary> /// Se recupera los feedXively que corresponden a los parametros de la busqueda indicados /// posteriormente se analiza la información y si se muestra la alerta de como es /// la calidad del aire en la proximidad de un radio determinado. /// </summary> /// <param name="sender">Objeto enviante</param> /// <param name="e">Resultados</param> void ob1_RetornarMapaLugarDatapointsCompleted(object sender, RetornarMapaLugarDatapointsCompletedEventArgs e) { FeedXively[] arrayFeeds = e.Result; try { if (bandAlerta == true) { miAlerta.cancelar(); } bandAlerta = false; tblInfoPeligro.Text = ""; for (int i = 0; i < arrayFeeds.Length; i++) { PagListaSensores color = new PagListaSensores(); if (color.riesgo(arrayFeeds[i].feed) == 3) { bandAlerta = true; DispositivoCercano = arrayFeeds[i].feed.id; } } if (bandAlerta == true) { miAlerta = new Alerta(); miAlerta.iniciar(mediaControl); } } finally { } }
/// <summary> /// Método asincrono donde recupera los feedXively que corresponden a los parametros de la busqueda indicados /// posteriormente se analiza la información y se pinta en el mapa. /// </summary> /// <param name="sender">Objeto enviante</param> /// <param name="e">Resultados</param> public void ob_RetornarMapaLugarDatapointsCompleted(object sender, RetornarMapaLugarDatapointsCompletedEventArgs e) { /// Se recupera el resultado de la busqueda FeedXively[] arrayFeeds = e.Result; mapWithMyLocation.Layers.Clear();//Para borrar las capas que hay en el momento para cuando se actualiza /*if (bandAlerta == true) * miAlerta.cancelar(); * bandAlerta = false;*/ try { if (bandera == false) { this.mapWithMyLocation.Center = pin.GeoCoordinate; this.mapWithMyLocation.ZoomLevel = 20; } } catch (Exception) { } finally { } try { for (int i = 0; i < arrayFeeds.Length; i++) { //Se crea un nuevo PushPin en las coordenadas de un Dispositivo pin = new Pushpin(); pin.GeoCoordinate = new GeoCoordinate(double.Parse(arrayFeeds[i].feed.location.lat /*.Replace(".", ",")*/), double.Parse(arrayFeeds[i].feed.location.lon /*.Replace(".", ",")*/)); //////////////Logica para asignar contenido y color PagListaSensores color = new PagListaSensores(); if (color.riesgo(arrayFeeds[i].feed) == 1) { pin.Content = "D" + (i + 1) + ": Aire puro"; pin.Background = new SolidColorBrush(Colors.Green); } else if (color.riesgo(arrayFeeds[i].feed) == 2) { pin.Content = "D" + (i + 1) + ": Precaucion\n"; // +"Aire riesgoso"; pin.Background = new SolidColorBrush(Colors.Orange); } else if (color.riesgo(arrayFeeds[i].feed) == 3) { pin.Content = "D" + (i + 1) + ": Peligro\n"; // +"Aire contaminado"; pin.Background = new SolidColorBrush(Colors.Red); //bandAlerta = true; if (arrayFeeds[i].feed.id.Equals(DispositivoCercano)) { textoAlerta.Text = "Alerta! Está en zona contaminada:"; tblInfoPeligro.Text = "\n" + "D" + (i + 1) + ": " + arrayFeeds[i].feed.location.name; } } pin.Name = arrayFeeds[i].feed.id; pin.MouseLeftButtonUp += new System.Windows.Input.MouseButtonEventHandler(click); ////////////////////////////////////////////////////// /// Se añaden al mapa cada PushPin MapOverlay myLocationOverlay = new MapOverlay(); myLocationOverlay.Content = pin; myLocationOverlay.PositionOrigin = new Point(0.5, 0.5); myLocationOverlay.GeoCoordinate = pin.GeoCoordinate; MapLayer myLocationLayer = new MapLayer(); myLocationLayer.Add(myLocationOverlay); mapWithMyLocation.Layers.Add(myLocationLayer); } } finally { miLocalizacion(); //Se establece nuevamente mi ubicación } }