| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487 | 
							- using System;
 
- using System.Collections;
 
- using System.Collections.Generic;
 
- using UnityEngine;
 
- using UnityEngine.Networking;
 
- using UnityEngine.Serialization;
 
- using UnityEngine.UI;
 
- using UnityAsync;
 
- using XCharts.Runtime;
 
- using Newtonsoft.Json.Linq;
 
- using Newtonsoft.Json;
 
- using Unity.Mathematics;
 
- using static XCharts.Runtime.RadarCoord;
 
- public enum shuiWeiYuJingDataType
 
- {
 
-     BuYuan,
 
-     TaoKou
 
- }
 
- [System.Serializable]
 
- public class StationData:IComparable
 
- {
 
-     public string ADDVCD = "421083";
 
-     public string ADMAUTH = "荆州水文";
 
-     public string ATCUNIT = "荆州市水文局";
 
-     public string BGFRYM = "201404";
 
-     public string BSNM = "长江";
 
-     public string COMMENTS = "中小河流";
 
-     public string DRNA; // null, 用string表示
 
-     public string DTMNM = "吴淞";
 
-     public string ESSTYM = "201404";
 
-     public string FRGRD = "3";
 
-     public string HNNM = "内荆河";
 
-     public float LGTD = 113.209264f;
 
-     public string LOCALITY = "湖北水文";
 
-     public float LTTD = 29.960969f;
 
-     public string MODITIME = "2022-02-23";
 
-     public string PHCD = "ZBYZS";
 
-     public int ROWNUM_ = 185;
 
-     public string RVNM = "子贝渊河";
 
-     public string STAZT; // null, 用string表示
 
-     public string STBK = "0";
 
-     public string STCD = "61016161";
 
-     public string STLC = "荆州市洪湖市瞿家湾镇月池村一组";
 
-     public string STNM = "子贝渊(闸上)";
 
-     public string STTP = "DD";
 
-     public string USFL = "1";
 
-     public float dwz; // null, 用string表示
 
-     public float tgtq; // null, 用string表示
 
-     public float upz = 25.5f;
 
-     public int CompareTo(object obj)
 
-     {
 
-         StationData other = (StationData)obj;
 
-         float max = MathF.Max(dwz, upz);
 
-         float max1 = MathF.Max(other.dwz, other.upz);
 
-         if (max > max1)
 
-         {
 
-             return -1;
 
-         }
 
-         else if (max < max1)
 
-         {
 
-             return 1;
 
-         }
 
-         else {
 
-             return 0;
 
-         }
 
-     }
 
- }
 
-     public class SWYJLayer : YZTRootLayer
 
