private void PlotData() { if (!controller.isCurrentAqiPackageDataList) { labelMsg.Text = "currentData is empty"; return; } labelAverageAqi.Text = null; gmap.Overlays.Clear(); gmap.Refresh(); int particleIndex = ((ComboTypeItem)comboBoxParticleType.SelectedItem).Value(); AqiPackage.Type currentType = (AqiPackage.Type)comboBoxType.SelectedItem; bool filterChecked = this.checkBoxFilter.Checked; int filterPercentage = 10; Data data = controller.getMarkerData(particleIndex, currentType, filterChecked, filterPercentage); if (data == null) { labelMsg.Text = "data is empty"; return; } IList <DataPoint> dataPoints = data.DataPoints; double maxValue = 0; GMapOverlay markers = new GMapOverlay("markers"); foreach (DataPoint dataPoint1 in dataPoints) { markers.Markers.Add(BuildMarker(dataPoint1.Lat, dataPoint1.Lon, dataPoint1.Label, dataPoint1.Value, dataPoint1.Color)); if (maxValue < dataPoint1.Value) { maxValue = dataPoint1.Value; } // } labelAverageAqi.Text = data.averageAqi.ToString(); gmap.Overlays.Add(markers); /* * // doesn't work * GMapOverlay routes = Buildroutes( maxValue, dataPoints ); * gmap.Overlays.Add( routes ); */ // rerenders the map and values gmap.Zoom += 0.000000001; //buttonFit_ClickAsync( this, null ); // }
internal Data getMarkerData(int particleIndex, AqiPackage.Type currentType, bool filterChecked, int filterPercentage) { //double averagePM2pt5 = 0; //double averagePM10 = 0; double averageAqi = 0; IList <AqiPackage.Data> currentData = currentAqiPackageDataList; if (filterChecked) { currentData = getfilteredCurrentAqiData(particleIndex, (int)currentType, filterPercentage); } IList <DataPoint> dataPoints = new List <DataPoint>(); DataPoint dataPoint = null; //int counter = 0; foreach (AqiPackage.Data item in currentData) { if (item.Type != (int)currentType) { continue; } IAqiCalc aqiCalc = null; if (particleIndex == (int)AqiPackage.Names.PM25) { aqiCalc = new AqiCalcPm2pt5(item.PM25); } else if (particleIndex == (int)AqiPackage.Names.PM10) { aqiCalc = new AqiCalcPm10(item.PM10); } else { continue; } //counter++; double aqi = aqiCalc.getAQI(); averageAqi += aqi; //System.Diagnostics.Debug.WriteLine( aqi ); dataPoint = new DataPoint(item.Lat, item.Lon, item.Label, aqi, aqiCalc.getColor()); if (dataPoint != null) { dataPoints.Add(dataPoint); } // } if (dataPoints.Count() == 0) { return(null); } Data data = new Data(averageAqi / dataPoints.Count(), dataPoints); return(data); // }