}//これは表示種類と地中か地表かをURLにすぐに出してくれる関数 static bool IsEEW(KyoshinType type) { if (type == KyoshinType.EEW_EST || type == KyoshinType.EEW_Circle) { return(true); } else { return(false); } }
async Task <Image> GetKyoshinImage(DateTime time, KyoshinType type, bool isbool) { try { Net.GetJsonFile Network = new Net.GetJsonFile(); return(byteArrayToImage(Network.GetData("http://www.kmoni.bosai.go.jp/data/map_img/" + GetTypeToLURL(type, isbool) + "/" + time.ToString("yyyyMMdd") + "/" + time.ToString("yyyyMMddHHmmss") + "." + GetTypeToURL(type, isbool) + ".gif"))); } catch (Exception e) { Console.WriteLine($"強震モニタのデータをダウンロードする際に例外エラー\n理由 : {e.Message}"); } return(null); }
private static string GetTypeToURL(KyoshinType type, bool IsBour) { string TypeName = ""; switch (type) { case KyoshinType.RealTime_Shindo: TypeName = "jma"; break; case KyoshinType.PGA: TypeName = "acmap"; break; case KyoshinType.PGV: TypeName = "vcmap"; break; case KyoshinType.PGD: TypeName = "dcmap"; break; case KyoshinType.Response_0125: TypeName = "rsp0125"; break; case KyoshinType.Response_0250: TypeName = "rsp0250"; break; case KyoshinType.Response_0500: TypeName = "rsp0500"; break; case KyoshinType.Response_1000: TypeName = "rsp1000"; break; case KyoshinType.Response_2000: TypeName = "rsp2000"; break; case KyoshinType.Response_4000: TypeName = "rsp4000"; break; case KyoshinType.EEW_EST: TypeName = "eew"; break; case KyoshinType.EEW_Circle: TypeName = "eew"; break; default: TypeName = ""; break; } if (TypeName != "" && TypeName != "eew") { if (IsBour) { TypeName += "_b"; } else { TypeName += "_s"; } } return(TypeName); }//これは表示種類と地中か地表かをURLにすぐに出してくれる関数
public Image GetFastImage(DateTime time, KyoshinType type, bool IsBour, bool IsESTShindo, bool IsPSV, bool NoneBG = false)//直接データが欲しい場合 (時間,表示タイプ,地中フラグ,予測震度表示,予測円表示) { try { Net.GetJsonFile Network = new Net.GetJsonFile(); string TypeName = GetTypeToURL(type, IsBour); //ImageオブジェクトのGraphicsオブジェクトを作成する Image BG = new Bitmap(352, 400); Graphics graphics; graphics = Graphics.FromImage(BG); Task <Image> ESTImg = null; Task <Image> RealTimeImg = null; Task <Image> CircleImg = null; if (IsESTShindo) { ESTImg = Task.Run <Image>(() => { return(GetKyoshinImage(time, KyoshinType.EEW_EST)); }); } RealTimeImg = Task.Run <Image>(() => { return(GetKyoshinImage(time, type, IsBour)); }); if (IsPSV) { CircleImg = Task.Run <Image>(() => { return(GetKyoshinImage(time, KyoshinType.EEW_Circle)); }); } if (!NoneBG) { graphics.DrawImage(Properties.Resources.Kyoshin_Basemap, new Point(0, 0)); } else { graphics.Clear(Color.FromArgb(0, 0, 0, 0)); } Image KImage = null; if (IsESTShindo) { ESTImg.Wait(); KImage = ESTImg.Result; if (KImage != null) { EEWShindo = (Image)KImage.Clone(); } else { EEWShindo = null; } if (KImage != null) { graphics.DrawImage(KImage, new Point(0, 0)); KImage.Dispose(); } } KImage = null; if (TypeName != "") { RealTimeImg.Wait(); KImage = RealTimeImg.Result; //KImage = byteArrayToImage(Network.GetData("http://www.kmoni.bosai.go.jp/data/map_img/RealTimeImg/" + TypeName + "/" + time.ToString("yyyyMMdd") + "/" + time.ToString("yyyyMMddHHmmss") + "." + TypeName + ".gif")); if (KImage != null) { graphics.DrawImage(KImage, new Point(0, 0)); KImage.Dispose(); } } KImage = null; if (IsPSV) { CircleImg.Wait(); KImage = CircleImg.Result; //KImage = byteArrayToImage(Network.GetData("http://www.kmoni.bosai.go.jp/data/map_img/PSWaveImg/eew/" + time.ToString("yyyyMMdd") + "/" + time.ToString("yyyyMMddHHmmss") + ".eew.gif")); EEWCircle = KImage; if (KImage != null) { graphics.DrawImage(KImage, new Point(0, 0)); KImage.Dispose(); } } KImage = null; graphics.Dispose(); graphics = null; IsLastError = false; return(BG); } catch { IsLastError = true; LastErrorStatus = "デバッグ操作中にエラー"; return(null); } }