- {
 
-     public shuiWeiYuJingDataType currentDataType = shuiWeiYuJingDataType.BuYuan;
 
-     
 
-     //全域雨量
 
-     private Text _dangQianYuLiangText;
 
-     private Text _zuiDaYuLiangText;
 
-     private Text _pingJunYuLiangText;
 
-     private Text _chaoJingZhanDianText;
 
-     private Text _weatherTypeText;
 
-     private Image _weatherTypeIcon;
 
-     [Header("全域流量数据")] public QuanYuYuLiangData currentQuanYuYuLiangData;
 
-     //站点排名
 
-     private Text _paiMing_1_Text;
 
-     private Text _paiMing_6_Text;
 
-     private Text _paiMing_12_Text;
 
-     private Text _paiMing_24_Text;
 
-     private Text _paiMing_1_Name_Text;
 
-     private Text _paiMing_6_Name_Text;
 
-     private Text _paiMing_12_Name_Text;
 
-     private Text _paiMing_24_Name_Text;
 
-     //工程安全监测
 
-     //检测数据
 
-     private Text _pingJunShuiWeiText;
 
-     private Text _sheFangShuiWeiText;
 
-     private Text _jingJieShuiWeiText;
 
-     private Text _baoZhengShuiWeiText;
 
-     private Text _shuiWeiText;
 
-     //水位变化与统计
 
-     private BarChart shuiWeiBianHua;
 
-     
 
-     [Header("工程安全监测-水位变化与统计数据")]
 
-     public ShuiWeiBianHuaData ShuiWeiBianHuaData_TK_Month;
 
-     public ShuiWeiBianHuaData ShuiWeiBianHuaData_TK_Day;
 
-     public ShuiWeiBianHuaData ShuiWeiBianHuaData_TK_Hour;
 
-     
 
-     private Dropdown shuiWeiBarChartDropdown;
 
-     //异常警告
 
-     [Header("异常警告数据")] public List<YiChangJingGaoData> currentYiChangJingGaoDatas;
 
-     private List<YiChangJingGaoItem> currentYiChangJingGaoItems;
 
-     private RectTransform _yiChangJingGaoListContent;
 
-     public GameObject YiChangJingGaoItemOri;
 
-     public RectTransform main;
 
-     public RectTransform miniMap;
 
-     public UnityEngine.UI.Button globalSWBtn;
 
-     public UnityEngine.UI.Button exitGlobalSWBtn;
 
-     
 
-     public Sprite highLightBtn;
 
-     public Sprite normalBtn;
 
-     private Button BuYuanDataButton;
 
-     private Button TaoKouDataButton;
 
-     public GameObject miniMapSWContent;
 
-     public List<SWHeightUnit> sWHeightUnits = new List<SWHeightUnit>();
 
-     public GameObject sWHeightUnitPrefab;
 
-     public GameObject runtimePointObj;
 
-     public GameObject shuiweiIconPrefab;
 
-     private List<ShuiWeiIconCtrl> _shuiWeiIconCtrls = new List<ShuiWeiIconCtrl>();
 
-     private Transform _shuiWeiIconContent;
 
-     private bool creatShuiWeiIcon = false;
 
-     public GameObject[] zdpmObjs;
 
-     private void Awake()
 
-     {
 
-         Init();
 
-         BuYuanDataButton = this.transform.Find("Main/BuYuanButton").GetComponent<Button>();
 
-         BuYuanDataButton.onClick.AddListener(() =>
 
-         {
 
-             BuYuanDataButton.GetComponent<UnityEngine.UI.Image>().sprite = highLightBtn;
 
-             TaoKouDataButton.GetComponent<UnityEngine.UI.Image>().sprite = normalBtn;
 
-             StaticLod.instance.OnFoucusStatic(0);
 
-             ChangeDataType(shuiWeiYuJingDataType.BuYuan);
 
-         });
 
-         TaoKouDataButton = this.transform.Find("Main/TaoKouButton").GetComponent<Button>();
 
-         TaoKouDataButton.onClick.AddListener(() =>
 
-         {
 
-             BuYuanDataButton.GetComponent<UnityEngine.UI.Image>().sprite = normalBtn;
 
-             TaoKouDataButton.GetComponent<UnityEngine.UI.Image>().sprite = highLightBtn;
 
-             StaticLod.instance.OnFoucusStatic(1);
 
-             ChangeDataType(shuiWeiYuJingDataType.TaoKou);
 
-         });
 
-         //水位
 
-         _shuiWeiIconContent = this.transform.Find("Main/ShuiWeiIconContent").transform;
 
-         HttpHelper._Instance.OnSWYJRefresh += () =>
 
-         {
 
-             SetZhanDianPaiMingData();
 
-             CreateOrRefreshShuiWeiIcon();
 
-             RefreshThreeLevel();
 
-         };
 
-     }
 
-     private async void OnEnable()
 
-     {
 
-         StaticLod.instance.OnFoucusStatic(currentDataType==shuiWeiYuJingDataType.BuYuan?0:1);
 
-         //水位统计图
 
-         OnShuiWeiDropDownSelect(shuiWeiBarChartDropdown.value);
 
-         SetZhanDianPaiMingData();
 
-         CreateOrRefreshShuiWeiIcon();
 
-         RefreshThreeLevel();
 
-     }
 
-     private void OnDisable()
 
-     {
 
-     }
 
-     public void RefreshThreeLevel() {
 
-         if (GlobalData.threeLevelShuiWeiDatas.Count < 1 || GlobalData.BuYuanShuiWeiDataList.Count < 1)
 
-             return;
 
-         if (currentDataType == shuiWeiYuJingDataType.BuYuan) {
 
-             float value1 = GlobalData.BuYuanShuiWeiDataList[0].value;
 
-             float value2 = GlobalData.BuYuanShuiWeiDataList[1].value;
 
-             _pingJunShuiWeiText.text = $"{(value1 + value2)/2} <color=#A5BBE2>mm</color>";
 
-             _sheFangShuiWeiText.text = $"{GlobalData.threeLevelShuiWeiDatas[0].flood_protection_level} m";
 
-             _jingJieShuiWeiText.text = $"{GlobalData.threeLevelShuiWeiDatas[0].warning_level} m";
 
-             _baoZhengShuiWeiText.text = $"{GlobalData.threeLevelShuiWeiDatas[0].guarantee_level} m";
 
-             _shuiWeiText.text = $"{value1}";
 
-         }
 
-         else
 
-         {
 
-             float value1 = GlobalData.BuYuanShuiWeiDataList[0].value;
 
-             float value2 = GlobalData.BuYuanShuiWeiDataList[1].value;
 
-             _pingJunShuiWeiText.text = $"{(value1 + value2) / 2} <color=#A5BBE2>mm</color>";
 
-             _sheFangShuiWeiText.text = $"{GlobalData.threeLevelShuiWeiDatas[1].flood_protection_level} m";
 
-             _jingJieShuiWeiText.text = $"{GlobalData.threeLevelShuiWeiDatas[1].warning_level} m";
 
-             _baoZhengShuiWeiText.text = $"{GlobalData.threeLevelShuiWeiDatas[1].guarantee_level} m";
 
-             _shuiWeiText.text = $"{value1}";
 
-         }
 
-     }
 
-     //水位图标
 
-     public void CreateOrRefreshShuiWeiIcon()
 
-     {
 
-         if (_shuiWeiIconCtrls.Count < 1)
 
-         {
 
-             for (int i = 0; i < GlobalData.BuYuanShuiWeiDataList.Count; i++)
 
-             {
 
-                 ShuiWeiIconCtrl tempIcon =
 
-                     Instantiate(shuiweiIconPrefab, _shuiWeiIconContent).GetComponent<ShuiWeiIconCtrl>();
 
-                 tempIcon.Init(GlobalData.BuYuanShuiWeiDataList[i]);
 
-                 _shuiWeiIconCtrls.Add(tempIcon);
 
-             }
 
-             if (_shuiWeiIconCtrls.Count < 1)
 
-             {
 
-                 return;
 
-             }
 
-             GameObject[] BY_targs = GameObject.FindGameObjectsWithTag(shuiWeiType.BuYuanShuiWei.ToString());
 
-             GameObject[] TK_targs = GameObject.FindGameObjectsWithTag(shuiWeiType.TaoKouShuiWei.ToString());
 
-             for (int i = 0; i < _shuiWeiIconCtrls.Count; i++)
 
-             {
 
-                 string objName = _shuiWeiIconCtrls[i]._data.targetName;
 
-                 if (_shuiWeiIconCtrls[i]._data.type == shuiWeiType.BuYuanShuiWei)
 
-                 {
 
-                     for (int j = 0; j < BY_targs.Length; j++)
 
-                     {
 
-                         if (BY_targs[j].gameObject.name == objName)
 
-                         {
 
-                             _shuiWeiIconCtrls[i].targetTransForm = BY_targs[j].transform;
 
-                             break;
 
-                         }
 
-                     }
 
-                 }
 
-                 else
 
-                 {
 
-                     for (int j = 0; j < TK_targs.Length; j++)
 
-                     {
 
-                         if (TK_targs[j].gameObject.name == objName)
 
-                         {
 
-                             _shuiWeiIconCtrls[i].targetTransForm = TK_targs[j].transform;
 
-                             break;
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         else {
 
-             for (int i = 0; i < GlobalData.BuYuanShuiWeiDataList.Count; i++)
 
-             {
 
-                 _shuiWeiIconCtrls[i].Init(GlobalData.BuYuanShuiWeiDataList[i]);
 
-             }
 
-         }
 
-     }
 
-  
 
-     public void Init()
 
-     {
 
-         //全域雨量
 
-         _dangQianYuLiangText = this.transform.Find("Left/QuanYuYuLiang/DangQianYuLiang/numText").GetComponent<Text>();
 
-         _zuiDaYuLiangText = this.transform.Find("Left/QuanYuYuLiang/ZuiDaYuLiang/numText").GetComponent<Text>();
 
-         _pingJunYuLiangText = this.transform.Find("Left/QuanYuYuLiang/PingJunYuLiang/numText").GetComponent<Text>();
 
-         _chaoJingZhanDianText = this.transform.Find("Left/QuanYuYuLiang/ChaoZhanYuJing/numText").GetComponent<Text>();
 
-         _weatherTypeText = this.transform.Find("Left/QuanYuYuLiang/weatherTypeName").GetComponent<Text>();
 
-         _weatherTypeIcon = this.transform.Find("Left/QuanYuYuLiang/weatherIcon").GetComponent<Image>();
 
-         if (currentQuanYuYuLiangData != null)
 
-         {
 
-             _dangQianYuLiangText.text =
 
-                 $"{currentQuanYuYuLiangData.dangQianYuLiang} <size=14><color=#A5BBE2>mm</color></size>";
 
-             _zuiDaYuLiangText.text =
 
-                 $"{currentQuanYuYuLiangData.zuiDaYuLiang} <size=14><color=#A5BBE2>mm</color></size>";
 
-             _pingJunYuLiangText.text =
 
-                 $"{currentQuanYuYuLiangData.pingJunYuLiang} <size=14><color=#A5BBE2>mm</color></size>";
 
-             _chaoJingZhanDianText.text =
 
-                 $"{currentQuanYuYuLiangData.chaoJingZhanDian} <size=14><color=#A5BBE2>个</color></size>";
 
-             _weatherTypeText.text = $"{currentQuanYuYuLiangData.dangQianYuLiang}";
 
-             //todo 换图标
 
-         }
 
-         
 
-         //工程安全监测
 
-         //检测数据
 
-         _pingJunShuiWeiText = this.transform.Find("RightUp/JianKongShuJu/PingJunShuiWei/numText").GetComponent<Text>();
 
-         _sheFangShuiWeiText = this.transform.Find("RightUp/JianKongShuJu/SheFangShuiWei/numText").GetComponent<Text>();
 
-         _jingJieShuiWeiText = this.transform.Find("RightUp/JianKongShuJu/JingJieShuiWei/numText").GetComponent<Text>();
 
-         _baoZhengShuiWeiText =
 
-             this.transform.Find("RightUp/JianKongShuJu/BaoZhengShuiWei/numText").GetComponent<Text>();
 
-         _shuiWeiText = this.transform.Find("RightUp/JianKongShuJu/ShuiWei/numText").GetComponent<Text>();
 
-         
 
-         //水位变化与统计
 
-         shuiWeiBianHua = this.transform.Find("RightUp/ShuiWeiTongJi/BarChart").GetComponent<BarChart>();
 
-         shuiWeiBarChartDropdown = this.transform.Find("RightUp/ShuiWeiTongJi/Dropdown").GetComponent<Dropdown>();
 
-         shuiWeiBarChartDropdown.onValueChanged.AddListener(OnShuiWeiDropDownSelect);
 
-         //异常警告
 
-         currentYiChangJingGaoItems = new List<YiChangJingGaoItem>();
 
-         _yiChangJingGaoListContent = this.transform.Find("YiChangJingGao/ScrollView/Viewport/Content")
 
-             .GetComponent<RectTransform>();
 
-         if (currentYiChangJingGaoDatas != null && currentYiChangJingGaoDatas.Count > 0)
 
-         {
 
-             for (int i = 0; i < currentYiChangJingGaoDatas.Count; i++)
 
-             {
 
-                 YiChangJingGaoItem tempItem = Instantiate(YiChangJingGaoItemOri, _yiChangJingGaoListContent)
 
-                     .GetComponent<YiChangJingGaoItem>();
 
-                 tempItem.Init();
 
-                 tempItem.SetData(currentYiChangJingGaoDatas[i]);
 
-                 currentYiChangJingGaoItems.Add(tempItem);
 
-             }
 
-         }
 
-         globalSWBtn.onClick.AddListener(OnGlobalSWBtnClick);
 
-         exitGlobalSWBtn.onClick.AddListener(() =>
 
-         {
 
-             CameraManager.SwitchCamera(0);
 
-             viewMode = ViewMode.normal;
 
-             miniMap.gameObject.SetActive(false);
 
-             main.gameObject.SetActive(true);
 
-         });
 
-     }
 
-     public async void OnGlobalSWBtnClick() {
 
-         CameraManager.SwitchCamera(1);
 
-         viewMode = ViewMode.miniMap;
 
-         GameObject shaPan = GameObject.FindGameObjectWithTag("ShaPan");
 
-         if (sWHeightUnits.Count < 1)
 
-         {
 
-             for (int i = 0; i < GlobalData.swDatas.Count; i++)
 
-             {
 
-                 GameObject gameObject = Instantiate(sWHeightUnitPrefab);
 
-                 SWHeightUnit swHUnit = gameObject.GetComponent<SWHeightUnit>();
 
-                 swHUnit.transform.SetParent(miniMapSWContent.transform);
 
-                 float max = math.max(GlobalData.swDatas[i].upz, GlobalData.swDatas[i].dwz);
 
-                 swHUnit.Init(GlobalData.swDatas[i].LGTD, GlobalData.swDatas[i].LTTD, GlobalData.swDatas[i].STNM, max.ToString());
 
-                 sWHeightUnits.Add(swHUnit);
 
-                 swHUnit.bingObj = Instantiate(runtimePointObj).gameObject;
 
-                 swHUnit.bingObj.transform.SetParent(shaPan.transform.GetChild(9));
 
-                 swHUnit.bingObj.transform.localEulerAngles = Vector3.zero;
 
-                 swHUnit.bingObj.transform.localScale = Vector3.one;
 
-                 swHUnit.bingObj.transform.localPosition = CoordinateConverter.GeoToUGUISmall(GlobalData.swDatas[i].LGTD, GlobalData.swDatas[i].LTTD);
 
-                 swHUnit.bingObj.name = GlobalData.swDatas[i].STNM;
 
-             }
 
-         }
 
-         else
 
-         {
 
-             for (int i = 0; i < GlobalData.swDatas.Count; i++)
 
-             {
 
-                 float max = math.max(GlobalData.swDatas[i].upz, GlobalData.swDatas[i].dwz);
 
-                 sWHeightUnits[i].Init(GlobalData.swDatas[i].LGTD, GlobalData.swDatas[i].LTTD, GlobalData.swDatas[i].STNM, max.ToString());
 
-             }
 
-         }
 
-         miniMap.gameObject.SetActive(true);
 
-         main.gameObject.SetActive(false);
 
-     }
 
-     public void OnShuiWeiDropDownSelect(int value)
 
-     {
 
-         if (currentDataType == shuiWeiYuJingDataType.BuYuan)
 
-         {
 
-             switch (value)
 
-             {
 
-                 case 0:
 
-                     SetShuiWeiTongJiBarChart(GlobalData.buYuanShuiWei_month);
 
-                     break;
 
-                 case 1:
 
-                     SetShuiWeiTongJiBarChart(GlobalData.buYuanShuiWei_day);
 
-                     break;
 
-                 case 2:
 
-                     SetShuiWeiTongJiBarChart(GlobalData.buYuanShuiWei_hour);
 
-                     break;
 
-             }
 
-         }
 
-         else
 
-         {
 
-             switch (value)
 
-             {
 
-                 case 0:
 
-                     SetShuiWeiTongJiBarChart(ShuiWeiBianHuaData_TK_Month);
 
-                     break;
 
-                 case 1:
 
-                     SetShuiWeiTongJiBarChart(ShuiWeiBianHuaData_TK_Day);
 
-                     break;
 
-                 case 2:
 
-                     SetShuiWeiTongJiBarChart(ShuiWeiBianHuaData_TK_Hour);
 
-                     break;
 
-             }
 
-         }
 
-     }
 
-     public void SetShuiWeiTongJiBarChart(ShuiWeiBianHuaData ShuiWeiBianHuaData)
 
-     {
 
-         if (ShuiWeiBianHuaData != null)
 
-         {
 
-             var x_chart = shuiWeiBianHua.GetChartComponent<XAxis>();
 
-             x_chart.data.Clear();
 
-             for (int i = 0; i < ShuiWeiBianHuaData.name.Length; i++)
 
-             {
 
-                 x_chart.data.Add(ShuiWeiBianHuaData.name[i]);
 
-             }
 
-             x_chart.refreshComponent?.Invoke();
 
-             var tempSeries = shuiWeiBianHua.series;
 
-             tempSeries[0].ClearData();
 
-             tempSeries[1].ClearData();
 
-             SerieData[] serieDatas = new SerieData[ShuiWeiBianHuaData.value.Length];
 
-             for (int i = 0; i < ShuiWeiBianHuaData.value.Length; i++)
 
-             {
 
-                 serieDatas[i] = new SerieData();
 
-                 serieDatas[i].data = new List<double>();
 
-                 serieDatas[i].data.Add(i);
 
-                 serieDatas[i].data.Add(ShuiWeiBianHuaData.value[i]);
 
-             }
 
-             tempSeries[0].data.AddRange(serieDatas);
 
-             tempSeries[1].data.AddRange(serieDatas);
 
-         }
 
-     }
 
-     public void SetZhanDianPaiMingData()
 
-     {
 
-         if (GlobalData.swDatas.Count < 1)
 
-             return;
 
-         if (currentDataType == shuiWeiYuJingDataType.BuYuan)
 
-         {
 
-             List<StationData> stationDatas = new List<StationData>(GlobalData.swDatas);
 
-             stationDatas.Sort();
 
-             for (int i = 0; i < zdpmObjs.Length; i++) {
 
-                 zdpmObjs[i].transform.GetChild(1).GetComponent<Text>().text = stationDatas[i].STNM;
 
-                 float max = MathF.Max(stationDatas[i].upz, stationDatas[i].dwz);
 
-                 zdpmObjs[i].transform.GetChild(1).GetChild(0).GetComponent<Text>().text = $"{max} <size=14><color=#A5BBE2>mm</color></size>";
 
-             }
 
-         }
 
-         else
 
-         {
 
-             //_paiMing_1_Text.text = $"未知 <size=14><color=#A5BBE2>mm</color></size>";
 
-             //_paiMing_1_Name_Text.text = $"套口水闸";
 
-             //_paiMing_6_Text.text = $"未知 <size=14><color=#A5BBE2>mm</color></size>";
 
-             //_paiMing_6_Name_Text.text = $"套口水闸";
 
-             //_paiMing_12_Text.text = $"未知 <size=14><color=#A5BBE2>mm</color></size>";
 
-             //_paiMing_12_Name_Text.text = $"套口水闸";
 
-             //_paiMing_24_Text.text = $"未知 <size=14><color=#A5BBE2>mm</color></size>";
 
-             //_paiMing_24_Name_Text.text = $"套口水闸";
 
-         }
 
-     }
 
-     
 
-     public void ChangeDataType(shuiWeiYuJingDataType _type)
 
-     {
 
-         if (currentDataType != _type)
 
-         {
 
-             currentDataType = _type;
 
-             OnShuiWeiDropDownSelect(shuiWeiBarChartDropdown.value);
 
-             SetZhanDianPaiMingData();
 
-             RefreshThreeLevel();
 
-         }
 
-     }
 
- }
 
 
  |