/// <summary> /// 与えられた値を使用してURLを生成します。 /// </summary> /// <param name="urlType">生成するURLのタイプ</param> /// <param name="datetime">生成するURLの時間</param> /// <param name="realTimeShindoType">(UrlType=RealTimeDataの際に使用)取得するリアルタイム情報の種類</param> /// <param name="isBerehole">(UrlType=RealTimeDataの際に使用)地中の情報を取得するかどうか</param> /// <returns></returns> public static string Generate(AppApiUrlType urlType, DateTime datetime, RealTimeDataType realTimeShindoType = RealTimeDataType.Shindo, bool isBerehole = false) { switch (urlType) { case AppApiUrlType.RealTimeData: return(string.Format(RealTimeDataBase, realTimeShindoType.ToUrlString(), isBerehole ? "b" : "s", datetime.ToString("yyyyMMdd"), datetime.ToString("yyyyMMddHHmmss"))); case AppApiUrlType.EstShindoJson: return(string.Format(EewJsonBase, "EstShindoJsonV2", datetime.ToString("yyyyMMdd"), datetime.ToString("yyyyMMddHHmmss"), "est")); case AppApiUrlType.PSWaveJson: return(string.Format(EewJsonBase, "PSWaveJsonV2", datetime.ToString("yyyyMMdd"), datetime.ToString("yyyyMMddHHmmss"), "psw")); case AppApiUrlType.HypoInfoJson: return(string.Format(EewJsonBase, "HypoInfoJsonV2", datetime.ToString("yyyyMMdd"), datetime.ToString("yyyyMMddHHmmss"), "hypo")); } return(null); }
/// <summary> /// 与えられた値を使用してURLを生成します。 /// </summary> /// <param name="urlType">生成するURLのタイプ</param> /// <param name="datetime">生成するURLの時間</param> /// <param name="realTimeShindoType">(UrlType=RealTimeImgの際に使用)取得するリアルタイム情報の種類</param> /// <param name="isBerehole">(UrlType=RealTimeImgの際に使用)地中の情報を取得するかどうか</param> /// <returns></returns> public static string Generate(WebApiUrlType urlType, DateTime datetime, RealTimeDataType realTimeShindoType = RealTimeDataType.Shindo, bool isBerehole = false) { switch (urlType) { case WebApiUrlType.RealTimeImg: return(string.Format(RealTimeBase, realTimeShindoType.ToUrlString(), isBerehole ? "b" : "s", datetime.ToString("yyyyMMdd"), datetime.ToString("yyyyMMddHHmmss"))); case WebApiUrlType.EstShindo: return(string.Format(EstShindoBase, datetime.ToString("yyyyMMdd"), datetime.ToString("yyyyMMddHHmmss"))); case WebApiUrlType.PSWave: return(string.Format(PsWaveBase, datetime.ToString("yyyyMMdd"), datetime.ToString("yyyyMMddHHmmss"))); case WebApiUrlType.EewJson: return(string.Format(JsonEewBase, datetime.ToString("yyyyMMddHHmmss"))); } return(null); }
/// <summary> /// URLに使用する文字列に変換する /// </summary> /// <param name="type">変換するRealTimeImgTypy</param> /// <returns>変換された文字列</returns> public static string ToUrlString(this RealTimeDataType type) { switch (type) { case RealTimeDataType.Shindo: return("jma"); case RealTimeDataType.Pga: return("acmap"); case RealTimeDataType.Pgv: return("vcmap"); case RealTimeDataType.Pgd: return("dcmap"); case RealTimeDataType.Response_0_125Hz: return("rsp0125"); case RealTimeDataType.Response_0_25Hz: return("rsp0250"); case RealTimeDataType.Response_0_5Hz: return("rsp0500"); case RealTimeDataType.Response_1Hz: return("rsp1000"); case RealTimeDataType.Response_2Hz: return("rsp2000"); case RealTimeDataType.Response_4Hz: return("rsp4000"); } return(null); }
public Task <byte[]> GetRealtimeImageData(DateTime time, RealTimeDataType dataType, bool isBehore = false) => GetBytes(WebApiUrlGenerator.Generate(WebApiUrlType.RealTimeImg, time, dataType, isBehore));
public override Task <RealTimeData> GetRealTimeData(DateTime time, RealTimeDataType dataType, bool isBehore = false) => Task.FromResult(JsonSerializer.Deserialize <RealTimeData>( File.ReadAllText(AppApiUrlGenerator.Generate(AppApiUrlType.RealTimeData, time, dataType, isBehore).Replace("http://ts.qtmoni.bosai.go.jp/qt/tsapp/kyoshin_monitor/static/sip_data/", BasePath))));