Yahoo!ローカルサーチAPIを使って最寄り駅を表示させるアプリを作成します。Yahoo!ローカルサーチAPIで調べることができる場所であれば、最寄りの駅の名称、路線名、駅からの距離(メートル)、徒歩で何分かかるかもわかります。

ローカルサーチAPIを使えばリクエストパラメータ(query)に施設名称やカテゴリー名称などのキーワードを指定して、地域・拠点情報を検索できます。

そこで https://map.yahooapis.jp/search/local/V1/localSearch?query=<調べたい場所>&appid=<あなたのアプリケーションID>のレスポンスを解析すれば各種情報を取得できます。

このような結果が返ってきます。

このように多くの情報が取得できますが、今回は最寄り駅に関する情報だけ取得します。

まずリクエストをするためのurlを作成します。urlは、https://map.yahooapis.jp/search/local/V1/localSearch?query=<調べたい場所>&appid=<あなたのアプリケーションID>ですが、調べたい場所はエンコードしなければなりません。System.Web.dllを参照設定に追加してHttpUtility.UrlEncodeメソッドでエンコードします。そしてレスポンスが返されたらこれを取得します。

XMLが返されたら、これを解析します。上記のレスポンスをみてみると複数の<Feature>~</Feature>が存在するので、XPathを使ってまずこれを取得します。そのあとforeach文のなかで<Feature>~</Feature>のなかにある<Name>~</Name>と<Station>~</Station>を取得します。

<Name>~</Name>はGetPlaceName(XmlNode featureNode)メソッドで取得しています。<Station>~</Station>はvoid GetStationInfo(XmlNode node, ref string stationName, ref string railway, ref string distance, ref string time)メソッドで取得しています。

取得された文字列を連結させ、その結果をテキストボックスに表示させています。