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