さて、本日は C# のWebRequest を使って標高API を使ってみようと思います。最近はまっている標高APIですが、以下エントリーでは C# で作った画面から標高APIを呼び出している Python スクリプトを実行して、実行結果を画面に表示しました。今回はそれを C# オンリーで標高APIを使ってみたいと思います。
今回実装するもの
簡単な画面を作りました。処理は以下のような流れです。
- 作成した画面で緯度経度を入力し実行
- 標高APIで標高値を取得し、それを標高のテキストボックスに表示
インストール
以下をNuget でインストールしてください。
- System.Net.Http
- Newtonsoft.Json
環境
Windows10(64bit)
Visual Studio2017
.NET Framework4.7.2
サンプルコード
実行ボタンの処理を記述します。
private async void BtnExecute_Click(object sender, RoutedEventArgs e) { // パラメータ作成 var parameters = new Dictionary<string, string>() { { "lon", LonText.Text }, { "lat", LatText.Text }, { "outtype", "JSON" }, }; // URL作成 var url = $"http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?{await new FormUrlEncodedContent(parameters).ReadAsStringAsync()}"; // 標高APIにリクエスト投げる WebRequest request = WebRequest.Create(url); using (Stream response_stream = request.GetResponse().GetResponseStream()) { using (StreamReader reader = new StreamReader(response_stream)) { // 標高取得 var jObject = JObject.Parse(reader.ReadToEnd()); ElevationText.Text = jObject.GetValue("elevation").ToString(); } } }
実行
このように入力し、実行を押します。
実行後、標高APIから取得した標高が表示されます。
この緯度経度の場所がどこか気になる方は以下エントリーを読んでみてください。
簡単ですが、本日は以上です。