Ejemplo n.º 1
0
        private Graphic GenerateGraphic(HydrologicEntityItem item)
        {
            var point = new MapPoint(item.Longitude, item.Latitude, SpatialReferences.Wgs84);
            var color = Colors.Black;
            int size  = 5;

            if (item.L > item.Wl1 && item.Wl1 > 0.05)
            {
                color = Colors.Red;
                size  = 7;
            }
            var symbol = new SimpleMarkerSymbol
            {
                Style = SimpleMarkerStyle.Circle,
                Color = color,
                Size  = size
            };

            var graphic = new Graphic
            {
                Geometry = point,
                Symbol   = symbol
            };

            graphic.Attributes[HydrologicAttributes.Name]      = item.Name;
            graphic.Attributes[HydrologicAttributes.L]         = double.IsNaN(item.L) ? string.Empty : item.L.ToString();
            graphic.Attributes[HydrologicAttributes.Wl1]       = double.IsNaN(item.Wl1) ? string.Empty : item.Wl1.ToString();
            graphic.Attributes[HydrologicAttributes.Stationid] = item.Stationid;
            graphic.Attributes[HydrologicAttributes.Recordid]  = item.Recordid;
            graphic.Attributes[HydrologicAttributes.Type]      = item.Type;
            graphic.Attributes[HydrologicAttributes.Q]         = double.IsNaN(item.Q) ? string.Empty : item.Q.ToString();
            graphic.Attributes[HydrologicAttributes.Time]      = item.Time.ToString();

            GraphicGroupVM.AddToGroupItem(item.Type, graphic);

            return(graphic);
        }
Ejemplo n.º 2
0
        private HydrologicEntity FakeDataSource()
        {
            var entity = new HydrologicEntity();

            entity.Items = new List <HydrologicEntityItem>();

            var item = new HydrologicEntityItem
            {
                Latitude  = 44.081,
                Longitude = 130.176,
                Wl1       = 10,
                L         = 11,
                Name      = "库威",
                Stationid = "00100400",
                Recordid  = 1,
                Type      = "河道站",
                Q         = 10,
                Time      = DateTime.Now
            };

            entity.Items.Add(item);

            item = new HydrologicEntityItem
            {
                Latitude  = 50.224,
                Longitude = 119.53,
                Wl1       = 18,
                L         = 11,
                Name      = "库威",
                Stationid = "00100400",
                Recordid  = 1,
                Type      = "水库站",
                Q         = 10,
                Time      = DateTime.Now
            };
            entity.Items.Add(item);

            item = new HydrologicEntityItem
            {
                Latitude  = 45.639,
                Longitude = 130.069,
                Wl1       = 10,
                L         = 11,
                Name      = "库威",
                Stationid = "00100400",
                Recordid  = 1,
                Type      = "河道站",
                Q         = 10,
                Time      = DateTime.Now
            };
            entity.Items.Add(item);

            item = new HydrologicEntityItem
            {
                Latitude  = 43.937,
                Longitude = 119.449,
                Wl1       = 15,
                L         = 11,
                Name      = "库威",
                Stationid = "00100400",
                Recordid  = 1,
                Type      = "河道站",
                Q         = 10,
                Time      = DateTime.Now
            };
            entity.Items.Add(item);

            return(entity);
        }
