Exemplo n.º 1
0
        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 );
            //
        }
Exemplo n.º 2
0
        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);
            //
        }