Ejemplo n.º 3
0
        public static List <RiverWarningRecord> LakeGetByWarningList()
        {
            List <WarningData> listWarning = new List <WarningData>();

            listWarning.Add(new WarningData {
                Uid = "61512000", Time = DateTime.Now, L = 0, WL1 = 0
            });                                                                                          //61512000    城陵矶(七里山)    洞庭湖湖口
            listWarning.Add(new WarningData {
                Uid = "62601600", Time = DateTime.Now, L = 0, WL1 = 0
            });                                                                                            //62601600        湖口              湖口水道
            listWarning.Add(new WarningData {
                Uid = "63201999", Time = DateTime.Now, L = 0, WL1 = 0
            });                                                                                           //63201999    太湖水位          太湖
            List <RiverWarningRecord> listRecord = new List <RiverWarningRecord>();
            HydrologicReader          dbReader   = new HydrologicReader();

            foreach (WarningData warning in listWarning)
            {
                RiverWarningRecord record = new RiverWarningRecord();
                bool   isBeyond           = false;
                double OverWarningLevel   = 0;
                HydrologicEntityItem item = new HydrologicEntityItem();
                int t = dbReader.GetLastWarningData(DateTime.Now.AddDays(-2), DateTime.Now, warning.Uid, out item, out isBeyond, out OverWarningLevel);

                if (item.Basin != null || !item.Basin.Contains("其他"))
                {
                    int index = item.Basin.IndexOf("流域");
                    record.Basin = (index < 0) ? item.Basin : item.Basin.Remove(index);
                }
                else
                {
                    record.Basin = item.Basin;
                }

                record.IsBeyond         = isBeyond;
                record.Level            = item.L;
                record.Name             = item.Name;
                record.OverWarningLevel = OverWarningLevel;
                record.Province         = GetProvinceByAdm(item.Administrativeregion); //从行政地址获得省名
                record.River            = item.River;
                record.Time             = item.Time;
                record.WarningLevel     = item.Wl1;

                if (t > 0)
                {
                    record.ComparedBefore = Trend.Rise;
                }
                else if (t == 0)
                {
                    record.ComparedBefore = Trend.Hold;
                }
                else
                {
                    record.ComparedBefore = Trend.Fall;
                }

                listRecord.Add(record);
            }

            return(listRecord);
        }
Ejemplo n.º 4
0
        public static List <ReservoirWarningRecord> ResGetByWarningList(List <WarningData> listWarning)
        {
            List <ReservoirWarningRecord> listRecord    = new List <ReservoirWarningRecord>();
            List <ReservoirWarningRecord> listRtnRecord = new List <ReservoirWarningRecord>();
            HydrologicReader dbReader = new HydrologicReader();

            foreach (WarningData warning in listWarning)
            {
                ReservoirWarningRecord record = new ReservoirWarningRecord();
                bool   isBeyond           = false;
                double OverWarningLevel   = 0;
                HydrologicEntityItem item = new HydrologicEntityItem();
                int t = dbReader.GetLastWarningData(DateTime.Now.AddDays(-2), DateTime.Now, warning.Uid, out item, out isBeyond, out OverWarningLevel);

                if (item.Basin != null || !item.Basin.Contains("其他"))
                {
                    int index = item.Basin.IndexOf("流域");
                    record.Basin = (index < 0) ? item.Basin : item.Basin.Remove(index);
                }
                else
                {
                    record.Basin = item.Basin;
                }

                record.IsBeyond         = isBeyond;
                record.Level            = item.L;
                record.Name             = item.Name;
                record.OverWarningLevel = OverWarningLevel;
                record.Province         = GetProvinceByAdm(item.Administrativeregion); //从行政地址获得省名
                record.River            = item.River;
                record.Time             = item.Time;
                record.WarningLevel     = item.Wl1;

                if (t > 0)
                {
                    record.ComparedBefore = Trend.Rise;
                }
                else if (t == 0)
                {
                    record.ComparedBefore = Trend.Hold;
                }
                else
                {
                    record.ComparedBefore = Trend.Fall;
                }

                if (!(double.IsNaN(record.WarningLevel) || record.WarningLevel <= 0))
                {
                    listRecord.Add(record);
                }
            }

            var groupedList = from info in listRecord
                              group info by info.Basin into g
                              select g;

            foreach (var group in groupedList)
            {
                List <ReservoirWarningRecord> toSortList = new List <ReservoirWarningRecord>();

                foreach (var item in group)
                {
                    toSortList.Add(item);
                }
                toSortList.Sort(delegate(ReservoirWarningRecord a, ReservoirWarningRecord b) { return(b.OverWarningLevel.CompareTo(a.OverWarningLevel)); });
                listRtnRecord.AddRange(toSortList);
            }

            return(listRtnRecord);
        }